annotate vamp/collect.py @ 81:0a2f2e7803ea

naming: PyPluginObject members snake_case
author Chris Cannam
date Wed, 21 Jan 2015 12:32:32 +0000
parents de501b7e165a
children a11b57e9fb0b
rev   line source
Chris@56 1 '''A high-level interface to the vampyhost extension module, for quickly and easily running Vamp audio analysis plugins on audio files and buffers.'''
Chris@56 2
Chris@56 3 import vampyhost
Chris@75 4 import load
Chris@75 5 import frames
Chris@66 6
Chris@74 7 def selectFeaturesForOutput(output, features):
Chris@74 8 for ff in features:
Chris@74 9 if output in ff:
Chris@74 10 for f in ff[output]:
Chris@74 11 yield f
Chris@74 12
Chris@72 13 ##!!!
Chris@72 14 ##
Chris@72 15 ## We could also devise a generator for the timestamps that need
Chris@72 16 ## filling: provide the output type & rate and get back a timestamp
Chris@72 17 ## generator
Chris@72 18 ##
Chris@72 19 ##!!!
Chris@72 20
Chris@74 21 # def timestampFeatures(sampleRate, stepSize, outputDescriptor, features):
Chris@72 22
Chris@74 23 # n = 0
Chris@71 24
Chris@77 25 # if outputDict.sampleType == vampyhost.ONE_SAMPLE_PER_STEP:
Chris@74 26 # for True:
Chris@79 27 # yield vampyhost.frame_to_realtime(n * stepSize, sampleRate)
Chris@74 28 # n = n + 1
Chris@74 29
Chris@77 30 # elif outputDict.sampleType == vampyhost.FIXED_SAMPLE_RATE:
Chris@74 31 # for True:
Chris@74 32
Chris@74 33
Chris@74 34
Chris@74 35 def collect(data, sampleRate, key, parameters = {}, output = ""):
Chris@74 36
Chris@75 37 plug, stepSize, blockSize = load.loadAndConfigureFor(data, sampleRate, key, parameters)
Chris@71 38
Chris@80 39 plugOuts = plug.get_outputs()
Chris@71 40 if plugOuts == []:
Chris@71 41 return
Chris@71 42
Chris@71 43 outNo = -1
Chris@71 44 for n, o in zip(range(0, len(plugOuts)), plugOuts):
Chris@71 45 if output == "" or o["identifier"] == output:
Chris@71 46 outNo = n
Chris@71 47 break
Chris@71 48
Chris@71 49 assert outNo >= 0 #!!! todo proper error reporting
Chris@71 50
Chris@75 51 ff = frames.framesFromArray(data, stepSize, blockSize)
Chris@71 52 fi = 0
Chris@71 53
Chris@71 54 #!!! todo!
Chris@71 55
Chris@71 56 plug.unload()
Chris@71 57
Chris@71 58 return {}
Chris@71 59
Chris@71 60