cannam@147: cannam@147: # Piper Vamp Javascript and JSON Adapter cannam@147: cannam@147: Compile your C++ Vamp plugin code into a Javascript module that cannam@147: exports the Piper JSON protocol, for use with Javascript code that cannam@147: uses Piper audio feature extractors. cannam@147: cannam@161: If you have an existing Vamp plugin with source code, you can cannam@161: generally use the code here to convert it (with a little tweaking) to cannam@161: a browser/runtime-independent Javascript module that can then be cannam@161: distributed and used in browser applications via the Piper cannam@161: protocol. Limitations on performance and memory usage may apply. cannam@149: cannam@147: ## What this repository contains cannam@147: cannam@147: * Adapter code to make a Vamp plugin library into a module that cannam@147: exports request-handling functions for the Piper protocol's JSON cannam@147: serialisation. This code is in C++ and can be compiled to a native cannam@147: shared library or to Javascript with Emscripten. cannam@147: cannam@147: * Examples of usage with Vamp plugin code, found in the cannam@147: examples/vamp-example-plugins and examples/vamp-test-plugin cannam@147: directories. cannam@147: cannam@170: * A utility (piper-vamp-stub-generator) that loads up an existing cannam@170: Vamp plugin and queries it along with its accompanying metadata, cannam@170: writing out a first draft of the converted module's main function cannam@170: code based on what it finds in the plugin. cannam@170: cannam@170: * A complete worked example of using that utility and building the cannam@170: resulting module, in a Docker script that can be read as cannam@170: documentation or run within Docker on Linux, found in cannam@170: examples/docker/Dockerfile. cannam@170: cannam@147: ## Authors and licensing cannam@147: cannam@147: Written by Chris Cannam and Lucas Thompson at the Centre for Digital cannam@147: Music, Queen Mary, University of London. cannam@147: cannam@147: Copyright (c) 2015-2017 Queen Mary, University of London, provided cannam@147: under a BSD-style licence. See the file COPYING for details. cannam@147: