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