Chris@0: Chris@0: package org.vamp_plugins; Chris@0: Chris@16: import java.util.ArrayList; Chris@16: import java.util.TreeMap; Chris@16: Chris@0: public class test Chris@0: { Chris@0: public static void main(String[] args) { Chris@0: Chris@0: // This is a plugin we know we have installed Chris@6: // String key = "vamp-example-plugins:percussiononsets"; Chris@7: String key = "qm-vamp-plugins:qm-onsetdetector"; Chris@0: Chris@0: PluginLoader loader = PluginLoader.getInstance(); Chris@0: Chris@0: try { Chris@0: Plugin p = loader.loadPlugin(key, 44100); Chris@9: System.out.println("identifier: " + p.getIdentifier()); Chris@9: System.out.println("name: " + p.getName()); Chris@9: System.out.println("description: " + p.getDescription()); Chris@9: System.out.println("version: " + p.getPluginVersion()); Chris@5: Plugin.InputDomain domain = p.getInputDomain(); Chris@5: if (domain == Plugin.InputDomain.TimeDomain) { Chris@5: System.out.println("This is a time-domain plugin"); Chris@5: } else { Chris@5: System.out.println("This is a frequency-domain plugin"); Chris@5: } Chris@9: ParameterDescriptor[] params = p.getParameterDescriptors(); Chris@9: System.out.println("Plugin has " + params.length + " parameters(s)"); Chris@9: for (int i = 0; i < params.length; ++i) { Chris@9: System.out.println(i + ": " + params[i].identifier + " (" + params[i].name + ")"); Chris@9: } Chris@6: String[] progs = p.getPrograms(); Chris@6: System.out.println("Plugin has " + progs.length + " program(s)"); Chris@6: for (int i = 0; i < progs.length; ++i) { Chris@6: System.out.println(i + ": " + progs[i]); Chris@6: } Chris@7: OutputDescriptor[] outputs = p.getOutputDescriptors(); Chris@7: System.out.println("Plugin has " + outputs.length + " output(s)"); Chris@7: for (int i = 0; i < outputs.length; ++i) { Chris@7: System.out.println(i + ": " + outputs[i].identifier + " (sample type: " + outputs[i].sampleType + ")"); Chris@7: } Chris@16: Chris@17: boolean b = p.initialise(1, 0, 1024); Chris@16: System.out.println("Plugin initialise returned " + b); Chris@16: Chris@17: float[][] buffers = new float[1][1024]; Chris@17: for (int block = 0; block < 1024; ++block) { Chris@17: for (int i = 0; i < 1024; ++i) { Chris@17: buffers[0][i] = 0.0f; Chris@17: } Chris@17: if (block == 512) { Chris@17: buffers[0][0] = 1.0f; Chris@17: } Chris@17: RealTime timestamp = RealTime.frame2RealTime(block * 1024, 44100); Chris@17: TreeMap> Chris@17: features = p.process(buffers, timestamp); Chris@17: System.out.println("Plugin process returned features on " + features.size() + " different output(s)"); Chris@17: } Chris@16: Chris@16: TreeMap> Chris@16: features = p.getRemainingFeatures(); Chris@16: System.out.println("Plugin getRemainingFeatures returned features on " + features.size() + " different output(s)"); Chris@16: Chris@0: } catch (PluginLoader.LoadFailedException e) { Chris@0: System.out.println("Plugin load failed"); Chris@0: } Chris@0: } Chris@0: } Chris@0: