[linux-audio-user] Jamin question - peak hold in spectrum display?

Steve Harris S.W.Harris at ecs.soton.ac.uk
Tue Aug 3 18:15:19 EDT 2004


On Tue, Aug 03, 2004 at 11:35:37 -0700, Mark Knecht wrote:
> Hi,
>    Does Jamin have any facility to do a peak hold display where a 
> second curve is drawn and is made up of the peak values displayed in the 
> faster, currently existing curve? If so, how do I turn it on? This is 
> useful when you're trying to get an overall feeling for the energy 
> across time instead of what's happening at a specific instant.

Thats more what the Spectrum tab is for, but I've attached a simple patch
that hacks the frequency curve to be slower decaying (tweak dacay_rate to
change the speed) if you want to try it.

>    FYI - right now the Gentoo version is 0.8.0 and there is an error 
> message at startup about not finding lookahead_limiter_const_1906.so.

You need newer swh-plugins - but not too new, or the version of JAMin your
using wont run. Mea Culpa.
 
>    I don't know about the sound yet but I must say that the basic tool 
> compares pretty nicely to the Waves stuff I normally use. I'm currently 
> mixing a CD and looking at using Jamin for my final version. Thanks for 
> a nice tool.

The limiter that goes with that JAMin is broken. I wouldnt use it for any
servious work that has to go hard to the limit point. If you do want to
use the limiter, best to get a CVS JAMin and latest swh-plugins.

- Steve
-------------- next part --------------
Index: spectrum.c
===================================================================
RCS file: /cvsroot/jamin/jamin/src/spectrum.c,v
retrieving revision 1.17
diff -u -r1.17 spectrum.c
--- spectrum.c	6 May 2004 10:28:00 -0000	1.17
+++ spectrum.c	3 Aug 2004 21:58:02 -0000
@@ -135,11 +135,12 @@
 {
     int i, page, count;
     float levels[BANDS];
-    float single_levels[BINS/2];
+    static float single_levels[BINS/2];
 
     void draw_EQ_spectrum_curve (float *);
     int get_current_notebook1_page ();
 
+    float decay_rate = 0.05f;
 
     page = get_current_notebook1_page ();
     count = BINS / 2;
@@ -165,7 +166,8 @@
         levels[i] = 0.0f;
       }
       for (i=0; i<count; i++) {
-        single_levels[i] = bin_peak_read_and_clear(i);
+        single_levels[i] *= 1.0f - decay_rate;
+        single_levels[i] += bin_peak_read_and_clear(i) * decay_rate;
       }
       draw_EQ_spectrum_curve (single_levels);
     }


More information about the Linux-audio-user mailing list