Mercurial > hg > vampy-host
changeset 88:7228921e8425
Some way to implementing collect()
author | Chris Cannam |
---|---|
date | Wed, 21 Jan 2015 15:13:00 +0000 |
parents | dd56716714e0 |
children | 1a08dd72f4d2 |
files | test/test_collect.py vamp/collect.py |
diffstat | 2 files changed, 22 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/test/test_collect.py Wed Jan 21 15:04:05 2015 +0000 +++ b/test/test_collect.py Wed Jan 21 15:13:00 2015 +0000 @@ -20,6 +20,14 @@ return np.arange(n) + 1 def test_collect_runs_at_all(): - buf = input_data(blocksize) - results = vamp.collect(buf, rate, plugin_key, "input-summary") - assert type(results) == dict + buf = input_data(blocksize * 10) + results = list(vamp.collect(buf, rate, plugin_key, "input-timestamp")) + assert results != [] + +def test_collect_one_sample_per_step(): + buf = input_data(blocksize * 10) + results = list(vamp.collect(buf, rate, plugin_key, "input-timestamp")) + assert len(results) == 10 + for r in results: + assert r["timestamp"] == vamp.vampyhost.frame_to_realtime(r["values"][0], rate) +
--- a/vamp/collect.py Wed Jan 21 15:04:05 2015 +0000 +++ b/vamp/collect.py Wed Jan 21 15:13:00 2015 +0000 @@ -2,15 +2,7 @@ import vampyhost import load -import frames - -##!!! -## -## We could also devise a generator for the timestamps that need -## filling: provide the output type & rate and get back a timestamp -## generator -## -##!!! +import process def timestamp_features(sample_rate, step_size, output_desc, features): n = -1 @@ -35,28 +27,19 @@ def collect(data, sample_rate, key, output, parameters = {}): - + plug, step_size, block_size = load.load_and_configure(data, sample_rate, key, parameters) - plug_outs = plug.get_outputs() - if plug_outs == []: - return - - outNo = -1 - for n, o in zip(range(0, len(plug_outs)), plug_outs): - if output == "" or o["identifier"] == output: - outNo = n - break - - assert outNo >= 0 #!!! todo proper error reporting - - ff = frames.frames_from_array(data, step_size, block_size) - fi = 0 - - #!!! todo! + if output == "": + out = plug.get_output(0) + else: + out = plug.get_output(output) plug.unload() - - return {} + + results = process.process(data, sample_rate, key, output, parameters) + + return timestamp_features(sample_rate, step_size, out, results) +