Mercurial > hg > vampy-host
view vamp/process.py @ 84:d91a2285fbb2
naming: local variables snake_case
author | Chris Cannam |
---|---|
date | Wed, 21 Jan 2015 13:04:01 +0000 |
parents | a11b57e9fb0b |
children | dd56716714e0 |
line wrap: on
line source
'''A high-level interface to the vampyhost extension module, for quickly and easily running Vamp audio analysis plugins on audio files and buffers.''' import vampyhost import frames import load def load_and_query(data, sample_rate, key, parameters): plug, step_size, block_size = load.load_and_configure(data, sample_rate, key, parameters) plug_outs = plug.get_outputs() out_indices = dict(zip([o["identifier"] for o in plug_outs], range(0, len(plug_outs)))) # id -> n return plug, step_size, block_size, out_indices def process_multiple_outputs(data, sample_rate, key, outputs, parameters = {}): #!!! docstring plug, step_size, block_size, out_indices = load_and_query(data, sample_rate, key, parameters) for o in outputs: assert o in out_indices ff = frames.frames_from_array(data, step_size, block_size) fi = 0 for f in ff: results = plug.process_block(f, vampyhost.frame_to_realtime(fi, sample_rate)) # results is a dict mapping output number -> list of feature dicts for o in outputs: outix = out_indices[o] if outix in results: for r in results[outix]: yield { o: r } fi = fi + step_size results = plug.get_remaining_features() for o in outputs: outix = out_indices[o] if outix in results: for r in results[outix]: yield { o: r } plug.unload() def process(data, sample_rate, key, output = "", parameters = {}): #!!! docstring plug, step_size, block_size, out_indices = load_and_query(data, sample_rate, key, parameters) if output == "": outix = 0 else: assert output in out_indices outix = out_indices[output] ff = frames.frames_from_array(data, step_size, block_size) fi = 0 for f in ff: results = plug.process_block(f, vampyhost.frame_to_realtime(fi, sample_rate)) # results is a dict mapping output number -> list of feature dicts if outix in results: for r in results[outix]: yield r fi = fi + step_size results = plug.get_remaining_features() if outix in results: for r in results[outix]: yield r plug.unload()