Chris@0
|
1 import sys
|
Chris@1
|
2 import os
|
Chris@1
|
3
|
Chris@1
|
4 sys.path.append(os.getcwd())
|
Chris@1
|
5
|
luis@8
|
6 import numpy as np
|
luis@8
|
7 print np.__version__
|
luis@8
|
8
|
luis@8
|
9 import matplotlib.pyplot as plt
|
luis@8
|
10 import scikits.audiolab as al
|
luis@8
|
11
|
luis@8
|
12 import vampyhost as vh
|
Chris@4
|
13
|
Chris@0
|
14 #from melscale import melscale
|
Chris@0
|
15 #from melscale import initialize
|
Chris@0
|
16 # from melscale import *
|
Chris@0
|
17 #import pyRealTime
|
Chris@0
|
18
|
Chris@0
|
19 #deal with an audio file
|
luis@8
|
20 wavfile = 'test-mono.wav'
|
luis@8
|
21 # wavfile = '4sample-stereo-ny.wav'
|
Chris@0
|
22
|
luis@8
|
23 af = al.Sndfile(wavfile)
|
Chris@4
|
24
|
luis@8
|
25 nchannels = af.channels
|
Chris@5
|
26
|
luis@8
|
27 print "Samplerate: ", af.samplerate
|
luis@8
|
28 print "Number of channels: ", nchannels
|
luis@8
|
29 print "Number of samples (frames): ", af.nframes
|
Chris@5
|
30
|
luis@8
|
31 rt = vh.realtime(4, 70)
|
Chris@0
|
32
|
Chris@0
|
33 #test RealTime Object
|
luis@8
|
34 for i in [0, 1, 2]:
|
luis@8
|
35 if i == 0:
|
luis@8
|
36 rtl = []
|
luis@8
|
37 rtl.append(vh.realtime())
|
luis@8
|
38 print ">>>>>RealTime's method: ", rtl[i].values()
|
Chris@0
|
39
|
Chris@0
|
40
|
Chris@0
|
41 class feature_example():
|
luis@8
|
42 def __init__(self):
|
luis@8
|
43 self.hasTimestamp
|
luis@8
|
44 self.timestamp
|
luis@8
|
45 self.values
|
luis@8
|
46 self.label
|
Chris@1
|
47
|
Chris@0
|
48 pluginlist = vh.enumeratePlugins()
|
luis@8
|
49 for i, n in enumerate(pluginlist):
|
luis@8
|
50 print i, ":", n
|
luis@8
|
51
|
luis@8
|
52 pluginKey = pluginlist[0] # try the first plugin listed
|
Chris@0
|
53
|
Chris@0
|
54 retval = vh.getLibraryPath(pluginKey)
|
Chris@0
|
55 print pluginKey
|
Chris@0
|
56 print retval
|
Chris@0
|
57
|
Chris@0
|
58 print vh.getPluginCategory(pluginKey)
|
Chris@0
|
59 print vh.getOutputList(pluginKey)
|
luis@8
|
60 handle = vh.loadPlugin(pluginKey, af.samplerate)
|
Chris@0
|
61
|
Chris@0
|
62
|
luis@8
|
63 print "\n\nPlugin handle: ", handle
|
luis@8
|
64 print "Output list of: ", pluginKey, "\n", vh.getOutputList(handle)
|
luis@8
|
65
|
luis@8
|
66 # initialise: pluginhandle, channels, stepSize, blockSize
|
luis@8
|
67 if vh.initialise(handle, nchannels, 1024, 1024):
|
luis@8
|
68 print "Initialise succeeded"
|
Chris@6
|
69 else:
|
luis@8
|
70 print "Initialise failed!"
|
luis@8
|
71 exit(1)
|
Chris@6
|
72
|
luis@8
|
73 # should return a realtime object
|
luis@8
|
74 rt = vh.frame2RealTime(100000, 22050)
|
luis@8
|
75 print rt
|
Chris@0
|
76
|
luis@8
|
77 assert type(rt) == type(vh.realtime())
|
Chris@0
|
78
|
luis@8
|
79 audio = af.read_frames(af.nframes)
|
luis@8
|
80 audio = np.transpose(audio)
|
luis@8
|
81
|
luis@8
|
82 print "Gonna send", len(audio)
|
luis@8
|
83
|
luis@9
|
84
|
luis@8
|
85 out = vh.process(handle, audio, rt)
|
luis@9
|
86
|
luis@9
|
87 print "Processed correctly"
|
luis@9
|
88
|
luis@9
|
89 print type(out)
|
luis@9
|
90
|
luis@10
|
91 print "EI:"
|
luis@10
|
92 print len(out)
|
luis@10
|
93 print out
|
luis@10
|
94 print "OH Let's Go:"
|
luis@9
|
95
|
luis@9
|
96 #######
|
luis@8
|
97 output = vh.getOutput(handle, 1)
|
Chris@0
|
98
|
Chris@0
|
99 print type(output)
|
Chris@0
|
100 print output
|
Chris@0
|
101 #print output[1].label
|
Chris@0
|
102
|
luis@8
|
103 print "_______________OUTPUT TYPE_________:", type(out)
|
luis@8
|
104 in_audio = np.frombuffer(audio, np.int16, -1, 0)
|
luis@8
|
105 out_audio = np.frombuffer(out, np.float32, -1, 0)
|
luis@8
|
106 plt.subplot(211)
|
luis@8
|
107 plt.plot(in_audio)
|
luis@8
|
108 plt.subplot(212)
|
luis@8
|
109 plt.plot(out_audio)
|
Chris@0
|
110
|
luis@8
|
111 plt.show()
|
Chris@0
|
112 #do some processing here
|
Chris@0
|
113
|
Chris@0
|
114 #buffer is a multichannel frame or a numpy array containing samples
|
Chris@0
|
115 #buffer = vh.frame(audiodata,stepSize,blockSize)
|
Chris@0
|
116
|
Chris@0
|
117 #output = vh.process(handle,buffer)
|
Chris@0
|
118
|
Chris@0
|
119 #output is a list of list of features
|
Chris@0
|
120
|
luis@8
|
121 vh.unloadPlugin(handle)
|
luis@8
|
122 vh.unloadPlugin(handle) # test if it chrashes...
|
Chris@0
|
123
|
Chris@0
|
124 print vh.getOutputList(handle)
|
Chris@0
|
125
|
Chris@0
|
126 #cases:
|
Chris@0
|
127 #buffer = blockSize : evaluate
|
Chris@0
|
128 #buffer > blockSize : enframe and zeropad
|
Chris@0
|
129 #return:
|
Chris@0
|
130 #oneSamplePerStep, FixedSamplerate : can return numpy array
|
Chris@0
|
131 #variableSamplerate : list of featres only
|
Chris@0
|
132
|
Chris@1
|
133 #print dir(vampyhost)
|