Chris@0: import sys Chris@1: import os Chris@1: Chris@1: sys.path.append(os.getcwd()) Chris@1: luis@8: import numpy as np luis@8: print np.__version__ luis@8: luis@8: import matplotlib.pyplot as plt luis@8: import scikits.audiolab as al luis@8: luis@8: import vampyhost as vh Chris@4: Chris@0: #from melscale import melscale Chris@0: #from melscale import initialize Chris@0: # from melscale import * Chris@0: #import pyRealTime Chris@0: Chris@0: #deal with an audio file luis@8: wavfile = 'test-mono.wav' luis@8: # wavfile = '4sample-stereo-ny.wav' Chris@0: luis@8: af = al.Sndfile(wavfile) Chris@4: luis@8: nchannels = af.channels Chris@5: luis@8: print "Samplerate: ", af.samplerate luis@8: print "Number of channels: ", nchannels luis@8: print "Number of samples (frames): ", af.nframes Chris@5: luis@8: rt = vh.realtime(4, 70) Chris@0: Chris@0: #test RealTime Object luis@8: for i in [0, 1, 2]: luis@8: if i == 0: luis@8: rtl = [] luis@8: rtl.append(vh.realtime()) luis@8: print ">>>>>RealTime's method: ", rtl[i].values() Chris@0: Chris@0: Chris@0: class feature_example(): luis@8: def __init__(self): luis@8: self.hasTimestamp luis@8: self.timestamp luis@8: self.values luis@8: self.label Chris@1: Chris@0: pluginlist = vh.enumeratePlugins() luis@8: for i, n in enumerate(pluginlist): luis@8: print i, ":", n luis@8: luis@8: pluginKey = pluginlist[0] # try the first plugin listed Chris@0: Chris@0: retval = vh.getLibraryPath(pluginKey) Chris@0: print pluginKey Chris@0: print retval Chris@0: Chris@0: print vh.getPluginCategory(pluginKey) Chris@0: print vh.getOutputList(pluginKey) luis@8: handle = vh.loadPlugin(pluginKey, af.samplerate) Chris@0: Chris@0: luis@8: print "\n\nPlugin handle: ", handle luis@8: print "Output list of: ", pluginKey, "\n", vh.getOutputList(handle) luis@8: luis@8: # initialise: pluginhandle, channels, stepSize, blockSize luis@8: if vh.initialise(handle, nchannels, 1024, 1024): luis@8: print "Initialise succeeded" Chris@6: else: luis@8: print "Initialise failed!" luis@8: exit(1) Chris@6: luis@8: # should return a realtime object luis@8: rt = vh.frame2RealTime(100000, 22050) luis@8: print rt Chris@0: luis@8: assert type(rt) == type(vh.realtime()) Chris@0: luis@8: audio = af.read_frames(af.nframes) luis@8: audio = np.transpose(audio) luis@8: luis@8: print "Gonna send", len(audio) luis@8: luis@9: luis@8: out = vh.process(handle, audio, rt) luis@9: luis@9: print "Processed correctly" luis@9: luis@9: print type(out) luis@9: luis@10: print "EI:" luis@10: print len(out) luis@10: print out luis@10: print "OH Let's Go:" luis@9: luis@9: ####### luis@8: output = vh.getOutput(handle, 1) Chris@0: Chris@0: print type(output) Chris@0: print output Chris@0: #print output[1].label Chris@0: luis@8: print "_______________OUTPUT TYPE_________:", type(out) luis@8: in_audio = np.frombuffer(audio, np.int16, -1, 0) luis@8: out_audio = np.frombuffer(out, np.float32, -1, 0) luis@8: plt.subplot(211) luis@8: plt.plot(in_audio) luis@8: plt.subplot(212) luis@8: plt.plot(out_audio) Chris@0: luis@8: plt.show() Chris@0: #do some processing here Chris@0: Chris@0: #buffer is a multichannel frame or a numpy array containing samples Chris@0: #buffer = vh.frame(audiodata,stepSize,blockSize) Chris@0: Chris@0: #output = vh.process(handle,buffer) Chris@0: Chris@0: #output is a list of list of features Chris@0: luis@8: vh.unloadPlugin(handle) luis@8: vh.unloadPlugin(handle) # test if it chrashes... Chris@0: Chris@0: print vh.getOutputList(handle) Chris@0: Chris@0: #cases: Chris@0: #buffer = blockSize : evaluate Chris@0: #buffer > blockSize : enframe and zeropad Chris@0: #return: Chris@0: #oneSamplePerStep, FixedSamplerate : can return numpy array Chris@0: #variableSamplerate : list of featres only Chris@0: Chris@1: #print dir(vampyhost)