jaaa -- JACK and ALSA Audio Analyser
jaaa [-h] [-C nchan] [-J] [-A [-ddevice] [-rrate] [-pperiod]
jaaa is an audio signal generator and spectrum analyser designed to
make accurate measurements.
-h Show summary of options.
-C Number of channels (1..8) [4
-J Use JACK
-A Use ALSA (with following options)
-d device Alsa device [hw:0.0]
-r rate Sample frequency 
-p period Period size 
-n nfrag Number of fragments 
Either -J or -A must be given.
Select on of the four inputs.
Frequency and Amplitude :
These two sets of buttons set the display view. One of these six
buttons, or 'Bandw', 'Peak', or 'Noise' discussed below, has an orange
LED at its left side. The LED indicates the 'currenty selected
parameter' that usually can be modified in three ways :
o by typing a new value into the text widget, followed by ENTER
o by using the '<' or '>' buttons to decrement or increment,
o by mouse gestures
Buttons 'Min' and 'Max' set the min and max displayed frequencies. If
either of these is selected then
o a horizontal Drag Left changes 'Min'
o a horizontal Drag Right changes 'Max'
Button 'Cent' is the frequency at the middle of the x-axis. Button
'Span' is 'Max' - 'Min', changing this value preserves 'Cent'. If
either of these is selected then
o a horizontal Drag Left changes 'Cent'
o a horizontal Drag Right changes 'Span'
Button 'Cent' can also be set by Clicking in the frequency axis scale.
Button 'Max' is the maximum value on the y-axis. Button 'Range' is the
range of the y-axis. If either of these is selected then
o a vertical Drag Left changes 'Max'
o a vertical Drag Right changes 'Range'
So for the last four mouse gestures, a Drag Left will scroll the
display, while a Drag Right will zoom in or out. Maybe I will add and
automatic selection of the axis based on the direction of the mouse
The analyser is based on a windowed FFT. Actually the windowing is
performed by convolution after the FFT, and combined with
interpolation. The windowing and interpolation ensure that displayed
peaks will be accurate to 0.25 dB even if the peak falls between the
FFT bins. More accurate measurements can be made using the markers
Button 'Bandw' sets the FFT length, and hence the bandwidth of the
Depending on this value, the size of the display and the frequency
range, you may sometimes see two traces.
This happens when the resolution of the analyser is better than the
display, so that one pixel contains more than one analyser value.
In that case, the blue trace is the peak value over the frequency range
represented by each pixel, and the gray one is the average value.
The first one is correct for discrete frequencies, and the latter
should be used to read noise densities.
There is no mouse gesture to change the bandwidth.
Button 'VidAv' or video average, when switched on, averages the
measured energy over time. This is mainly used to measure noise. The
averaging length increases over time, to a maxumum of 1000 iterations.
Changing the input or bandwidth resets and restarts the averaging.
Button 'Freeze' freezes the analyser, but not the display, so you can
still scroll and zoom or use the markers discussed below.
Markers are used in order to accurately read off values in the display.
There can be up to two markers, set by clicking at the desired
frequency inside the display. When there are two markers, the second
one will move with each click, while the first remains fixed. Measured
values for the two markers, and their difference in frequency and level
are displayed in the upper left corner of the display.
Button 'Clear' clears the markers.
When 'Peak' is selected, clicking inside the display will set a marker
at the nearest peak.
The exact frequency and level of the peak are found by interpolation,
so the frequency can be much more accurate than the FFT step, and the
level corresponds to the true peak value regardless of display or
When 'Noise' is selected, clicking inside the display will set a noise
The noise density (energy per Hz) is calculated and displayed.
This manual page was written by Philippe Coval email@example.com for the
Debian system (but may be used by others). Permission is granted to
copy, distribute and/or modify this document under the terms of the GNU
General Public License, Version 2 any later version published by the
Free Software Foundation.
On Debian systems, the complete text of the GNU General Public License
can be found in /usr/share/common-licenses/GPL.