The purpose is to provide a platform independent poly-modular audio processing framework that can support VSTs, Rack Extensions and Audio Units (and possibly AAX) as well as the Linux plugin systems. The framework allows you to create small or large modules that you can connect together to create composite modules. Composite modules can contain composite modules also, allowing users to create plugins with no code, but also allowing programmers and non programmers to work together in creating new devices rapidly.
On top of that this system separates the DSP from the UI and I will be providing a GUI framework that is powerful, scriptable and easy to use.
I've prototyped the concept enough now and am going to be publishing regularly under an MIT license.
The structure of composite modules is listed below. DSP modules that contain code do not have a DEVICES and CONNECTIONS section.
Code: Select all
/* JSON like structure.
* GLOBAL_DEVICES = [
* UNIT: {
* ID,
* port_type*: [ // e.g. audio_inputs
* PORT_ID // e.g. "audio_in"
* ],
* DEVICES: [
* UNIT_ID, // ID of the unit
* REF_ID, // how this device will be referenced in the connections section
* ALIASES: [
* [original, alias] // e.g. port named "out" renamed to "gr_out"
* ]
* ],
* CONNECTIONS: [
* {
* FIRST: [ "path", "to_port" ], // e.g. ["gain_device", "out"]
* SECOND: [ "path/to_port" ] // e.g. ["rc_device/audio_in"]
* }
* ]
* }
* ]
*/