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)
|