annotate test/test.java @ 22:6385a6caaa7c

Move test program to own directory, add process using subset of array, add hgignore
author Chris Cannam
date Wed, 14 Nov 2012 17:35:46 +0000
parents org/vamp_plugins/test.java@0a91d898acc3
children cd430fbf6795
rev   line source
Chris@0 1
Chris@16 2 import java.util.ArrayList;
Chris@16 3 import java.util.TreeMap;
Chris@19 4 import java.util.Map;
Chris@19 5 import java.util.List;
Chris@18 6 import java.lang.RuntimeException;
Chris@16 7
Chris@22 8 import org.vamp_plugins.PluginLoader;
Chris@22 9 import org.vamp_plugins.Plugin;
Chris@22 10 import org.vamp_plugins.ParameterDescriptor;
Chris@22 11 import org.vamp_plugins.OutputDescriptor;
Chris@22 12 import org.vamp_plugins.Feature;
Chris@22 13 import org.vamp_plugins.RealTime;
Chris@22 14
Chris@0 15 public class test
Chris@0 16 {
Chris@19 17 private static void printFeatures(Map<Integer, ArrayList<Feature>> features) {
Chris@19 18 for (Map.Entry<Integer, ArrayList<Feature>> mi : features.entrySet()) {
Chris@19 19 System.out.print(mi.getKey() + ": ");
Chris@19 20 for (Feature li : mi.getValue()) {
Chris@19 21 System.out.print("[" + li.timestamp + "= ");
Chris@19 22 for (float v : li.values) {
Chris@19 23 System.out.print(v + " ");
Chris@19 24 }
Chris@19 25 System.out.print("] (\"");
Chris@19 26 System.out.print(li.label);
Chris@19 27 System.out.print("\") ");
Chris@19 28 }
Chris@19 29 System.out.println("");
Chris@19 30 }
Chris@19 31 }
Chris@19 32
Chris@0 33 public static void main(String[] args) {
Chris@0 34
Chris@0 35 // This is a plugin we know we have installed
Chris@6 36 // String key = "vamp-example-plugins:percussiononsets";
Chris@7 37 String key = "qm-vamp-plugins:qm-onsetdetector";
Chris@0 38
Chris@0 39 PluginLoader loader = PluginLoader.getInstance();
Chris@0 40
Chris@0 41 try {
Chris@0 42 Plugin p = loader.loadPlugin(key, 44100);
Chris@9 43 System.out.println("identifier: " + p.getIdentifier());
Chris@9 44 System.out.println("name: " + p.getName());
Chris@9 45 System.out.println("description: " + p.getDescription());
Chris@9 46 System.out.println("version: " + p.getPluginVersion());
Chris@5 47 Plugin.InputDomain domain = p.getInputDomain();
Chris@5 48 if (domain == Plugin.InputDomain.TimeDomain) {
Chris@5 49 System.out.println("This is a time-domain plugin");
Chris@5 50 } else {
Chris@5 51 System.out.println("This is a frequency-domain plugin");
Chris@5 52 }
Chris@9 53 ParameterDescriptor[] params = p.getParameterDescriptors();
Chris@9 54 System.out.println("Plugin has " + params.length + " parameters(s)");
Chris@9 55 for (int i = 0; i < params.length; ++i) {
Chris@9 56 System.out.println(i + ": " + params[i].identifier + " (" + params[i].name + ")");
Chris@9 57 }
Chris@6 58 String[] progs = p.getPrograms();
Chris@6 59 System.out.println("Plugin has " + progs.length + " program(s)");
Chris@6 60 for (int i = 0; i < progs.length; ++i) {
Chris@6 61 System.out.println(i + ": " + progs[i]);
Chris@6 62 }
Chris@7 63 OutputDescriptor[] outputs = p.getOutputDescriptors();
Chris@7 64 System.out.println("Plugin has " + outputs.length + " output(s)");
Chris@7 65 for (int i = 0; i < outputs.length; ++i) {
Chris@7 66 System.out.println(i + ": " + outputs[i].identifier + " (sample type: " + outputs[i].sampleType + ")");
Chris@7 67 }
Chris@16 68
Chris@18 69 boolean b = p.initialise(1, 1024, 1024);
Chris@16 70 System.out.println("Plugin initialise returned " + b);
Chris@18 71 if (!b) {
Chris@18 72 throw new RuntimeException("Plugin initialise failed");
Chris@18 73 }
Chris@16 74
Chris@17 75 float[][] buffers = new float[1][1024];
Chris@17 76 for (int block = 0; block < 1024; ++block) {
Chris@17 77 for (int i = 0; i < 1024; ++i) {
Chris@17 78 buffers[0][i] = 0.0f;
Chris@17 79 }
Chris@17 80 if (block == 512) {
Chris@19 81 buffers[0][0] = 0.5f;
Chris@19 82 buffers[0][1] = -0.5f;
Chris@17 83 }
Chris@17 84 RealTime timestamp = RealTime.frame2RealTime(block * 1024, 44100);
Chris@18 85 TreeMap<Integer, ArrayList<Feature>>
Chris@17 86 features = p.process(buffers, timestamp);
Chris@19 87
Chris@21 88 timestamp.dispose();
Chris@21 89
Chris@19 90 printFeatures(features);
Chris@17 91 }
Chris@16 92
Chris@18 93 TreeMap<Integer, ArrayList<Feature>>
Chris@16 94 features = p.getRemainingFeatures();
Chris@19 95
Chris@19 96 System.out.println("Results from getRemainingFeatures:");
Chris@19 97
Chris@19 98 printFeatures(features);
Chris@21 99 p.dispose();
Chris@16 100
Chris@0 101 } catch (PluginLoader.LoadFailedException e) {
Chris@0 102 System.out.println("Plugin load failed");
Chris@0 103 }
Chris@0 104 }
Chris@0 105 }
Chris@0 106