annotate vampyhost_exercise.py @ 64:ee7542afa98e

Toward getting the results out in a nice form
author Chris Cannam
date Wed, 14 Jan 2015 11:33:01 +0000
parents 3893b76daf80
children
rev   line source
Chris@0 1
Chris@0 2 import sys
Chris@1 3 import os
Chris@1 4
Chris@1 5 sys.path.append(os.getcwd())
Chris@1 6
Chris@4 7 import scikits.audiolab as al;
Chris@4 8
Chris@0 9 #from melscale import melscale
Chris@0 10 #from melscale import initialize
Chris@0 11 from pylab import *
Chris@0 12 # from melscale import *
Chris@0 13 from numpy import *
Chris@0 14 from pylab import *
Chris@0 15 from time import *
Chris@0 16
Chris@0 17 from vampyhost import *
Chris@1 18 import vampyhost
Chris@0 19 import vampyhost as vh
Chris@0 20 #import pyRealTime
Chris@0 21 #from pyRealTime import *
Chris@0 22
Chris@0 23 #deal with an audio file
Chris@1 24 wavfile='test.wav'
Chris@0 25
Chris@5 26 wavdata, samplerate, format = al.wavread(wavfile);
Chris@4 27
Chris@0 28 print "samplerate: ",samplerate
Chris@5 29 print "number of samples (frames): ",wavdata.size
Chris@5 30
Chris@5 31 audio = wavdata.transpose()
Chris@5 32
Chris@5 33 channels = audio.size
Chris@1 34 print "channels: ",channels
Chris@0 35
Chris@0 36 rt=realtime(4,70)
Chris@0 37
Chris@0 38 #test RealTime Object
Chris@0 39 for i in [0,1,2] :
Chris@0 40 if (i==0) : rtl=[]
Chris@0 41 rtl.append(realtime())
Chris@0 42 print ">>>>>RealTime's method: ", rtl[i].values()
Chris@0 43
Chris@0 44
Chris@0 45 class feature_example():
Chris@0 46 def __init__(self):
Chris@0 47 self.hasTimestamp
Chris@0 48 self.timestamp
Chris@0 49 self.values
Chris@0 50 self.label
Chris@1 51
Chris@0 52 pluginlist = vh.enumeratePlugins()
Chris@0 53 for i,n in enumerate(pluginlist) : print i,":",n
Chris@1 54 pluginKey=pluginlist[0]; # try the first plugin listed
Chris@0 55
Chris@0 56 retval = vh.getLibraryPath(pluginKey)
Chris@0 57 print pluginKey
Chris@0 58 print retval
Chris@0 59
Chris@0 60 print vh.getPluginCategory(pluginKey)
Chris@0 61 print vh.getOutputList(pluginKey)
Chris@0 62 handle = vh.loadPlugin(pluginKey,samplerate);
Chris@0 63 print "\n\nPlugin handle: ",handle
Chris@0 64
Chris@0 65 print "Output list of: ",pluginKey,"\n",vh.getOutputList(handle)
Chris@6 66 print "Have ", len(audio), " channels in audio"
Chris@0 67
Chris@0 68 #initialise: pluginhandle, channels, stepSize, blockSize
Chris@6 69 if vh.initialise(handle,len(audio),1024,1024):
Chris@6 70 print "Initialise succeeded"
Chris@6 71 else:
Chris@6 72 print "Initialise failed!"
Chris@6 73 exit(1)
Chris@6 74
Chris@6 75 #!!! continue with this lark
Chris@0 76
Chris@0 77 rt=frame2RealTime(100000,22050)
Chris@0 78 print type(rt)
Chris@0 79
Chris@6 80 out=vh.process(handle,list(audio),rt) ##!!! cast to list should not be necessary
Chris@0 81 output = vh.getOutput(handle,1);
Chris@0 82
Chris@0 83 print type(output)
Chris@0 84 print output
Chris@0 85 #print output[1].label
Chris@0 86
Chris@0 87 print "_______________OUTPUT TYPE_________:",type(out)
Chris@1 88 in_audio = frombuffer(audio,int16,-1,0)
Chris@0 89 out_audio = frombuffer(out,float32,-1,0)
Chris@0 90 subplot(211)
Chris@0 91 plot(in_audio)
Chris@0 92 subplot(212)
Chris@0 93 plot(out_audio)
Chris@0 94
Chris@0 95 show()
Chris@0 96 #do some processing here
Chris@0 97
Chris@0 98 #buffer is a multichannel frame or a numpy array containing samples
Chris@0 99 #buffer = vh.frame(audiodata,stepSize,blockSize)
Chris@0 100
Chris@0 101 #output = vh.process(handle,buffer)
Chris@0 102
Chris@0 103 #output is a list of list of features
Chris@0 104
Chris@0 105 vh.unloadPlugin(handle);
Chris@1 106 vh.unloadPlugin(handle); # test if it chrashes...
Chris@0 107
Chris@0 108 print vh.getOutputList(handle)
Chris@0 109
Chris@0 110 #cases:
Chris@0 111 #buffer = blockSize : evaluate
Chris@0 112 #buffer > blockSize : enframe and zeropad
Chris@0 113 #return:
Chris@0 114 #oneSamplePerStep, FixedSamplerate : can return numpy array
Chris@0 115 #variableSamplerate : list of featres only
Chris@0 116
Chris@1 117 #print dir(vampyhost)