Re: [linux-audio-dev] stereo / multichannel plugins in LADSPA ?

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] stereo / multichannel plugins in LADSPA ?
From: Erik Steffl (esteffl_AT_pbi.net)
Date: Thu Mar 23 2000 - 20:22:07 EET


  I guess it's no news for most but that's how OSS supports stereo.

  as long as you consider all input ports 'tied' (all connected to same
source, data expected on all of them) it's OK, but if you want all ports
act independently, it's not as simple. if you want independent
inputs/outputs it gets complicated and you pass along more data then you
need. worst situation: you have 24 ports but only one of them is used at
a time (it's not same as having just one port).

  of course, there's nothing to prevent the API to support both (many
ports per plugin and interleaved data streams). actually I think it's a
good idea (now that I think of it that's probably what you've
suggested).

        erik

Benno Senoner wrote:
>
> 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.


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Thu Mar 23 2000 - 21:19:00 EET