The project defines both the host and process frameworks to ease deployment. On the host side, we define the PluginFactory to hold the JSAP prototypes. The Factory can generate the plugins and manage them from one central resource. The host also defines SubFactory units which define a chain of plugins in the traditional form. These SubFactory units handle:
- Plugin Order
- Plugin construction and destruction in the chain
- Track / Channel information (track name, instrument etc.)
The standard also specifies a new method for cross-adaptive processing by sharing features rather than routing audio. If several plugins require the same feature from the same audio stream, traditional systems would require the audio to be routed between all the nodes and then process the audio multiple times to generate the same result. The JSAP system attaches a JS-Xtract node to each plugin output allowing for advanced querying of the features. These features are then sent to the requesting plugins, saving on processing power as well as improved memory management by sharing objects
The documentation is currently under development, as the standard itself is being processed. Documentation can be found here
Get the code!
The code can be accessed on GitHub.
This work was presented at the AES 141st Convention in Los Angeles, USA and at the 2nd Workshop on Intelligent Music Production. Please cite this paper in any academic works: