On Saturday, March 26, 2011 12:13:09 pm Gerald Mwangi wrote:
Hi, I'm messing arround with the source of
TerminatorX.
As it seems, tX needs a total rewright of the mixer and
the audio backend. Since many programs (Ardour,
Qtracktor) have built mixers, I was wondering from which
project I could 'borrow' the mixer component. I need a
mixermodel which is strictly C++, which idealy has jack
support built in, possibly multithreaded,
GUI-Independant and easy to handle. I started to wright
my own mixermodel, but then I thought how stupid it is
to reinvent the wheel. It would really be nice something
like a libmixer with jack, lv2, ladspa and VST support.
Gerald
I was looking for something like this, too... and then I
realized that I was trying to re-write JACK inside my
application space. :-/
Here are some options I found for low-level stuff:
- I started a BAMS library (Basic Audio Mixing
Subroutines) on my hard drive. It's patterned
after Ardour's internal mixing subroutines.
- There's liboil and it's successor ORC. Before
using liboil, you should check out the rationale
for why it's now being done with ORC.
- I saw another SIMD audio processing library
recently. Looked a lot like liboil.
For a higher-level mixing library... the more I thought
about it the more I was convinced that writing a general-
purpose "mixer" library is more-or-less trying to re-write
JACK in my application space. The options I found for this
are:
- Ingen is designed to be an audio engine, handling
all your plugins and connections and misc. DSP
routings.
- I started a Mixer class for libTritum (part of
Composite). libTritium is intended ot be a public
API... but it's not there, yet. However, this class
is pretty efficient and pretty general purpose.[1]
Also, it's worth mentioning that many of the LAD's I talk to
think that mixing is low-level enough that such mixing
libraries are not a good idea. That judicious ad-hoc mixing
here and there is the whole art of efficient DSP.
[1] See these two (the interface and the implementation
headers):
http://gitorious.org/composite/composite/blobs/master/src/Tritium/Tritium/M…
http://gitorious.org/composite/composite/blobs/master/src/Tritium/Tritium/M…