from numpy import *
import scipy.io.wavfile as wavfile
import matplotlib.pyplot as pyplot
# cool tools to use for audio analysis
# sonic visualiser - sonicvisualiser.org
#
def foo():
audiofile = 'myfile.wav'
audio = wavfile.read(audiofile)
audiofft = fft.rfft(audio)
makegraph(audiofft,'audiofft.png')
audiofft = abs(audiofft)
audiofftdb = 10*log10(audiofft)
makegraph(audiofft, 'audiofft2.png')
pyplot.clf()
sgram = specgram(audio)
pyplot.savefig('audiospectro.png')
def writewav(data, outfile='out.wav', samplerate=44100):
''' make wav file '''
wavfile.write(outfile, samplerate, data)
def readwav(filepath):
''' read in a wav file '''
return wavfile.read(filepath)[1]
def gensignal(amplitude=10.0, freq=494.0, samplerate = 44100.0, numsamples=256.0):
''' creates a sinosoidal signal '''
sig = array(amplitude*sin(2*pi*(freq/samplerate)*arange(numsamples)), dtype=int16)
return sig
def makegraph(data, filename):
pyplot.clf()
pyplot.plot(data)
pyplot.savefig(filename)
def makesinwav(freq, amplitude, sampling_freq, num_samples):
return array(sin(2*pi*(freq/float(sampling_freq))*arange(float(num_samples)))*amplitude,dtype=int16)
if __name__ == "__main__":
sig = makesinwav(494.0,10000.0,44100.0,84100.0)
makegraph(sig,'sig.png')
writewav(sig)