<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.28.3">
</HEAD>
<BODY>
Oh thanks, I'll look at the links.<BR>
Gerald<BR>
On Sat, 2011-03-26 at 12:43 -0500, Gabriel M. Beddingfield wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
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):
    <A HREF="http://gitorious.org/composite/composite/blobs/master/src/Tritium/Tritium/Mixer.hpp">http://gitorious.org/composite/composite/blobs/master/src/Tritium/Tritium/Mixer.hpp</A>
    <A HREF="http://gitorious.org/composite/composite/blobs/master/src/Tritium/Tritium/MixerImpl.hpp">http://gitorious.org/composite/composite/blobs/master/src/Tritium/Tritium/MixerImpl.hpp</A>
_______________________________________________
Linux-audio-dev mailing list
<A HREF="mailto:Linux-audio-dev@lists.linuxaudio.org">Linux-audio-dev@lists.linuxaudio.org</A>
<A HREF="http://lists.linuxaudio.org/listinfo/linux-audio-dev">http://lists.linuxaudio.org/listinfo/linux-audio-dev</A>
</PRE>
</BLOCKQUOTE>
<BR>
</BODY>
</HTML>