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