changeset 171:4c2ff04a89cf

Move to subdirectory
author Chris Cannam <c.cannam@qmul.ac.uk>
date Fri, 07 Oct 2016 15:41:23 +0100
parents 4997e3b4aa54
children ee9d66f669d2
files examples/basic.json examples/configuration.json examples/configurationrequest.json examples/configurationresponse.json examples/configuredoutputdescriptor.json examples/enums.json examples/error.json examples/extractorstaticdata.json examples/feature-array.json examples/feature-base64.json examples/featureset.json examples/finishrequest.json examples/finishresponse.json examples/listrequest.json examples/listresponse.json examples/loadrequest.json examples/loadresponse.json examples/outputdescriptor.json examples/parameterdescriptor.json examples/processinput-array.json examples/processinput-base64.json examples/processrequest.json examples/processresponse.json examples/realtime.json examples/rpcrequest.json examples/rpcresponse-error.json examples/rpcresponse-ok.json examples/serialisedarray-array.json examples/serialisedarray-base64.json examples/valueextents.json json/examples/basic.json json/examples/configuration.json json/examples/configurationrequest.json json/examples/configurationresponse.json json/examples/configuredoutputdescriptor.json json/examples/enums.json json/examples/error.json json/examples/extractorstaticdata.json json/examples/feature-array.json json/examples/feature-base64.json json/examples/featureset.json json/examples/finishrequest.json json/examples/finishresponse.json json/examples/listrequest.json json/examples/listresponse.json json/examples/loadrequest.json json/examples/loadresponse.json json/examples/outputdescriptor.json json/examples/parameterdescriptor.json json/examples/processinput-array.json json/examples/processinput-base64.json json/examples/processrequest.json json/examples/processresponse.json json/examples/realtime.json json/examples/rpcrequest.json json/examples/rpcresponse-error.json json/examples/rpcresponse-ok.json json/examples/serialisedarray-array.json json/examples/serialisedarray-base64.json json/examples/valueextents.json json/schema/basic.json json/schema/configuration.json json/schema/configurationrequest.json json/schema/configurationresponse.json json/schema/configuredoutputdescriptor.json json/schema/enums.json json/schema/error.json json/schema/extractorstaticdata.json json/schema/feature.json json/schema/featureset.json json/schema/finishrequest.json json/schema/finishresponse.json json/schema/listrequest.json json/schema/listresponse.json json/schema/loadrequest.json json/schema/loadresponse.json json/schema/outputdescriptor.json json/schema/parameterdescriptor.json json/schema/processinput.json json/schema/processrequest.json json/schema/processresponse.json json/schema/realtime.json json/schema/rpcrequest.json json/schema/rpcresponse.json json/schema/serialisedarray.json json/schema/valueextents.json json/test.sh schema/basic.json schema/configuration.json schema/configurationrequest.json schema/configurationresponse.json schema/configuredoutputdescriptor.json schema/enums.json schema/error.json schema/extractorstaticdata.json schema/feature.json schema/featureset.json schema/finishrequest.json schema/finishresponse.json schema/listrequest.json schema/listresponse.json schema/loadrequest.json schema/loadresponse.json schema/outputdescriptor.json schema/parameterdescriptor.json schema/processinput.json schema/processrequest.json schema/processresponse.json schema/realtime.json schema/rpcrequest.json schema/rpcresponse.json schema/serialisedarray.json schema/valueextents.json test.sh
diffstat 114 files changed, 917 insertions(+), 917 deletions(-) [+]
line wrap: on
line diff
--- a/examples/basic.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"description": "Power values of the frequency spectrum bins calculated from the input signal", "identifier": "powerspectrum", "name": "Power Spectrum"}
--- a/examples/configuration.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"blockSize": 512, "channelCount": 2, "parameterValues": {"sensitivity": 40, "threshold": 3}, "stepSize": 1024}
--- a/examples/configurationrequest.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"handle":12345,"configuration":{"blockSize": 512, "channelCount": 2, "parameterValues": {"sensitivity": 40, "threshold": 3}, "stepSize": 1024}}
--- a/examples/configurationresponse.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"outputList": [{"basic": {"description": "Percussive note onset locations", "identifier": "onsets", "name": "Onsets"}, "configured": { "binCount": 0, "binNames": [], "hasDuration": false, "sampleRate": 44100, "sampleType": "VariableSampleRate", "unit": ""}}, {"basic": {"description": "Broadband energy rise detection function", "identifier": "detectionfunction", "name": "Detection Function"}, "configured": { "binCount": 1, "binNames": [""], "hasDuration": false, "quantizeStep": 1, "sampleRate": 44100, "sampleType": "OneSamplePerStep", "unit": ""}}]}
--- a/examples/configuredoutputdescriptor.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-{"binCount": 513, "binNames": [], "hasDuration": false, "sampleRate": 0, "sampleType": "OneSamplePerStep", "unit": ""}
-
--- a/examples/enums.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{}
--- a/examples/error.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"code": 6, "message": "An error occurred!" }
--- a/examples/extractorstaticdata.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"basic": {"description": "Detect percussive note onsets by identifying broadband energy rises", "identifier": "percussiononsets", "name": "Simple Percussion Onset Detector"}, "basicOutputInfo": [{"description": "Percussive note onset locations", "identifier": "onsets", "name": "Onsets"}, {"description": "Broadband energy rise detection function", "identifier": "detectionfunction", "name": "Detection Function"}], "category": ["Time", "Onsets"], "copyright": "Code copyright 2006 Queen Mary, University of London, after Dan Barry et al 2005.  Freely redistributable (BSD license)", "inputDomain": "FrequencyDomain", "key": "vamp-example-plugins:percussiononsets", "maker": "Vamp SDK Example Plugins", "maxChannelCount": 1, "minChannelCount": 1, "parameters": [{"basic": {"description": "Energy rise within a frequency bin necessary to count toward broadband total", "identifier": "threshold", "name": "Energy rise threshold"}, "defaultValue": 3, "extents": {"max": 20, "min": 0}, "unit": "dB", "valueNames": []}, {"basic": {"description": "Sensitivity of peak detector applied to broadband detection function", "identifier": "sensitivity", "name": "Sensitivity"}, "defaultValue": 40, "extents": {"max": 100, "min": 0}, "unit": "%", "valueNames": []}], "programs": [], "version": 2}
--- a/examples/feature-array.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"featureValues": [ 1.0, -1.0, 4.0, 1505050.50 ], "label": "A feature", "timestamp": {"n": 141590000, "s": 3}}
--- a/examples/feature-base64.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"featureValues": "AACAPwAAAEAEAEBAAACAQAAAoEAAAMBAAADQQAAA4EA", "label": "A feature", "timestamp": {"n": 141590000, "s": 3}}
--- a/examples/featureset.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"outputid": [{"featureValues": "AACAPwAAAEAEAEBAAACAQAAAoEAAAMBAAADQQAAA4EA", "label": "A feature", "timestamp": {"n": 141590000, "s": 3}}]}
--- a/examples/finishrequest.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"handle": 1}
--- a/examples/finishresponse.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-{"handle":12345,"features":{"outputid": [{"featureValues": [1,2,3], "timestamp": {"n": 141590000, "s": 3}}]}}
-
--- a/examples/listrequest.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{}
--- a/examples/listresponse.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,284 +0,0 @@
-{
-    "available": [
-        {
-            "basic": {
-                "description": "Track the amplitude of the audio signal",
-                "identifier": "amplitudefollower",
-                "name": "Amplitude Follower"
-            },
-            "basicOutputInfo": [
-                {
-                    "description": "The peak tracked amplitude for the current processing block",
-                    "identifier": "amplitude",
-                    "name": "Amplitude"
-                }
-            ],
-            "category": [],
-            "copyright": "Code copyright 2006 Dan Stowell; method from SuperCollider.  Freely redistributable (BSD license)",
-            "inputDomain": "TimeDomain",
-            "maker": "Vamp SDK Example Plugins",
-            "maxChannelCount": 1,
-            "minChannelCount": 1,
-            "parameters": [
-                {
-                    "basic": {
-                        "description": "The 60dB convergence time for an increase in amplitude",
-                        "identifier": "attack",
-                        "name": "Attack time"
-                    },
-                    "defaultValue": 0.0099999997764825821,
-                    "extents": {
-                        "max": 1,
-                        "min": 0
-                    },
-                    "unit": "s",
-                    "valueNames": []
-                },
-                {
-                    "basic": {
-                        "description": "The 60dB convergence time for a decrease in amplitude",
-                        "identifier": "release",
-                        "name": "Release time"
-                    },
-                    "defaultValue": 0.0099999997764825821,
-                    "extents": {
-                        "max": 1,
-                        "min": 0
-                    },
-                    "unit": "s",
-                    "valueNames": []
-                }
-            ],
-            "key": "vamp-example-plugins:amplitudefollower",
-            "version": 1,
-            "programs": []
-        },
-        {
-            "basic": {
-                "description": "Study a short section of audio and estimate its tempo, assuming the tempo is constant",
-                "identifier": "fixedtempo",
-                "name": "Simple Fixed Tempo Estimator"
-            },
-            "basicOutputInfo": [
-                {
-                    "description": "Estimated tempo",
-                    "identifier": "tempo",
-                    "name": "Tempo"
-                },
-                {
-                    "description": "Possible tempo estimates, one per bin with the most likely in the first bin",
-                    "identifier": "candidates",
-                    "name": "Tempo candidates"
-                },
-                {
-                    "description": "Onset detection function",
-                    "identifier": "detectionfunction",
-                    "name": "Detection Function"
-                },
-                {
-                    "description": "Autocorrelation of onset detection function",
-                    "identifier": "acf",
-                    "name": "Autocorrelation Function"
-                },
-                {
-                    "description": "Filtered autocorrelation of onset detection function",
-                    "identifier": "filtered_acf",
-                    "name": "Filtered Autocorrelation"
-                }
-            ],
-            "category": [],
-            "copyright": "Code copyright 2008 Queen Mary, University of London.  Freely redistributable (BSD license)",
-            "inputDomain": "FrequencyDomain",
-            "maker": "Vamp SDK Example Plugins",
-            "maxChannelCount": 1,
-            "minChannelCount": 1,
-            "parameters": [
-                {
-                    "basic": {
-                        "description": "Minimum beat-per-minute value which the tempo estimator is able to return",
-                        "identifier": "minbpm",
-                        "name": "Minimum estimated tempo"
-                    },
-                    "defaultValue": 50,
-                    "extents": {
-                        "max": 360,
-                        "min": 10
-                    },
-                    "unit": "bpm",
-                    "valueNames": []
-                },
-                {
-                    "basic": {
-                        "description": "Maximum beat-per-minute value which the tempo estimator is able to return",
-                        "identifier": "maxbpm",
-                        "name": "Maximum estimated tempo"
-                    },
-                    "defaultValue": 190,
-                    "extents": {
-                        "max": 360,
-                        "min": 10
-                    },
-                    "unit": "bpm",
-                    "valueNames": []
-                },
-                {
-                    "basic": {
-                        "description": "Length of audio input, in seconds, which should be taken into account when estimating tempo.  There is no need to supply the plugin with any further input once this time has elapsed since the start of the audio.  The tempo estimator may use only the first part of this, up to eight times the slowest beat duration: increasing this value further than that is unlikely to improve results.",
-                        "identifier": "maxdflen",
-                        "name": "Input duration to study"
-                    },
-                    "defaultValue": 10,
-                    "extents": {
-                        "max": 40,
-                        "min": 2
-                    },
-                    "unit": "s",
-                    "valueNames": []
-                }
-            ],
-            "key": "vamp-example-plugins:fixedtempo",
-            "version": 1,
-            "programs": []
-        },
-        {
-            "basic": {
-                "description": "Detect percussive note onsets by identifying broadband energy rises",
-                "identifier": "percussiononsets",
-                "name": "Simple Percussion Onset Detector"
-            },
-            "basicOutputInfo": [
-                {
-                    "description": "Percussive note onset locations",
-                    "identifier": "onsets",
-                    "name": "Onsets"
-                },
-                {
-                    "description": "Broadband energy rise detection function",
-                    "identifier": "detectionfunction",
-                    "name": "Detection Function"
-                }
-            ],
-            "category": [],
-            "copyright": "Code copyright 2006 Queen Mary, University of London, after Dan Barry et al 2005.  Freely redistributable (BSD license)",
-            "inputDomain": "FrequencyDomain",
-            "maker": "Vamp SDK Example Plugins",
-            "maxChannelCount": 1,
-            "minChannelCount": 1,
-            "parameters": [
-                {
-                    "basic": {
-                        "description": "Energy rise within a frequency bin necessary to count toward broadband total",
-                        "identifier": "threshold",
-                        "name": "Energy rise threshold"
-                    },
-                    "defaultValue": 3,
-                    "extents": {
-                        "max": 20,
-                        "min": 0
-                    },
-                    "unit": "dB",
-                    "valueNames": []
-                },
-                {
-                    "basic": {
-                        "description": "Sensitivity of peak detector applied to broadband detection function",
-                        "identifier": "sensitivity",
-                        "name": "Sensitivity"
-                    },
-                    "defaultValue": 40,
-                    "extents": {
-                        "max": 100,
-                        "min": 0
-                    },
-                    "unit": "%",
-                    "valueNames": []
-                }
-            ],
-            "key": "vamp-example-plugins:percussiononsets",
-            "version": 2,
-            "programs": []
-        },
-        {
-            "basic": {
-                "description": "Return the power spectrum of a signal",
-                "identifier": "powerspectrum",
-                "name": "Simple Power Spectrum"
-            },
-            "basicOutputInfo": [
-                {
-                    "description": "Power values of the frequency spectrum bins calculated from the input signal",
-                    "identifier": "powerspectrum",
-                    "name": "Power Spectrum"
-                }
-            ],
-            "category": [],
-            "copyright": "Freely redistributable (BSD license)",
-            "inputDomain": "FrequencyDomain",
-            "maker": "Vamp SDK Example Plugins",
-            "maxChannelCount": 1,
-            "minChannelCount": 1,
-            "parameters": [],
-            "key": "vamp-example-plugins:powerspectrum",
-            "version": 1,
-            "programs": []
-        },
-        {
-            "basic": {
-                "description": "Calculate the centroid frequency of the spectrum of the input signal",
-                "identifier": "spectralcentroid",
-                "name": "Spectral Centroid"
-            },
-            "basicOutputInfo": [
-                {
-                    "description": "Centroid of the log weighted frequency spectrum",
-                    "identifier": "logcentroid",
-                    "name": "Log Frequency Centroid"
-                },
-                {
-                    "description": "Centroid of the linear frequency spectrum",
-                    "identifier": "linearcentroid",
-                    "name": "Linear Frequency Centroid"
-                }
-            ],
-            "category": [],
-            "copyright": "Freely redistributable (BSD license)",
-            "inputDomain": "FrequencyDomain",
-            "maker": "Vamp SDK Example Plugins",
-            "maxChannelCount": 1,
-            "minChannelCount": 1,
-            "parameters": [],
-            "key": "vamp-example-plugins:spectralcentroid",
-            "version": 2,
-            "programs": []
-        },
-        {
-            "basic": {
-                "description": "Detect and count zero crossing points",
-                "identifier": "zerocrossing",
-                "name": "Zero Crossings"
-            },
-            "basicOutputInfo": [
-                {
-                    "description": "The number of zero crossing points per processing block",
-                    "identifier": "counts",
-                    "name": "Zero Crossing Counts"
-                },
-                {
-                    "description": "The locations of zero crossing points",
-                    "identifier": "zerocrossings",
-                    "name": "Zero Crossings"
-                }
-            ],
-            "category": [],
-            "copyright": "Freely redistributable (BSD license)",
-            "inputDomain": "TimeDomain",
-            "maker": "Vamp SDK Example Plugins",
-            "maxChannelCount": 1,
-            "minChannelCount": 1,
-            "parameters": [],
-            "key": "vamp-example-plugins:zerocrossing",
-            "version": 2,
-            "programs": []
-        }
-    ]
-}
--- a/examples/loadrequest.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"key":"vamp-example-plugins:percussiononsets","inputSampleRate":44100,"adapterFlags":["AdaptInputDomain","AdaptBufferSize"]}
--- a/examples/loadresponse.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"handle":12345,"staticData":{"basic": {"description": "Detect percussive note onsets by identifying broadband energy rises", "identifier": "percussiononsets", "name": "Simple Percussion Onset Detector"}, "basicOutputInfo": [{"description": "Percussive note onset locations", "identifier": "onsets", "name": "Onsets"}, {"description": "Broadband energy rise detection function", "identifier": "detectionfunction", "name": "Detection Function"}], "category": ["Time", "Onsets"], "copyright": "Code copyright 2006 Queen Mary, University of London, after Dan Barry et al 2005.  Freely redistributable (BSD license)", "inputDomain": "FrequencyDomain", "key": "vamp-example-plugins:percussiononsets", "maker": "Vamp SDK Example Plugins", "maxChannelCount": 1, "minChannelCount": 1, "parameters": [{"basic": {"description": "Energy rise within a frequency bin necessary to count toward broadband total", "identifier": "threshold", "name": "Energy rise threshold"}, "defaultValue": 3, "extents": {"max": 20, "min": 0}, "unit": "dB", "valueNames": []}, {"basic": {"description": "Sensitivity of peak detector applied to broadband detection function", "identifier": "sensitivity", "name": "Sensitivity"}, "defaultValue": 40, "extents": {"max": 100, "min": 0}, "unit": "%", "valueNames": []}], "programs": [], "version": 2},"defaultConfiguration":{"blockSize": 512, "channelCount": 2, "parameterValues": {"sensitivity": 40, "threshold": 3}, "stepSize": 1024}}
--- a/examples/outputdescriptor.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"basic": {"description": "Power values of the frequency spectrum bins calculated from the input signal", "identifier": "powerspectrum", "name": "Power Spectrum"}, "configured": { "binCount": 513, "binNames": [], "hasDuration": false, "sampleRate": 0, "sampleType": "OneSamplePerStep", "unit": ""}}
--- a/examples/parameterdescriptor.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"basic": {"description": "Energy rise within a frequency bin necessary to count toward broadband total", "identifier": "threshold", "name": "Energy rise threshold"}, "defaultValue": 3, "extents": {"max": 20.5, "min": 0}, "unit": "dB", "valueNames": []}
--- a/examples/processinput-array.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"inputBuffers":[[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0]], "timestamp": {"n": 141590000, "s": 3}}
--- a/examples/processinput-base64.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"inputBuffers":["AACAPwAAAEAEAEBAAACAQAAAoEAAAMBAAADQQAAA4EA"], "timestamp": {"n": 141590000, "s": 3}}
--- a/examples/processrequest.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"handle":12345,"processInput":{"inputBuffers":["AACAPwAAAEAEAEBAAACAQAAAoEAAAMBAAADQQAAA4EA"], "timestamp": {"n": 141590000, "s": 3}}}
--- a/examples/processresponse.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-{"handle":12345,"features":{"outputid": [{"featureValues": "AACAPwAAAEAEAEBAAACAQAAAoEAAAMBAAADQQAAA4EA", "label": "A feature", "timestamp": {"n": 141590000, "s": 3}}]}}
-
--- a/examples/realtime.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"s":14,"n":500000}
--- a/examples/rpcrequest.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-{"method": "load", "params": {"key":"vamp-example-plugins:percussiononsets","inputSampleRate":44100,"adapterFlags":["AdaptInputDomain","AdaptBufferSize"]}, "id": 6, "jsonrpc": "2.0"}
-
--- a/examples/rpcresponse-error.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"method": "process", "error": {"code": 6, "message": "An error occurred!" },"id": "6"}
--- a/examples/rpcresponse-ok.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"method": "load", "result": {"handle":12345,"staticData":{"basic": {"description": "Detect percussive note onsets by identifying broadband energy rises", "identifier": "percussiononsets", "name": "Simple Percussion Onset Detector"}, "basicOutputInfo": [{"description": "Percussive note onset locations", "identifier": "onsets", "name": "Onsets"}, {"description": "Broadband energy rise detection function", "identifier": "detectionfunction", "name": "Detection Function"}], "category": ["Time", "Onsets"], "copyright": "Code copyright 2006 Queen Mary, University of London, after Dan Barry et al 2005.  Freely redistributable (BSD license)", "inputDomain": "FrequencyDomain", "key": "vamp-example-plugins:percussiononsets", "maker": "Vamp SDK Example Plugins", "maxChannelCount": 1, "minChannelCount": 1, "parameters": [{"basic": {"description": "Energy rise within a frequency bin necessary to count toward broadband total", "identifier": "threshold", "name": "Energy rise threshold"}, "defaultValue": 3, "extents": {"max": 20, "min": 0}, "unit": "dB", "valueNames": []}, {"basic": {"description": "Sensitivity of peak detector applied to broadband detection function", "identifier": "sensitivity", "name": "Sensitivity"}, "defaultValue": 40, "extents": {"max": 100, "min": 0}, "unit": "%", "valueNames": []}], "programs": [], "version": 2},"defaultConfiguration":{"blockSize": 512, "channelCount": 2, "parameterValues": {"sensitivity": 40, "threshold": 3}, "stepSize": 1024}},"id": "6"}
--- a/examples/serialisedarray-array.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-[1,2,-3,3.1415926537]
--- a/examples/serialisedarray-base64.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-"AACAPwAAAEAEAEBAAACAQAAAoEAAAMBAAADQQAAA4EA"
--- a/examples/valueextents.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{ "min": 0.1, "max": 0.9 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/basic.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"description": "Power values of the frequency spectrum bins calculated from the input signal", "identifier": "powerspectrum", "name": "Power Spectrum"}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/configuration.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"blockSize": 512, "channelCount": 2, "parameterValues": {"sensitivity": 40, "threshold": 3}, "stepSize": 1024}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/configurationrequest.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"handle":12345,"configuration":{"blockSize": 512, "channelCount": 2, "parameterValues": {"sensitivity": 40, "threshold": 3}, "stepSize": 1024}}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/configurationresponse.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"outputList": [{"basic": {"description": "Percussive note onset locations", "identifier": "onsets", "name": "Onsets"}, "configured": { "binCount": 0, "binNames": [], "hasDuration": false, "sampleRate": 44100, "sampleType": "VariableSampleRate", "unit": ""}}, {"basic": {"description": "Broadband energy rise detection function", "identifier": "detectionfunction", "name": "Detection Function"}, "configured": { "binCount": 1, "binNames": [""], "hasDuration": false, "quantizeStep": 1, "sampleRate": 44100, "sampleType": "OneSamplePerStep", "unit": ""}}]}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/configuredoutputdescriptor.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,2 @@
+{"binCount": 513, "binNames": [], "hasDuration": false, "sampleRate": 0, "sampleType": "OneSamplePerStep", "unit": ""}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/enums.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/error.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"code": 6, "message": "An error occurred!" }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/extractorstaticdata.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"basic": {"description": "Detect percussive note onsets by identifying broadband energy rises", "identifier": "percussiononsets", "name": "Simple Percussion Onset Detector"}, "basicOutputInfo": [{"description": "Percussive note onset locations", "identifier": "onsets", "name": "Onsets"}, {"description": "Broadband energy rise detection function", "identifier": "detectionfunction", "name": "Detection Function"}], "category": ["Time", "Onsets"], "copyright": "Code copyright 2006 Queen Mary, University of London, after Dan Barry et al 2005.  Freely redistributable (BSD license)", "inputDomain": "FrequencyDomain", "key": "vamp-example-plugins:percussiononsets", "maker": "Vamp SDK Example Plugins", "maxChannelCount": 1, "minChannelCount": 1, "parameters": [{"basic": {"description": "Energy rise within a frequency bin necessary to count toward broadband total", "identifier": "threshold", "name": "Energy rise threshold"}, "defaultValue": 3, "extents": {"max": 20, "min": 0}, "unit": "dB", "valueNames": []}, {"basic": {"description": "Sensitivity of peak detector applied to broadband detection function", "identifier": "sensitivity", "name": "Sensitivity"}, "defaultValue": 40, "extents": {"max": 100, "min": 0}, "unit": "%", "valueNames": []}], "programs": [], "version": 2}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/feature-array.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"featureValues": [ 1.0, -1.0, 4.0, 1505050.50 ], "label": "A feature", "timestamp": {"n": 141590000, "s": 3}}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/feature-base64.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"featureValues": "AACAPwAAAEAEAEBAAACAQAAAoEAAAMBAAADQQAAA4EA", "label": "A feature", "timestamp": {"n": 141590000, "s": 3}}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/featureset.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"outputid": [{"featureValues": "AACAPwAAAEAEAEBAAACAQAAAoEAAAMBAAADQQAAA4EA", "label": "A feature", "timestamp": {"n": 141590000, "s": 3}}]}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/finishrequest.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"handle": 1}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/finishresponse.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,2 @@
+{"handle":12345,"features":{"outputid": [{"featureValues": [1,2,3], "timestamp": {"n": 141590000, "s": 3}}]}}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/listrequest.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/listresponse.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,284 @@
+{
+    "available": [
+        {
+            "basic": {
+                "description": "Track the amplitude of the audio signal",
+                "identifier": "amplitudefollower",
+                "name": "Amplitude Follower"
+            },
+            "basicOutputInfo": [
+                {
+                    "description": "The peak tracked amplitude for the current processing block",
+                    "identifier": "amplitude",
+                    "name": "Amplitude"
+                }
+            ],
+            "category": [],
+            "copyright": "Code copyright 2006 Dan Stowell; method from SuperCollider.  Freely redistributable (BSD license)",
+            "inputDomain": "TimeDomain",
+            "maker": "Vamp SDK Example Plugins",
+            "maxChannelCount": 1,
+            "minChannelCount": 1,
+            "parameters": [
+                {
+                    "basic": {
+                        "description": "The 60dB convergence time for an increase in amplitude",
+                        "identifier": "attack",
+                        "name": "Attack time"
+                    },
+                    "defaultValue": 0.0099999997764825821,
+                    "extents": {
+                        "max": 1,
+                        "min": 0
+                    },
+                    "unit": "s",
+                    "valueNames": []
+                },
+                {
+                    "basic": {
+                        "description": "The 60dB convergence time for a decrease in amplitude",
+                        "identifier": "release",
+                        "name": "Release time"
+                    },
+                    "defaultValue": 0.0099999997764825821,
+                    "extents": {
+                        "max": 1,
+                        "min": 0
+                    },
+                    "unit": "s",
+                    "valueNames": []
+                }
+            ],
+            "key": "vamp-example-plugins:amplitudefollower",
+            "version": 1,
+            "programs": []
+        },
+        {
+            "basic": {
+                "description": "Study a short section of audio and estimate its tempo, assuming the tempo is constant",
+                "identifier": "fixedtempo",
+                "name": "Simple Fixed Tempo Estimator"
+            },
+            "basicOutputInfo": [
+                {
+                    "description": "Estimated tempo",
+                    "identifier": "tempo",
+                    "name": "Tempo"
+                },
+                {
+                    "description": "Possible tempo estimates, one per bin with the most likely in the first bin",
+                    "identifier": "candidates",
+                    "name": "Tempo candidates"
+                },
+                {
+                    "description": "Onset detection function",
+                    "identifier": "detectionfunction",
+                    "name": "Detection Function"
+                },
+                {
+                    "description": "Autocorrelation of onset detection function",
+                    "identifier": "acf",
+                    "name": "Autocorrelation Function"
+                },
+                {
+                    "description": "Filtered autocorrelation of onset detection function",
+                    "identifier": "filtered_acf",
+                    "name": "Filtered Autocorrelation"
+                }
+            ],
+            "category": [],
+            "copyright": "Code copyright 2008 Queen Mary, University of London.  Freely redistributable (BSD license)",
+            "inputDomain": "FrequencyDomain",
+            "maker": "Vamp SDK Example Plugins",
+            "maxChannelCount": 1,
+            "minChannelCount": 1,
+            "parameters": [
+                {
+                    "basic": {
+                        "description": "Minimum beat-per-minute value which the tempo estimator is able to return",
+                        "identifier": "minbpm",
+                        "name": "Minimum estimated tempo"
+                    },
+                    "defaultValue": 50,
+                    "extents": {
+                        "max": 360,
+                        "min": 10
+                    },
+                    "unit": "bpm",
+                    "valueNames": []
+                },
+                {
+                    "basic": {
+                        "description": "Maximum beat-per-minute value which the tempo estimator is able to return",
+                        "identifier": "maxbpm",
+                        "name": "Maximum estimated tempo"
+                    },
+                    "defaultValue": 190,
+                    "extents": {
+                        "max": 360,
+                        "min": 10
+                    },
+                    "unit": "bpm",
+                    "valueNames": []
+                },
+                {
+                    "basic": {
+                        "description": "Length of audio input, in seconds, which should be taken into account when estimating tempo.  There is no need to supply the plugin with any further input once this time has elapsed since the start of the audio.  The tempo estimator may use only the first part of this, up to eight times the slowest beat duration: increasing this value further than that is unlikely to improve results.",
+                        "identifier": "maxdflen",
+                        "name": "Input duration to study"
+                    },
+                    "defaultValue": 10,
+                    "extents": {
+                        "max": 40,
+                        "min": 2
+                    },
+                    "unit": "s",
+                    "valueNames": []
+                }
+            ],
+            "key": "vamp-example-plugins:fixedtempo",
+            "version": 1,
+            "programs": []
+        },
+        {
+            "basic": {
+                "description": "Detect percussive note onsets by identifying broadband energy rises",
+                "identifier": "percussiononsets",
+                "name": "Simple Percussion Onset Detector"
+            },
+            "basicOutputInfo": [
+                {
+                    "description": "Percussive note onset locations",
+                    "identifier": "onsets",
+                    "name": "Onsets"
+                },
+                {
+                    "description": "Broadband energy rise detection function",
+                    "identifier": "detectionfunction",
+                    "name": "Detection Function"
+                }
+            ],
+            "category": [],
+            "copyright": "Code copyright 2006 Queen Mary, University of London, after Dan Barry et al 2005.  Freely redistributable (BSD license)",
+            "inputDomain": "FrequencyDomain",
+            "maker": "Vamp SDK Example Plugins",
+            "maxChannelCount": 1,
+            "minChannelCount": 1,
+            "parameters": [
+                {
+                    "basic": {
+                        "description": "Energy rise within a frequency bin necessary to count toward broadband total",
+                        "identifier": "threshold",
+                        "name": "Energy rise threshold"
+                    },
+                    "defaultValue": 3,
+                    "extents": {
+                        "max": 20,
+                        "min": 0
+                    },
+                    "unit": "dB",
+                    "valueNames": []
+                },
+                {
+                    "basic": {
+                        "description": "Sensitivity of peak detector applied to broadband detection function",
+                        "identifier": "sensitivity",
+                        "name": "Sensitivity"
+                    },
+                    "defaultValue": 40,
+                    "extents": {
+                        "max": 100,
+                        "min": 0
+                    },
+                    "unit": "%",
+                    "valueNames": []
+                }
+            ],
+            "key": "vamp-example-plugins:percussiononsets",
+            "version": 2,
+            "programs": []
+        },
+        {
+            "basic": {
+                "description": "Return the power spectrum of a signal",
+                "identifier": "powerspectrum",
+                "name": "Simple Power Spectrum"
+            },
+            "basicOutputInfo": [
+                {
+                    "description": "Power values of the frequency spectrum bins calculated from the input signal",
+                    "identifier": "powerspectrum",
+                    "name": "Power Spectrum"
+                }
+            ],
+            "category": [],
+            "copyright": "Freely redistributable (BSD license)",
+            "inputDomain": "FrequencyDomain",
+            "maker": "Vamp SDK Example Plugins",
+            "maxChannelCount": 1,
+            "minChannelCount": 1,
+            "parameters": [],
+            "key": "vamp-example-plugins:powerspectrum",
+            "version": 1,
+            "programs": []
+        },
+        {
+            "basic": {
+                "description": "Calculate the centroid frequency of the spectrum of the input signal",
+                "identifier": "spectralcentroid",
+                "name": "Spectral Centroid"
+            },
+            "basicOutputInfo": [
+                {
+                    "description": "Centroid of the log weighted frequency spectrum",
+                    "identifier": "logcentroid",
+                    "name": "Log Frequency Centroid"
+                },
+                {
+                    "description": "Centroid of the linear frequency spectrum",
+                    "identifier": "linearcentroid",
+                    "name": "Linear Frequency Centroid"
+                }
+            ],
+            "category": [],
+            "copyright": "Freely redistributable (BSD license)",
+            "inputDomain": "FrequencyDomain",
+            "maker": "Vamp SDK Example Plugins",
+            "maxChannelCount": 1,
+            "minChannelCount": 1,
+            "parameters": [],
+            "key": "vamp-example-plugins:spectralcentroid",
+            "version": 2,
+            "programs": []
+        },
+        {
+            "basic": {
+                "description": "Detect and count zero crossing points",
+                "identifier": "zerocrossing",
+                "name": "Zero Crossings"
+            },
+            "basicOutputInfo": [
+                {
+                    "description": "The number of zero crossing points per processing block",
+                    "identifier": "counts",
+                    "name": "Zero Crossing Counts"
+                },
+                {
+                    "description": "The locations of zero crossing points",
+                    "identifier": "zerocrossings",
+                    "name": "Zero Crossings"
+                }
+            ],
+            "category": [],
+            "copyright": "Freely redistributable (BSD license)",
+            "inputDomain": "TimeDomain",
+            "maker": "Vamp SDK Example Plugins",
+            "maxChannelCount": 1,
+            "minChannelCount": 1,
+            "parameters": [],
+            "key": "vamp-example-plugins:zerocrossing",
+            "version": 2,
+            "programs": []
+        }
+    ]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/loadrequest.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"key":"vamp-example-plugins:percussiononsets","inputSampleRate":44100,"adapterFlags":["AdaptInputDomain","AdaptBufferSize"]}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/loadresponse.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"handle":12345,"staticData":{"basic": {"description": "Detect percussive note onsets by identifying broadband energy rises", "identifier": "percussiononsets", "name": "Simple Percussion Onset Detector"}, "basicOutputInfo": [{"description": "Percussive note onset locations", "identifier": "onsets", "name": "Onsets"}, {"description": "Broadband energy rise detection function", "identifier": "detectionfunction", "name": "Detection Function"}], "category": ["Time", "Onsets"], "copyright": "Code copyright 2006 Queen Mary, University of London, after Dan Barry et al 2005.  Freely redistributable (BSD license)", "inputDomain": "FrequencyDomain", "key": "vamp-example-plugins:percussiononsets", "maker": "Vamp SDK Example Plugins", "maxChannelCount": 1, "minChannelCount": 1, "parameters": [{"basic": {"description": "Energy rise within a frequency bin necessary to count toward broadband total", "identifier": "threshold", "name": "Energy rise threshold"}, "defaultValue": 3, "extents": {"max": 20, "min": 0}, "unit": "dB", "valueNames": []}, {"basic": {"description": "Sensitivity of peak detector applied to broadband detection function", "identifier": "sensitivity", "name": "Sensitivity"}, "defaultValue": 40, "extents": {"max": 100, "min": 0}, "unit": "%", "valueNames": []}], "programs": [], "version": 2},"defaultConfiguration":{"blockSize": 512, "channelCount": 2, "parameterValues": {"sensitivity": 40, "threshold": 3}, "stepSize": 1024}}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/outputdescriptor.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"basic": {"description": "Power values of the frequency spectrum bins calculated from the input signal", "identifier": "powerspectrum", "name": "Power Spectrum"}, "configured": { "binCount": 513, "binNames": [], "hasDuration": false, "sampleRate": 0, "sampleType": "OneSamplePerStep", "unit": ""}}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/parameterdescriptor.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"basic": {"description": "Energy rise within a frequency bin necessary to count toward broadband total", "identifier": "threshold", "name": "Energy rise threshold"}, "defaultValue": 3, "extents": {"max": 20.5, "min": 0}, "unit": "dB", "valueNames": []}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/processinput-array.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"inputBuffers":[[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0]], "timestamp": {"n": 141590000, "s": 3}}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/processinput-base64.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"inputBuffers":["AACAPwAAAEAEAEBAAACAQAAAoEAAAMBAAADQQAAA4EA"], "timestamp": {"n": 141590000, "s": 3}}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/processrequest.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"handle":12345,"processInput":{"inputBuffers":["AACAPwAAAEAEAEBAAACAQAAAoEAAAMBAAADQQAAA4EA"], "timestamp": {"n": 141590000, "s": 3}}}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/processresponse.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,2 @@
+{"handle":12345,"features":{"outputid": [{"featureValues": "AACAPwAAAEAEAEBAAACAQAAAoEAAAMBAAADQQAAA4EA", "label": "A feature", "timestamp": {"n": 141590000, "s": 3}}]}}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/realtime.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"s":14,"n":500000}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/rpcrequest.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,2 @@
+{"method": "load", "params": {"key":"vamp-example-plugins:percussiononsets","inputSampleRate":44100,"adapterFlags":["AdaptInputDomain","AdaptBufferSize"]}, "id": 6, "jsonrpc": "2.0"}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/rpcresponse-error.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"method": "process", "error": {"code": 6, "message": "An error occurred!" },"id": "6"}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/rpcresponse-ok.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{"method": "load", "result": {"handle":12345,"staticData":{"basic": {"description": "Detect percussive note onsets by identifying broadband energy rises", "identifier": "percussiononsets", "name": "Simple Percussion Onset Detector"}, "basicOutputInfo": [{"description": "Percussive note onset locations", "identifier": "onsets", "name": "Onsets"}, {"description": "Broadband energy rise detection function", "identifier": "detectionfunction", "name": "Detection Function"}], "category": ["Time", "Onsets"], "copyright": "Code copyright 2006 Queen Mary, University of London, after Dan Barry et al 2005.  Freely redistributable (BSD license)", "inputDomain": "FrequencyDomain", "key": "vamp-example-plugins:percussiononsets", "maker": "Vamp SDK Example Plugins", "maxChannelCount": 1, "minChannelCount": 1, "parameters": [{"basic": {"description": "Energy rise within a frequency bin necessary to count toward broadband total", "identifier": "threshold", "name": "Energy rise threshold"}, "defaultValue": 3, "extents": {"max": 20, "min": 0}, "unit": "dB", "valueNames": []}, {"basic": {"description": "Sensitivity of peak detector applied to broadband detection function", "identifier": "sensitivity", "name": "Sensitivity"}, "defaultValue": 40, "extents": {"max": 100, "min": 0}, "unit": "%", "valueNames": []}], "programs": [], "version": 2},"defaultConfiguration":{"blockSize": 512, "channelCount": 2, "parameterValues": {"sensitivity": 40, "threshold": 3}, "stepSize": 1024}},"id": "6"}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/serialisedarray-array.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+[1,2,-3,3.1415926537]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/serialisedarray-base64.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+"AACAPwAAAEAEAEBAAACAQAAAoEAAAMBAAADQQAAA4EA"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/examples/valueextents.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,1 @@
+{ "min": 0.1, "max": 0.9 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/basic.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,20 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/basic#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a common unit of basic metadata",
+    "type": "object",
+    "properties": {
+	"identifier": {
+	    "type": "string",
+	    "pattern": "^[a-zA-Z0-9_-]+$"
+	},
+	"name": {
+	    "type": "string"
+	},
+	"description": {
+	    "type": "string"
+	}
+    },
+    "required": [ "identifier" ],
+    "additionalProperties": false
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/configuration.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,32 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/pluginconfiguration#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a bundle of configuration data capturing the setup of a feature extractor",
+    "type": "object",
+    "properties": {
+	"parameterValues": {
+	    "type": "object",
+	    "patternProperties": {
+		"^[a-zA-Z0-9_-]+$": {
+		    "type": "number"
+		}
+	    },
+	    "additionalProperties": false
+	},
+	"currentProgram": {
+	    "type": "string"
+	},
+	"channelCount": {
+	    "type": "integer"
+	},
+	"stepSize": {
+	    "type": "integer"
+	},
+	"blockSize": {
+	    "type": "integer"
+	}
+    },
+    "required": [ "channelCount", "stepSize", "blockSize" ],
+    "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/configurationrequest.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,17 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/configurationrequest#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a request to configure a feature extractor; may be served in the params field of a configure-method rpcrequest",
+    "type": "object",
+    "properties": {
+	"handle": {
+	    "type": "number"
+	},
+	"configuration": {
+	    "$ref": "http://vamp-plugins.org/json/schema/configuration#"
+	}
+    },
+    "required": [ "handle", "configuration" ],
+    "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/configurationresponse.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,18 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/configurationresponse#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a response to a request to configure a feature extractor; may be served in the result field of a configure-method rpcresponse",
+    "type": "object",
+    "properties": {
+	"handle": {
+	    "type": "number"
+	},
+	"outputList": {
+	    "type": "array",
+	    "items": { "$ref": "http://vamp-plugins.org/json/schema/outputdescriptor#" }
+	}
+    },
+    "required": [ "outputList" ],
+    "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/configuredoutputdescriptor.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,42 @@
+{
+  "id": "http://vamp-plugins.org/json/schema/configuredoutputdescriptor#",
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "description": "schema for the non-static metadata fields of an output descriptor belonging to a feature extractor",
+  "type": "object",
+  "properties": {
+  "unit": {
+    "type": "string"
+  },
+  "binCount": {
+    "type": "integer"
+  },
+  "binNames": {
+    "type": "array",
+    "items": { "type": "string" }
+  },
+  "extents": {
+    "type": "object",
+    "properties": {
+      "min": { "type": "number" },
+      "max": { "type": "number" }
+    },
+    "required": [ "min", "max" ],
+    "additionalProperties": false
+  },
+  "quantizeStep": {
+    "type": "number"
+  },
+  "sampleType": {
+    "$ref": "http://vamp-plugins.org/json/schema/enums#/definitions/sample_type"
+  },
+  "sampleRate": {
+    "type": "number"
+  },
+  "hasDuration": {
+    "type": "boolean"
+  }
+  },
+  "required": [ "sampleType", "hasDuration" ],
+  "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/enums.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,20 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/enums#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for common feature extractor enum types",
+    "definitions": {
+	"input_domain": {
+	    "type": "string",
+	    "enum": [ "TimeDomain", "FrequencyDomain" ]
+	},
+	"sample_type": {
+	    "type": "string",
+	    "enum": [ "OneSamplePerStep", "FixedSampleRate", "VariableSampleRate" ]
+	},
+	"adapter_flags": {
+	    "type": "string",
+	    "enum": [ "AdaptNone", "AdaptInputDomain", "AdaptChannelCount",
+		      "AdaptBufferSize", "AdaptAllSafe", "AdaptAll" ]
+	}
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/error.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,16 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/error#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for an error object in a response to an rpcrequest",
+    "type": "object",
+    "properties": {
+	"code": {
+            "type": "number"
+        },
+        "message": {
+            "type": "string"
+        }
+    },
+    "required": [ "code", "message" ]
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/extractorstaticdata.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,53 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/pluginstaticdata#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for the static metadata associated with a feature extractor",
+    "type": "object",
+    "properties": {
+	"key": {
+	    "type": "string"
+	},
+	"basic": {
+	    "$ref": "http://vamp-plugins.org/json/schema/basic#"
+	},
+	"maker": {
+	    "type": "string"
+	},
+	"copyright": {
+	    "type": "string"
+	},
+	"version": {
+	    "type": "integer"
+	},
+	"category": {
+	    "type": "array",
+	    "items": { "type": "string" }
+	},
+	"minChannelCount": {
+	    "type": "integer"
+	},
+	"maxChannelCount": {
+	    "type": "integer"
+	},
+	"parameters": {
+	    "type": "array",
+	    "items": { "$ref": "http://vamp-plugins.org/json/schema/parameterdescriptor#" }
+	},
+	"programs": {
+	    "type": "array",
+	    "items": { "type": "string" }
+	},
+	"inputDomain": {
+	    "$ref": "http://vamp-plugins.org/json/schema/enums#/definitions/input_domain"
+	},
+	"basicOutputInfo": {
+	    "type": "array",
+	    "items": { "$ref": "http://vamp-plugins.org/json/schema/basic#" }
+	}
+    },
+    "required": [ "key", "basic", "version",
+		  "minChannelCount", "maxChannelCount",
+		  "inputDomain", "basicOutputInfo" ],
+    "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/feature.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,23 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/feature#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a single feature returned by a feature extractor",
+    "type": "object",
+    "properties": {
+	"timestamp": {
+	    "$ref": "http://vamp-plugins.org/json/schema/realtime#"
+	},
+	"duration": {
+	    "$ref": "http://vamp-plugins.org/json/schema/realtime#"
+	},
+	"label": {
+	    "type": "string"
+	},
+	"featureValues": {
+            "$ref": "http://vamp-plugins.org/json/schema/serialisedarray#"
+	}
+    },
+    "additionalProperties": false
+}
+
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/featureset.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,13 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/featureset#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a set of features returned by a feature extractor, associating an output id with an array of features from that output",
+    "type": "object",
+    "patternProperties": {
+	"^[a-zA-Z0-9_-]+$": {
+	    "type": "array",
+	    "items": { "$ref": "http://vamp-plugins.org/json/schema/feature#" }
+	}
+    },
+    "additionalProperties": false
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/finishrequest.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,13 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/finishrequest#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a serialised request to finish processing with a feature extractor; may be served in the params field of a finish-method rpcrequest",
+    "type": "object",
+    "properties": {
+	"handle": {
+	    "type": "number"
+	}
+    },
+    "required": [ "handle" ],
+    "additionalProperties": false
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/finishresponse.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,17 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/finishresponse#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a response to a request to finishing processing with a feature extractor; may be served in the result field of a finish-method rpcresponse",
+    "type": "object",
+    "properties": {
+	"handle": {
+	    "type": "number"
+	},
+	"features": {
+	    "$ref": "http://vamp-plugins.org/json/schema/featureset#"
+	}
+    },
+    "required": [ "handle", "features" ],
+    "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/listrequest.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,9 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/listrequest#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a list request for feature extractors; may be served in the params field of a list-method rpcrequest",
+    "type": "object",
+    "properties": {
+    },
+    "additionalProperties": false
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/listresponse.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,14 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/listresponse#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a response to a request to list available feature extractors; may be served in the result field of a list-method rpcresponse",
+    "type": "object",
+    "properties": {
+	"available": {
+            "type": "array",
+            "items": { "$ref": "http://vamp-plugins.org/json/schema/extractorstaticdata#" }
+	}
+    },
+    "required": [ "available" ],
+    "additionalProperties": false
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/loadrequest.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,23 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/loadrequest#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a request to load a feature extractor; may be served in the params field of a load-method rpcrequest",
+    "type": "object",
+    "properties": {
+	"key": {
+	    "type": "string"
+	},
+	"inputSampleRate": {
+	    "type": "number"
+	},
+	"adapterFlags": {
+	    "type": "array",
+	    "items": {
+		"$ref": "http://vamp-plugins.org/json/schema/enums#/definitions/adapter_flags"
+	    }
+	}
+    },
+    "required": [ "key", "inputSampleRate" ],
+    "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/loadresponse.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,19 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/loadresponse#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a response to a request to load a feature extractor; may be served in the result field of a load-method rpcresponse",
+    "type": "object",
+    "properties": {
+	"handle": {
+	    "type": "number"
+	},
+	"staticData": {
+	    "$ref": "http://vamp-plugins.org/json/schema/extractorstaticdata#"
+	},
+	"defaultConfiguration": {
+	    "$ref": "http://vamp-plugins.org/json/schema/configuration#"
+	}
+    },
+    "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/outputdescriptor.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,17 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/outputdescriptor#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for an output descriptor belonging to a feature extractor",
+    "type": "object",
+    "properties": {
+	"basic": {
+	    "$ref": "http://vamp-plugins.org/json/schema/basic#"
+	},
+	"configured": {
+	    "$ref": "http://vamp-plugins.org/json/schema/configuredoutputdescriptor#"
+	}
+    },
+    "required": [ "basic", "configured" ],
+    "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/parameterdescriptor.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,30 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/parameterdescriptor#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a metadata about an adjustable parameter of a feature extractor",
+    "type": "object",
+    "properties": {
+	"basic": {
+	    "$ref": "http://vamp-plugins.org/json/schema/basic#"
+	},
+	"unit": {
+	    "type": "string"
+	},
+	"extents": {
+	    "$ref": "http://vamp-plugins.org/json/schema/valueextents#"
+	},
+	"defaultValue": {
+	    "type": "number"
+	},
+	"quantizeStep": {
+	    "type": "number"
+	},
+	"valueNames": {
+	    "type": "array",
+	    "items": { "type": "string" }
+	}
+    },
+    "required": [ "basic", "extents", "defaultValue" ],
+    "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/processinput.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,20 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/processinput#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a chunk of input data provided to a process request",
+    "type": "object",
+    "properties": {
+	"timestamp": {
+	    "$ref": "http://vamp-plugins.org/json/schema/realtime#"
+	},
+	"inputBuffers": {
+	    "type": "array",
+	    "items": {
+                "$ref": "http://vamp-plugins.org/json/schema/serialisedarray#"
+            }
+        }
+    },
+    "additionalProperties": false
+}
+
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/processrequest.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,17 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/processrequest#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a request to process a chunk of data using a feature extractor; may be served in the params field of a process-method rpcrequest",
+    "type": "object",
+    "properties": {
+	"handle": {
+	    "type": "number"
+	},
+	"processInput": {
+	    "$ref": "http://vamp-plugins.org/json/schema/processinput#"
+	}
+    },
+    "required": [ "handle", "processInput" ],
+    "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/processresponse.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,17 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/processresponse#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a response to a request to process a chunk of data using a feature extractor; may be served in the result field of a process-method rpcresponse",
+    "type": "object",
+    "properties": {
+	"handle": {
+	    "type": "number"
+	},
+	"features": {
+	    "$ref": "http://vamp-plugins.org/json/schema/featureset#"
+	}
+    },
+    "required": [ "handle", "features" ],
+    "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/realtime.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,13 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/realtime#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a timestamp given in seconds and nanoseconds",
+    "type": "object",
+    "properties": {
+	"s": { "type": "integer" },
+	"n": { "type": "integer" }
+    },
+    "required": [ "s", "n" ],
+    "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/rpcrequest.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,32 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/rpcrequest#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a serialised request compatible with JSON-RPC",
+    "type": "object",
+    "properties": {
+	"method": {
+	    "type": "string"
+	},
+	"params": {
+            "anyOf": [
+                { "$ref": "http://vamp-plugins.org/json/schema/listrequest#" },
+                { "$ref": "http://vamp-plugins.org/json/schema/loadrequest#" },
+                { "$ref": "http://vamp-plugins.org/json/schema/configurationrequest#" },
+                { "$ref": "http://vamp-plugins.org/json/schema/processrequest#" },
+                { "$ref": "http://vamp-plugins.org/json/schema/finishrequest#" }
+            ]                
+	},
+        "id": {
+            "anyOf": [
+                { "type": "string" },
+                { "type": "number" }
+            ]
+        },
+        "jsonrpc": {
+            "type": "string"
+        }
+    },
+    "required": [ "method" ],
+    "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/rpcresponse.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,55 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/rpcresponse#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a serialised response to an RPC request; compatible with JSON-RPC, except that the method name must be included here as well as in the request",
+    "type": "object",
+    "oneOf": [ {
+        "properties": {
+	    "method": {
+	        "type": "string"
+	    },
+	    "result": {
+                "anyOf": [
+                    { "$ref": "http://vamp-plugins.org/json/schema/listresponse#" },
+                    { "$ref": "http://vamp-plugins.org/json/schema/loadresponse#" },
+                    { "$ref": "http://vamp-plugins.org/json/schema/configurationresponse#" },
+                    { "$ref": "http://vamp-plugins.org/json/schema/processresponse#" },
+                    { "$ref": "http://vamp-plugins.org/json/schema/finishresponse#" }
+                ]                
+	    },
+            "id": {
+                "anyOf": [
+                    { "type": "string" },
+                    { "type": "number" }
+                ]
+            },
+            "jsonrpc": {
+                "type": "string"
+            }
+        },
+        "required": [ "method", "result" ],
+        "additionalProperties": false
+    }, {
+        "properties": {
+	    "method": {
+	        "type": "string"
+	    },
+	    "error": {
+                "$ref": "http://vamp-plugins.org/json/schema/error#"
+	    },
+            "id": {
+                "anyOf": [
+                    { "type": "string" },
+                    { "type": "number" }
+                ]
+            },
+            "jsonrpc": {
+                "type": "string"
+            }
+        },
+        "required": [ "method", "error" ],
+        "additionalProperties": false
+    } ]
+}
+    
+        
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/serialisedarray.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,20 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/serialisedarray#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for alternate serialisations of an array of floating-point values",
+    "anyOf": [
+        {
+	    "type": "array",
+	    "items": { "type": "number" }
+	},
+        {
+	    "type": "string",
+            "media": {
+                "binaryEncoding": "base64",
+                "type": "application/octet-stream"
+            }
+	}
+    ]
+}
+
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/schema/valueextents.json	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,13 @@
+{
+    "id": "http://vamp-plugins.org/json/schema/valueextents#",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "description": "schema for a structure giving the extents of a value range",
+    "type": "object",
+    "properties": {
+	"min": { "type": "number" },
+	"max": { "type": "number" }
+    },
+    "required": [ "min", "max" ],
+    "additionalProperties": false
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/json/test.sh	Fri Oct 07 15:41:23 2016 +0100
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+set -eu
+
+for ex in examples/*.json ; do
+    echo "Checking $ex..." 1>&2
+    jsonschema -i "$ex" schema/$(basename "$ex" | sed 's/-[^.]*//')
+done
+
+for s in schema/*.json ; do
+    if [ ! -f examples/$(basename "$s") ]; then
+        if ! ls -1 examples/$(basename "$s" .json)-*.json >/dev/null 2>&1; then
+	    echo "WARNING: No example file for schema $s"
+        fi
+    fi
+done
+
--- a/schema/basic.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/basic#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a common unit of basic metadata",
-    "type": "object",
-    "properties": {
-	"identifier": {
-	    "type": "string",
-	    "pattern": "^[a-zA-Z0-9_-]+$"
-	},
-	"name": {
-	    "type": "string"
-	},
-	"description": {
-	    "type": "string"
-	}
-    },
-    "required": [ "identifier" ],
-    "additionalProperties": false
-}
--- a/schema/configuration.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/pluginconfiguration#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a bundle of configuration data capturing the setup of a feature extractor",
-    "type": "object",
-    "properties": {
-	"parameterValues": {
-	    "type": "object",
-	    "patternProperties": {
-		"^[a-zA-Z0-9_-]+$": {
-		    "type": "number"
-		}
-	    },
-	    "additionalProperties": false
-	},
-	"currentProgram": {
-	    "type": "string"
-	},
-	"channelCount": {
-	    "type": "integer"
-	},
-	"stepSize": {
-	    "type": "integer"
-	},
-	"blockSize": {
-	    "type": "integer"
-	}
-    },
-    "required": [ "channelCount", "stepSize", "blockSize" ],
-    "additionalProperties": false
-}
-
--- a/schema/configurationrequest.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/configurationrequest#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a request to configure a feature extractor; may be served in the params field of a configure-method rpcrequest",
-    "type": "object",
-    "properties": {
-	"handle": {
-	    "type": "number"
-	},
-	"configuration": {
-	    "$ref": "http://vamp-plugins.org/json/schema/configuration#"
-	}
-    },
-    "required": [ "handle", "configuration" ],
-    "additionalProperties": false
-}
-
--- a/schema/configurationresponse.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/configurationresponse#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a response to a request to configure a feature extractor; may be served in the result field of a configure-method rpcresponse",
-    "type": "object",
-    "properties": {
-	"handle": {
-	    "type": "number"
-	},
-	"outputList": {
-	    "type": "array",
-	    "items": { "$ref": "http://vamp-plugins.org/json/schema/outputdescriptor#" }
-	}
-    },
-    "required": [ "outputList" ],
-    "additionalProperties": false
-}
-
--- a/schema/configuredoutputdescriptor.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-{
-  "id": "http://vamp-plugins.org/json/schema/configuredoutputdescriptor#",
-  "$schema": "http://json-schema.org/draft-04/schema#",
-  "description": "schema for the non-static metadata fields of an output descriptor belonging to a feature extractor",
-  "type": "object",
-  "properties": {
-  "unit": {
-    "type": "string"
-  },
-  "binCount": {
-    "type": "integer"
-  },
-  "binNames": {
-    "type": "array",
-    "items": { "type": "string" }
-  },
-  "extents": {
-    "type": "object",
-    "properties": {
-      "min": { "type": "number" },
-      "max": { "type": "number" }
-    },
-    "required": [ "min", "max" ],
-    "additionalProperties": false
-  },
-  "quantizeStep": {
-    "type": "number"
-  },
-  "sampleType": {
-    "$ref": "http://vamp-plugins.org/json/schema/enums#/definitions/sample_type"
-  },
-  "sampleRate": {
-    "type": "number"
-  },
-  "hasDuration": {
-    "type": "boolean"
-  }
-  },
-  "required": [ "sampleType", "hasDuration" ],
-  "additionalProperties": false
-}
-
--- a/schema/enums.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/enums#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for common feature extractor enum types",
-    "definitions": {
-	"input_domain": {
-	    "type": "string",
-	    "enum": [ "TimeDomain", "FrequencyDomain" ]
-	},
-	"sample_type": {
-	    "type": "string",
-	    "enum": [ "OneSamplePerStep", "FixedSampleRate", "VariableSampleRate" ]
-	},
-	"adapter_flags": {
-	    "type": "string",
-	    "enum": [ "AdaptNone", "AdaptInputDomain", "AdaptChannelCount",
-		      "AdaptBufferSize", "AdaptAllSafe", "AdaptAll" ]
-	}
-    }
-}
--- a/schema/error.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/error#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for an error object in a response to an rpcrequest",
-    "type": "object",
-    "properties": {
-	"code": {
-            "type": "number"
-        },
-        "message": {
-            "type": "string"
-        }
-    },
-    "required": [ "code", "message" ]
-}
-
--- a/schema/extractorstaticdata.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/pluginstaticdata#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for the static metadata associated with a feature extractor",
-    "type": "object",
-    "properties": {
-	"key": {
-	    "type": "string"
-	},
-	"basic": {
-	    "$ref": "http://vamp-plugins.org/json/schema/basic#"
-	},
-	"maker": {
-	    "type": "string"
-	},
-	"copyright": {
-	    "type": "string"
-	},
-	"version": {
-	    "type": "integer"
-	},
-	"category": {
-	    "type": "array",
-	    "items": { "type": "string" }
-	},
-	"minChannelCount": {
-	    "type": "integer"
-	},
-	"maxChannelCount": {
-	    "type": "integer"
-	},
-	"parameters": {
-	    "type": "array",
-	    "items": { "$ref": "http://vamp-plugins.org/json/schema/parameterdescriptor#" }
-	},
-	"programs": {
-	    "type": "array",
-	    "items": { "type": "string" }
-	},
-	"inputDomain": {
-	    "$ref": "http://vamp-plugins.org/json/schema/enums#/definitions/input_domain"
-	},
-	"basicOutputInfo": {
-	    "type": "array",
-	    "items": { "$ref": "http://vamp-plugins.org/json/schema/basic#" }
-	}
-    },
-    "required": [ "key", "basic", "version",
-		  "minChannelCount", "maxChannelCount",
-		  "inputDomain", "basicOutputInfo" ],
-    "additionalProperties": false
-}
-
--- a/schema/feature.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/feature#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a single feature returned by a feature extractor",
-    "type": "object",
-    "properties": {
-	"timestamp": {
-	    "$ref": "http://vamp-plugins.org/json/schema/realtime#"
-	},
-	"duration": {
-	    "$ref": "http://vamp-plugins.org/json/schema/realtime#"
-	},
-	"label": {
-	    "type": "string"
-	},
-	"featureValues": {
-            "$ref": "http://vamp-plugins.org/json/schema/serialisedarray#"
-	}
-    },
-    "additionalProperties": false
-}
-
-	
--- a/schema/featureset.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/featureset#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a set of features returned by a feature extractor, associating an output id with an array of features from that output",
-    "type": "object",
-    "patternProperties": {
-	"^[a-zA-Z0-9_-]+$": {
-	    "type": "array",
-	    "items": { "$ref": "http://vamp-plugins.org/json/schema/feature#" }
-	}
-    },
-    "additionalProperties": false
-}
--- a/schema/finishrequest.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/finishrequest#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a serialised request to finish processing with a feature extractor; may be served in the params field of a finish-method rpcrequest",
-    "type": "object",
-    "properties": {
-	"handle": {
-	    "type": "number"
-	}
-    },
-    "required": [ "handle" ],
-    "additionalProperties": false
-}
--- a/schema/finishresponse.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/finishresponse#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a response to a request to finishing processing with a feature extractor; may be served in the result field of a finish-method rpcresponse",
-    "type": "object",
-    "properties": {
-	"handle": {
-	    "type": "number"
-	},
-	"features": {
-	    "$ref": "http://vamp-plugins.org/json/schema/featureset#"
-	}
-    },
-    "required": [ "handle", "features" ],
-    "additionalProperties": false
-}
-
--- a/schema/listrequest.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/listrequest#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a list request for feature extractors; may be served in the params field of a list-method rpcrequest",
-    "type": "object",
-    "properties": {
-    },
-    "additionalProperties": false
-}
--- a/schema/listresponse.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/listresponse#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a response to a request to list available feature extractors; may be served in the result field of a list-method rpcresponse",
-    "type": "object",
-    "properties": {
-	"available": {
-            "type": "array",
-            "items": { "$ref": "http://vamp-plugins.org/json/schema/extractorstaticdata#" }
-	}
-    },
-    "required": [ "available" ],
-    "additionalProperties": false
-}
--- a/schema/loadrequest.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/loadrequest#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a request to load a feature extractor; may be served in the params field of a load-method rpcrequest",
-    "type": "object",
-    "properties": {
-	"key": {
-	    "type": "string"
-	},
-	"inputSampleRate": {
-	    "type": "number"
-	},
-	"adapterFlags": {
-	    "type": "array",
-	    "items": {
-		"$ref": "http://vamp-plugins.org/json/schema/enums#/definitions/adapter_flags"
-	    }
-	}
-    },
-    "required": [ "key", "inputSampleRate" ],
-    "additionalProperties": false
-}
-
--- a/schema/loadresponse.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/loadresponse#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a response to a request to load a feature extractor; may be served in the result field of a load-method rpcresponse",
-    "type": "object",
-    "properties": {
-	"handle": {
-	    "type": "number"
-	},
-	"staticData": {
-	    "$ref": "http://vamp-plugins.org/json/schema/extractorstaticdata#"
-	},
-	"defaultConfiguration": {
-	    "$ref": "http://vamp-plugins.org/json/schema/configuration#"
-	}
-    },
-    "additionalProperties": false
-}
-
--- a/schema/outputdescriptor.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/outputdescriptor#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for an output descriptor belonging to a feature extractor",
-    "type": "object",
-    "properties": {
-	"basic": {
-	    "$ref": "http://vamp-plugins.org/json/schema/basic#"
-	},
-	"configured": {
-	    "$ref": "http://vamp-plugins.org/json/schema/configuredoutputdescriptor#"
-	}
-    },
-    "required": [ "basic", "configured" ],
-    "additionalProperties": false
-}
-
--- a/schema/parameterdescriptor.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/parameterdescriptor#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a metadata about an adjustable parameter of a feature extractor",
-    "type": "object",
-    "properties": {
-	"basic": {
-	    "$ref": "http://vamp-plugins.org/json/schema/basic#"
-	},
-	"unit": {
-	    "type": "string"
-	},
-	"extents": {
-	    "$ref": "http://vamp-plugins.org/json/schema/valueextents#"
-	},
-	"defaultValue": {
-	    "type": "number"
-	},
-	"quantizeStep": {
-	    "type": "number"
-	},
-	"valueNames": {
-	    "type": "array",
-	    "items": { "type": "string" }
-	}
-    },
-    "required": [ "basic", "extents", "defaultValue" ],
-    "additionalProperties": false
-}
-
--- a/schema/processinput.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/processinput#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a chunk of input data provided to a process request",
-    "type": "object",
-    "properties": {
-	"timestamp": {
-	    "$ref": "http://vamp-plugins.org/json/schema/realtime#"
-	},
-	"inputBuffers": {
-	    "type": "array",
-	    "items": {
-                "$ref": "http://vamp-plugins.org/json/schema/serialisedarray#"
-            }
-        }
-    },
-    "additionalProperties": false
-}
-
-	
--- a/schema/processrequest.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/processrequest#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a request to process a chunk of data using a feature extractor; may be served in the params field of a process-method rpcrequest",
-    "type": "object",
-    "properties": {
-	"handle": {
-	    "type": "number"
-	},
-	"processInput": {
-	    "$ref": "http://vamp-plugins.org/json/schema/processinput#"
-	}
-    },
-    "required": [ "handle", "processInput" ],
-    "additionalProperties": false
-}
-
--- a/schema/processresponse.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/processresponse#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a response to a request to process a chunk of data using a feature extractor; may be served in the result field of a process-method rpcresponse",
-    "type": "object",
-    "properties": {
-	"handle": {
-	    "type": "number"
-	},
-	"features": {
-	    "$ref": "http://vamp-plugins.org/json/schema/featureset#"
-	}
-    },
-    "required": [ "handle", "features" ],
-    "additionalProperties": false
-}
-
--- a/schema/realtime.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/realtime#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a timestamp given in seconds and nanoseconds",
-    "type": "object",
-    "properties": {
-	"s": { "type": "integer" },
-	"n": { "type": "integer" }
-    },
-    "required": [ "s", "n" ],
-    "additionalProperties": false
-}
-
--- a/schema/rpcrequest.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/rpcrequest#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a serialised request compatible with JSON-RPC",
-    "type": "object",
-    "properties": {
-	"method": {
-	    "type": "string"
-	},
-	"params": {
-            "anyOf": [
-                { "$ref": "http://vamp-plugins.org/json/schema/listrequest#" },
-                { "$ref": "http://vamp-plugins.org/json/schema/loadrequest#" },
-                { "$ref": "http://vamp-plugins.org/json/schema/configurationrequest#" },
-                { "$ref": "http://vamp-plugins.org/json/schema/processrequest#" },
-                { "$ref": "http://vamp-plugins.org/json/schema/finishrequest#" }
-            ]                
-	},
-        "id": {
-            "anyOf": [
-                { "type": "string" },
-                { "type": "number" }
-            ]
-        },
-        "jsonrpc": {
-            "type": "string"
-        }
-    },
-    "required": [ "method" ],
-    "additionalProperties": false
-}
-
--- a/schema/rpcresponse.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/rpcresponse#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a serialised response to an RPC request; compatible with JSON-RPC, except that the method name must be included here as well as in the request",
-    "type": "object",
-    "oneOf": [ {
-        "properties": {
-	    "method": {
-	        "type": "string"
-	    },
-	    "result": {
-                "anyOf": [
-                    { "$ref": "http://vamp-plugins.org/json/schema/listresponse#" },
-                    { "$ref": "http://vamp-plugins.org/json/schema/loadresponse#" },
-                    { "$ref": "http://vamp-plugins.org/json/schema/configurationresponse#" },
-                    { "$ref": "http://vamp-plugins.org/json/schema/processresponse#" },
-                    { "$ref": "http://vamp-plugins.org/json/schema/finishresponse#" }
-                ]                
-	    },
-            "id": {
-                "anyOf": [
-                    { "type": "string" },
-                    { "type": "number" }
-                ]
-            },
-            "jsonrpc": {
-                "type": "string"
-            }
-        },
-        "required": [ "method", "result" ],
-        "additionalProperties": false
-    }, {
-        "properties": {
-	    "method": {
-	        "type": "string"
-	    },
-	    "error": {
-                "$ref": "http://vamp-plugins.org/json/schema/error#"
-	    },
-            "id": {
-                "anyOf": [
-                    { "type": "string" },
-                    { "type": "number" }
-                ]
-            },
-            "jsonrpc": {
-                "type": "string"
-            }
-        },
-        "required": [ "method", "error" ],
-        "additionalProperties": false
-    } ]
-}
-    
-        
--- a/schema/serialisedarray.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/serialisedarray#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for alternate serialisations of an array of floating-point values",
-    "anyOf": [
-        {
-	    "type": "array",
-	    "items": { "type": "number" }
-	},
-        {
-	    "type": "string",
-            "media": {
-                "binaryEncoding": "base64",
-                "type": "application/octet-stream"
-            }
-	}
-    ]
-}
-
-	
--- a/schema/valueextents.json	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-{
-    "id": "http://vamp-plugins.org/json/schema/valueextents#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "schema for a structure giving the extents of a value range",
-    "type": "object",
-    "properties": {
-	"min": { "type": "number" },
-	"max": { "type": "number" }
-    },
-    "required": [ "min", "max" ],
-    "additionalProperties": false
-}
-
--- a/test.sh	Thu Oct 06 14:00:51 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-set -eu
-
-for ex in examples/*.json ; do
-    echo "Checking $ex..." 1>&2
-    jsonschema -i "$ex" schema/$(basename "$ex" | sed 's/-[^.]*//')
-done
-
-for s in schema/*.json ; do
-    if [ ! -f examples/$(basename "$s") ]; then
-        if ! ls -1 examples/$(basename "$s" .json)-*.json >/dev/null 2>&1; then
-	    echo "WARNING: No example file for schema $s"
-        fi
-    fi
-done
-