Chris Cannam schrieb:
On Sunday 30 Apr 2006 00:01, Dave Robillard wrote:
>We need a better API with which to build good, useful things.
>
>
Use LACPA instead of LADSPA ;-)
It has
* audio i/o support
* sample accurate midi i/o support
* controls with midi mapping
* timeinfo support: tempo/beat/bar + samplenumber
* automatic plugin gui builder support through simple ascii file
* network capable (gui can run on different machine than plugin engine)
* return to host the real value as a string instead of some fancy hints
(=> good for displaying automation data)
* has named audio and control i/os
* fixed 2^x length buffersize when processing
The default configuration is in a simple ascii file with some even
simpler format:
First line contains the field delimiter used for this file, rest is in
the following format:
type:name:displaytype:[num:[values]]:midi controller type:midi
controller number
: <- delimiter to use in this file
audio:left in
audio:right in
audio:sidechain
control:Gain left:slider:cc:1
control:Gain right:slider:cc:2
control:Link:pushbutton:cc:3 <- 7bit resolution with single CC
control:Frequency:slider:cc:msb:4:lsb:5 <- 14bit resolution using 2 CCs
control:Type:radiobutton:2:Mono:Stereo:nrpn:7 <- 14bit resolution
through NRPN
and so on.
All audio data is -1.0 .. 1.0, all control data is 0.0 .. 1.0.
There are no min/max values needed, because the plugin knows itself what
the value is and
the host can request a string representing the actual value + unit for
display purposes as needed (same for plugin gui)
example: host requests control 1, value 0.5 plugin returns "0.5 dB"
For timeinfo i dropped smpte because its is trivial to calculate a smpte
frame from the samplenumber and
can thus be calculated by the plugin needing smpte synchronisation itself.
Ralf
PS: the lacpa.h i sent earlier to the list is outdated (and wouldn't
even compile)