[Numpy-discussion] arrayrange

Miguel Oliveira, Jr. miguel.oliveira.jr@gmail....
Wed Mar 14 11:03:04 CDT 2007


I've got a few codes that use "arrayrange" within numpy. It happens  
that the new version of numpy apparently doesn't recognize  
"arrayrange"... I've tried to change it to "arange", but it doesn't  
work... So, for example, the code below used to create a sine wave  
file, but it's not working anymore... Does anyone have any clue of  
what may be a solution for this?



# Basic sound generation
# Generate a sine wave and stick it in an AIFC file
# Assumes mono, 16-bit sound
# SRate, duration, and frequency are variables

from numpy import arange, sin, pi
from array import array

import aifc

print "----------------"

SRate = 44100.0  # sampling rate of the output file
durSecs = 1.0  #its duration in seconds
durSamps = int(SRate * durSecs)  # resulting number of samples
freq = 330  #frequency of the sine wave in Hz (cycles per second)
maxShort = 2** 15  # the largest possible signed 16-bit integer

# Make a floating point sinewave array using two handy functions from  
t = arange(0, durSecs, 1.0/SRate)
sineWave = sin(2*pi*freq*t)

# print "max value of sine is: " + str( max(sineWave))

# Now write it into a 16-bit integer array, adjusting the values to  
"fill" that format
sineWaveArray = array('h', [0]*len(sineWave))
for i in range(0, len(sineWave)):
	sineWaveArray[i] = int(sineWave[i] * maxShort)

# Finally, write it to an AIFF file
filename = str(freq) + ".aiff"
out = aifc.open(filename, "wb")
#out.setparams((1, 2, 44100, 100, 'NONE', 'not compressed'))
out.setparams((1, 2, int(SRate), int(durSamps), 'NONE', 'not  

out.writeframes(sineWaveArray.tostring())  # this is the crucial  
step: the .tostring() method forces this into the string format that  
AIFC requires

print "Successfully wrote a sine wave of frequency " + str(freq) + "  
to file: " + filename

More information about the Numpy-discussion mailing list