Subject: [linux-audio-dev] stereo / multichannel plugins in LADSPA ?
From: Benno Senoner (sbenno_AT_gardena.net)
Date: Thu Mar 23 2000 - 18:50:26 EET
Hi,
I am thinking about how to support stereo / multichannel operations in LADSPA.
let's assume we want have e stereo-simulator plugin ( makes pseudo stereo out
of a mono signal)
This plugin would have 1 input audio ports and and 2 output audio ports. ( L/R)
This works, but becomes a bit tricky when dealing with many channels.
Let's assume we want to stream 24 channels into a single plugin which does
something and then outputs back 24 channels.
That would require 24in and 24out ports with lots of overhead, especially in
terms of number of used valiables , sample pointers etc, and access patters
which could hurt the cache quite a bit.
Therefore I am thinking about supporting interleaved data streams in LADSPA.
ie: a 4 channel stream looks as follows:
S1CH1 S1CH2 S1CH3 S1CH4 S2CH1 S2CH2 S2CH3 S2CH4 S3CH1 ....
(sample1 channel 1 , sample1 channel2 etc .... )
Again the complexity added to the API is not big:
The host checks if the plugin supports stereo/multichannel operation,
and during initialization it tells the plugin how many channels it wants to use.
The host/plugin instead of N samples at time ( N= frame size), expect CH * N
samples at time, where CH = number of channels.
The plugin should tell the host the minimum and maximum number of channels
supported.
for normal mono plugins: min=1 , max=1
mono plugins, which also support stereo: min=1 , max=2
stereo only plugins : min=2 , max=2
generic n-channel plugins: min=1 , max=n
n-channel-only plugins: min=n , max=n
again, we need you thoughts about this !
With my proposed enhancements, LADSPA could easily become
_THE_ plugin API (at least for audio streaming) for Linux.
PS: those familiar with VST : does VST ( 1/2) support multichannel /
data-interleaving ? (can someone of you describe the concept of VST?)
Benno.
This archive was generated by hypermail 2b28 : Thu Mar 23 2000 - 19:58:54 EET