cannam@147
|
1
|
cannam@147
|
2 # Piper Vamp Javascript and JSON Adapter
|
cannam@147
|
3
|
cannam@147
|
4 Compile your C++ Vamp plugin code into a Javascript module that
|
cannam@147
|
5 exports the Piper JSON protocol, for use with Javascript code that
|
cannam@147
|
6 uses Piper audio feature extractors.
|
cannam@147
|
7
|
cannam@161
|
8 If you have an existing Vamp plugin with source code, you can
|
cannam@161
|
9 generally use the code here to convert it (with a little tweaking) to
|
cannam@161
|
10 a browser/runtime-independent Javascript module that can then be
|
cannam@161
|
11 distributed and used in browser applications via the Piper
|
cannam@161
|
12 protocol. Limitations on performance and memory usage may apply.
|
cannam@149
|
13
|
cannam@147
|
14 ## What this repository contains
|
cannam@147
|
15
|
cannam@147
|
16 * Adapter code to make a Vamp plugin library into a module that
|
cannam@147
|
17 exports request-handling functions for the Piper protocol's JSON
|
cannam@147
|
18 serialisation. This code is in C++ and can be compiled to a native
|
cannam@147
|
19 shared library or to Javascript with Emscripten.
|
cannam@147
|
20
|
cannam@147
|
21 * Examples of usage with Vamp plugin code, found in the
|
cannam@147
|
22 examples/vamp-example-plugins and examples/vamp-test-plugin
|
cannam@147
|
23 directories.
|
cannam@147
|
24
|
cannam@170
|
25 * A utility (piper-vamp-stub-generator) that loads up an existing
|
cannam@170
|
26 Vamp plugin and queries it along with its accompanying metadata,
|
cannam@170
|
27 writing out a first draft of the converted module's main function
|
cannam@170
|
28 code based on what it finds in the plugin.
|
cannam@170
|
29
|
cannam@170
|
30 * A complete worked example of using that utility and building the
|
cannam@170
|
31 resulting module, in a Docker script that can be read as
|
cannam@170
|
32 documentation or run within Docker on Linux, found in
|
cannam@170
|
33 examples/docker/Dockerfile.
|
cannam@170
|
34
|
cannam@147
|
35 ## Authors and licensing
|
cannam@147
|
36
|
cannam@147
|
37 Written by Chris Cannam and Lucas Thompson at the Centre for Digital
|
cannam@147
|
38 Music, Queen Mary, University of London.
|
cannam@147
|
39
|
cannam@147
|
40 Copyright (c) 2015-2017 Queen Mary, University of London, provided
|
cannam@147
|
41 under a BSD-style licence. See the file COPYING for details.
|
cannam@147
|
42
|