annotate vampyhost_test.py @ 11:e5b575d69b01 lf-numpy-arrays

changed a comment
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Wed, 20 Mar 2013 11:07:24 +0000
parents 8306b7fdd2d0
children
rev   line source
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)