On 03/23/2013 06:05 PM, Raphaël BOLLEN wrote:
On 03/16/2013 07:23 PM, Fons Adriaensen wrote:
On Sat, Mar 16, 2013 at 09:25:46AM -0400, Paul Davis wrote:
On Sat, Mar 16, 2013 at 9:25 AM, John Rigg <[email protected]> wrote:


A lot of mixing consoles don't provide a mono switch, but it's usually
possible to work around it with sub groups. I still have to work out a
convenient method for mono checking in Ardour 3.


which means i need to write up a page or two for http://manual.ardour.org/

And which reminds me of an app I've been using for years but
never released.

Zita-mu1 is a simple Jack client used to organise stereo monitoring
during recording and mixing. More here:
<http://kokkinizita.linuxaudio.org/linuxaudio/zita-mu1-doc/quickguide.html>
and download from
<http://kokkinizita.linuxaudio.org/linuxaudio/downloads/zita-mu1-0.2.0.tar.bz2>

Ciao,


Awesome, however cpu usage is ~12% on my system when playing silence and drops 
to ~2% with some
audio going through.

This patch solves the problem for me.

--- /home/rapha/Downloads/kokkinizita/zita-mu1-0.2.0/source/jclient.cc.orig
+++ /home/rapha/Downloads/kokkinizita/zita-mu1-0.2.0/source/jclient.cc
@@ -207,38 +207,43 @@
     {
        k = prepare (frames);

-       q0 = selout [0];
-       q1 = selout [1];
-       for (i = 0; i < 4; i++)
-       {       
-           m = _inpstat [i].state ();
-           if (m)
-           {
-               p0 = moninp [2 * i];
-               p1 = moninp [2 * i + 1];
-               if (m == DelayAct::ON)
-               {
-                   for (j = 0; j < k; j++)
-                   {
-                       q0 [j] += p0 [j];
-                       q1 [j] += p1 [j];
-                   }
-               }
-               else
-               {
-                   g = _ipg [i];
-                   t = (m == DelayAct::UP) ? 1.0f : 0.0f;
-                   d = (t - g) / _frcnt;
-                   for (j = 0; j < k; j++)
-                   {
-                       g += d;
-                       q0 [j] += g * p0 [j];
-                       q1 [j] += g * p1 [j];
-                   }
-                   _ipg [i] = g;
-               }
-           }
-       }
+        q0 = selout [0];
+        q1 = selout [1];
+        for (i = 0; i < 4; i++)
+        {
+            m = _inpstat [i].state ();
+            p0 = moninp [2 * i];
+            p1 = moninp [2 * i + 1];
+            for (j = 0; j < k; j++)
+            {
+                p0[j] += 1e-20;
+                p1[j] += 1e-20;
+            }
+            if (m)
+            {
+                if (m == DelayAct::ON)
+                {
+                    for (j = 0; j < k; j++)
+                    {
+                        q0 [j] += p0 [j];
+                        q1 [j] += p1 [j];
+                    }
+                }
+                else
+                {
+                    g = _ipg [i];
+                    t = (m == DelayAct::UP) ? 1.0f : 0.0f;
+                    d = (t - g) / _frcnt;
+                    for (j = 0; j < k; j++)
+                    {
+                        g += d;
+                        q0 [j] += g * p0 [j];
+                        q1 [j] += g * p1 [j];
+                    }
+                    _ipg [i] = g;
+                }
+            }
+        }

        _kmdsp [0].process (q0, k);
        _kmdsp [1].process (q1, k);


Cheers

--
Raphaël.
_______________________________________________
Linux-audio-dev mailing list
[email protected]
http://lists.linuxaudio.org/listinfo/linux-audio-dev

Reply via email to