annotate vampyhost_test.py @ 0:68f3f32565b4

Import the early draft version
author Chris Cannam
date Mon, 22 Oct 2012 16:10:46 +0100
parents
children cb0d3af1be4d
rev   line source
Chris@0 1
Chris@0 2 import sys
Chris@0 3 sys.path.append('/Users/Shared/Development/python-extensions')
Chris@0 4 sys.path.append('/Users/Shared/Development/vampy-host-experiments/')
Chris@0 5 #from melscale import melscale
Chris@0 6 #from melscale import initialize
Chris@0 7 import wave
Chris@0 8 from wave import *
Chris@0 9 from pylab import *
Chris@0 10 # from melscale import *
Chris@0 11 from numpy import *
Chris@0 12 from pylab import *
Chris@0 13 from time import *
Chris@0 14
Chris@0 15 from vampyhost import *
Chris@0 16 import vampyhost
Chris@0 17 import vampyhost as vh
Chris@0 18 #import pyRealTime
Chris@0 19 #from pyRealTime import *
Chris@0 20
Chris@0 21
Chris@0 22 #deal with an audio file
Chris@0 23 wavfile='/Users/Shared/multitrack (small)/mix.wav'
Chris@0 24
Chris@0 25 wavobj = wave.open(wavfile,'r')
Chris@0 26 samplerate = wavobj.getframerate()
Chris@0 27 print "samplerate: ",samplerate
Chris@0 28 print "number of samples (frames): ",wavobj.getnframes() #total number of samples 4647744
Chris@0 29 channels = wavobj.getnchannels();
Chris@0 30 print "channels: ",channels
Chris@0 31 print "sample-width: ",wavobj.getsampwidth()
Chris@0 32 print "position: ",wavobj.tell()
Chris@0 33 wavobj.setpos(1000000)
Chris@0 34
Chris@0 35 print wavobj.tell()
Chris@0 36 audio = wavobj.readframes(1024) #returns an 8-bit buffer
Chris@0 37 print wavobj.tell()
Chris@0 38 print dir(audio)
Chris@0 39 print len(audio)
Chris@0 40 wavobj.close()
Chris@0 41
Chris@0 42
Chris@0 43
Chris@0 44 rt=realtime(4,70)
Chris@0 45
Chris@0 46 #test RealTime Object
Chris@0 47 for i in [0,1,2] :
Chris@0 48 if (i==0) : rtl=[]
Chris@0 49 rtl.append(realtime())
Chris@0 50 print ">>>>>RealTime's method: ", rtl[i].values()
Chris@0 51
Chris@0 52
Chris@0 53 class feature_example():
Chris@0 54 def __init__(self):
Chris@0 55 self.hasTimestamp
Chris@0 56 self.timestamp
Chris@0 57 self.values
Chris@0 58 self.label
Chris@0 59
Chris@0 60 pluginlist = vh.enumeratePlugins()
Chris@0 61 for i,n in enumerate(pluginlist) : print i,":",n
Chris@0 62 pluginKey=pluginlist[12];
Chris@0 63
Chris@0 64 retval = vh.getLibraryPath(pluginKey)
Chris@0 65 print pluginKey
Chris@0 66 print retval
Chris@0 67
Chris@0 68 print vh.getPluginCategory(pluginKey)
Chris@0 69 print vh.getOutputList(pluginKey)
Chris@0 70 handle = vh.loadPlugin(pluginKey,samplerate);
Chris@0 71 print "\n\nPlugin handle: ",handle
Chris@0 72
Chris@0 73 print "Output list of: ",pluginKey,"\n",vh.getOutputList(handle)
Chris@0 74
Chris@0 75 #initialise: pluginhandle, channels, stepSize, blockSize
Chris@0 76 vh.initialise(handle,1,1024,1024)
Chris@0 77
Chris@0 78 rt=frame2RealTime(100000,22050)
Chris@0 79 print type(rt)
Chris@0 80
Chris@0 81 out=vh.process(handle,audio,rt)
Chris@0 82 output = vh.getOutput(handle,1);
Chris@0 83
Chris@0 84 print type(output)
Chris@0 85 print output
Chris@0 86 #print output[1].label
Chris@0 87
Chris@0 88 print "_______________OUTPUT TYPE_________:",type(out)
Chris@0 89 in_audio = frombuffer(audio,int16,-1,0)
Chris@0 90 out_audio = frombuffer(out,float32,-1,0)
Chris@0 91 subplot(211)
Chris@0 92 plot(in_audio)
Chris@0 93 subplot(212)
Chris@0 94 plot(out_audio)
Chris@0 95
Chris@0 96 show()
Chris@0 97 #do some processing here
Chris@0 98
Chris@0 99 #buffer is a multichannel frame or a numpy array containing samples
Chris@0 100 #buffer = vh.frame(audiodata,stepSize,blockSize)
Chris@0 101
Chris@0 102 #output = vh.process(handle,buffer)
Chris@0 103
Chris@0 104 #output is a list of list of features
Chris@0 105
Chris@0 106 vh.unloadPlugin(handle);
Chris@0 107 vh.unloadPlugin(handle); # test if it chrashes...
Chris@0 108
Chris@0 109 print vh.getOutputList(handle)
Chris@0 110
Chris@0 111 #cases:
Chris@0 112 #buffer = blockSize : evaluate
Chris@0 113 #buffer > blockSize : enframe and zeropad
Chris@0 114 #return:
Chris@0 115 #oneSamplePerStep, FixedSamplerate : can return numpy array
Chris@0 116 #variableSamplerate : list of featres only
Chris@0 117
Chris@0 118 #print dir(vampyhost)