User:Lucia Dossin/Protyping/Assignment 3: Difference between revisions
Lucia Dossin (talk | contribs) (Created page with "Python Generated Sound File <source> import wave, struct filename = "paaaaaaapa.wav" nframes=0 nchannels=1 sampwidth=2 # in bytes so 2=16bit, 1=8bit framerate=44100 bufsize...") |
Lucia Dossin (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
Python Generated Sound File | Python Generated Sound File | ||
<source> | <source lang="python"> | ||
import wave, struct | import wave, struct | ||
Line 38: | Line 38: | ||
w.close() | w.close() | ||
</source> | </source> | ||
Output: | |||
[[Media:paaaaaaapa.ogg]] |
Revision as of 09:07, 14 October 2013
Python Generated Sound File
import wave, struct
filename = "paaaaaaapa.wav"
nframes=0
nchannels=1
sampwidth=2 # in bytes so 2=16bit, 1=8bit
framerate=44100
bufsize=2048
w = wave.open(filename, 'w')
w.setparams((nchannels, sampwidth, framerate, nframes, 'NONE', 'not compressed'))
max_amplitude = float(int((2 ** (sampwidth * 8)) / 2) - 1)
freq = 440
# this means that FREQ times a second, we need to complete a cycle
# there are FRAMERATE samples per second
# so FRAMERATE / FREQ = CYCLE LENGTH
cycle = framerate / freq
data = ''
for i in range(300):
for x in range(i):
data += struct.pack('h', int(0.5 * max_amplitude))
for x in range(i):
data += struct.pack('h', int(-0.5 * max_amplitude))
for i in range(100):
for x in range(i):
data += struct.pack('h', int(0.5 * max_amplitude))
for x in range(i):
data += struct.pack('h', int(-0.5 * max_amplitude))
w.writeframesraw(data)
w.close()
Output: Media:paaaaaaapa.ogg