Mercurial > hg > jvamp
view org/vamp_plugins/test.java @ 21:0a91d898acc3
Finish implementation of RealTime; add dispose() calls
author | Chris Cannam |
---|---|
date | Thu, 09 Feb 2012 16:18:33 +0000 |
parents | 5b0847d344c3 |
children |
line wrap: on
line source
package org.vamp_plugins; import java.util.ArrayList; import java.util.TreeMap; import java.util.Map; import java.util.List; import java.lang.RuntimeException; public class test { private static void printFeatures(Map<Integer, ArrayList<Feature>> features) { for (Map.Entry<Integer, ArrayList<Feature>> mi : features.entrySet()) { System.out.print(mi.getKey() + ": "); for (Feature li : mi.getValue()) { System.out.print("[" + li.timestamp + "= "); for (float v : li.values) { System.out.print(v + " "); } System.out.print("] (\""); System.out.print(li.label); System.out.print("\") "); } System.out.println(""); } } public static void main(String[] args) { // This is a plugin we know we have installed // String key = "vamp-example-plugins:percussiononsets"; String key = "qm-vamp-plugins:qm-onsetdetector"; PluginLoader loader = PluginLoader.getInstance(); try { Plugin p = loader.loadPlugin(key, 44100); System.out.println("identifier: " + p.getIdentifier()); System.out.println("name: " + p.getName()); System.out.println("description: " + p.getDescription()); System.out.println("version: " + p.getPluginVersion()); Plugin.InputDomain domain = p.getInputDomain(); if (domain == Plugin.InputDomain.TimeDomain) { System.out.println("This is a time-domain plugin"); } else { System.out.println("This is a frequency-domain plugin"); } ParameterDescriptor[] params = p.getParameterDescriptors(); System.out.println("Plugin has " + params.length + " parameters(s)"); for (int i = 0; i < params.length; ++i) { System.out.println(i + ": " + params[i].identifier + " (" + params[i].name + ")"); } String[] progs = p.getPrograms(); System.out.println("Plugin has " + progs.length + " program(s)"); for (int i = 0; i < progs.length; ++i) { System.out.println(i + ": " + progs[i]); } OutputDescriptor[] outputs = p.getOutputDescriptors(); System.out.println("Plugin has " + outputs.length + " output(s)"); for (int i = 0; i < outputs.length; ++i) { System.out.println(i + ": " + outputs[i].identifier + " (sample type: " + outputs[i].sampleType + ")"); } boolean b = p.initialise(1, 1024, 1024); System.out.println("Plugin initialise returned " + b); if (!b) { throw new RuntimeException("Plugin initialise failed"); } float[][] buffers = new float[1][1024]; for (int block = 0; block < 1024; ++block) { for (int i = 0; i < 1024; ++i) { buffers[0][i] = 0.0f; } if (block == 512) { buffers[0][0] = 0.5f; buffers[0][1] = -0.5f; } RealTime timestamp = RealTime.frame2RealTime(block * 1024, 44100); TreeMap<Integer, ArrayList<Feature>> features = p.process(buffers, timestamp); timestamp.dispose(); printFeatures(features); } TreeMap<Integer, ArrayList<Feature>> features = p.getRemainingFeatures(); System.out.println("Results from getRemainingFeatures:"); printFeatures(features); p.dispose(); } catch (PluginLoader.LoadFailedException e) { System.out.println("Plugin load failed"); } } }