Re: [linux-audio-dev] ardour, LADSPA, a marriage

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

Subject: Re: [linux-audio-dev] ardour, LADSPA, a marriage
From: Paul Barton-Davis (pbd_AT_Op.Net)
Date: Mon Nov 13 2000 - 17:13:59 EET


I didn't think that this would end up as such an interesting reply!
See below :)

>FWIW I personally don't want a mixer reimplemented inside my computer,
>I don't imagine that a conventional mixer routing is very efficient
>in software, plus it seems a bit of a waste to reimplement something
>that can be done better externally.

Except that as David pointed out, with digital data, it *can't* be
done better externally ...

                                     I feel that cubase fell down here, as
>I thought thier virtual mixer+outboards model was over complicated and
>wastefull, I never used most of the layers, as all I was doing was
>sending channel 1 out of output 1.

Well, the model I have in my head right now is that each track has a single
output destination. That could be:

       * physical output channel
       * a mixer strip
       * a plugin chain
       * a bus

the mixer strips, busses and plugin chains would in turn have their
own output destination(s), which could be any of the same list.

So, some possible routings:

1) Outboard mixer present
   
    track data->output channel

2) Do some mono insert-style processing before sending to outboard mixer

    track data->plugin chain->output channel

3) Send to internal mixer strip, then through a plugin chain then out

    track data->mixer strip->plugin chain

4) Mix several signals, route to a bus, then a common plugin chain then out

   track1 data->mixer strip -\
   track2 data->mixer strip -> bus1 -> plugin chain ->output channel
   track3 data->mixer strip -/

Note that in all of the above, the "mixer strip" really functions
identically to a plugin chain. The only reason to support a "mixer strip"
is for better integration of the GUI into the internal system, which
can't be done easily with a plugin + GUI system. in all other
respects, its identical to a plugin.

The "bus" is a plugin itself: a simple unity gain mixer plugin
(i.e. it just collects all its inputs, add thems and sends them to its
single output)

So, to take the 5.1 example as a final case:

5) 5.1 surround mixing with per-speaker DSP
   ----------------------------------------

   track data -> "5.1" plugin -> bus[1,2,3,4,5] -> plugin
                         chains[1,2,3,4,5] -> output channels [ 1,2,3,4,5]

the "5.1" plugin is a simple plugin with its own GUI. it has one
input, and five outputs.

the bus is a unity gain mixer plugin as described before.

Better than 5.1, however:

6) Ambisonics

   track data -> "Ambisonic" plugin -> bus[1,2,3,4,5] ->
                                            output channels [ 1,2,3,4,5]

One might prefer a gain control too:

   track data -> "Gain" plugin -> "Ambisonic" plugin -> bus[1,2,3,4,5] ->
                                            output channels [ 1,2,3,4,5]

and thanks to richard (i think) we have an ambisonic encoder (no GUI) already!

>With a quasimodo style "build your own mixer" design, now you're talking.

Say it loud brother steve! Yeah! Amen! :)

Seriously, thats the goal here, though without the dangling patch
cords (those ellipsoids were *too much fun* to code, though!).

The final part of this whole puzzle, which some of you may have
guessed at already, is how to get a program like Quasimodo to be an
input or output for something like Ardour. I have 90% of this solved
already ...

--p


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

This archive was generated by hypermail 2b28 : Mon Nov 13 2000 - 17:57:38 EET