Skip to content
Commits on Dec 26, 2015
  1. spectrogram: Split out spectrum calculation

    It deserves its own file especially since the next step is to add
    logarithmic freqency axis scaling.
Commits on Dec 18, 2015
  1. src/jackplay.c: Fix compiler warning

    The ringbuffer provided by JACK, are `char*` pointers and cannot
    be guaranteed to be `float` aligned, so we need to `memcpy`.
    I consider this to be a mis-feature of the JACK API.
Commits on Dec 17, 2015
  1. src/spectrogram.c: Fix off-by-one error

    The error was introduced in 9ca5867.
Commits on Dec 16, 2015
Commits on Dec 13, 2015
  1. @martinwguy

    Fix the interference pattern "florets" artifact in the output.

    martinwguy committed with
    calc_magnitude was incorrectly decoding the "half-complex" output format
    used by FFTW, summing the real and imaginary parts of different
    frequency bands instead of those for the same frequency band.
    This change rectifies that out-by-one error and also sets magnitudes[0]
    which previously was always left black for some reason.
    It also moves calc_magnitudes() from common.c into spectrogram.c as it is
    FFTW-specific and this in the only place it is used.
    Signed-off-by: Erik de Castro Lopo <>
Commits on Dec 12, 2015
  1. @martinwguy

    Fix range of gray values

    martinwguy committed with
    It used to be that the gray values ran evenly from 0 to 254, generating 255
    extremely rarely, when the -logdB of a pixel value was exactly 0.0, which
    provoked a "sanity check" error.
    This change makes it use 255 for the top range of values, representing a
    range of intensity values the same size as the ranges represented by
    each of the other levels of gray.
    Signed-off-by: Erik de Castro Lopo <>
  2. @martinwguy

    Document default value of --dyn-range in help message

    martinwguy committed with
    Before, you had to dig through the source to find it out.
    Signed-off-by: Erik de Castro Lopo <>
  3. src/spectrogram.c: Fix colour map calculation

    Martin Guy did a lot of investigative work that showed that the
    colour map calculation was producing a bunch of strange artifacts.
    The simple fix here seems to fix at least some of those.
Commits on Dec 11, 2015
  1. Whitespace

  2. @martinwguy

    Add --hann option to use a Hann window function.

    martinwguy committed with
    Signed-off-by: Erik de Castro Lopo <>
Commits on Dec 6, 2015
  1. @martinwguy

    Make FFT window function selectable with --kaiser and --nuttall options

    martinwguy committed with
    The Kaiser window is noisy on certain input data. e.g.:
        sndfile-generate-chirp -amp 1.0 -linear -from 22000 -to 26000 \
    	96000 10 chirp96.wav
        sndfile-spectrogram chirp96.wav 800 600 chirp96.png
    Other window functions (Nuttall, Hanning) do not have this problem.
    This patch add a --nuttall option to select the Nuttall window function,
    whose code is already included in the source, as an alternative to the
    default one, the Kaiser window. There is a --kaiser option for symmetry.
    An alternative would be --window=nuttall so we can beat Audacity's ten (!)
    different window functions but --nuttall is easier to parse (and to type!)
    Signed-off-by: Erik de Castro Lopo <>
  2. @martinwguy

    Make a Cairo failure cause sndfile-spectrogram to exit(1), not exit(0)

    martinwguy committed with
    When Cairo init failed, typically because the output image was >32768 wide,
    sndfile-sprectogram would exit(0). This makes it exit(1) so that wrapping
    shell scripts can more reliably detect sndfile-spectrogram failure.
    Signed-off-by: Erik de Castro Lopo <>
Commits on Aug 8, 2015
  1. src/waveform.c: Fix channel accounting

    Patch-from: Robin Gareus <>
    Closes: #20
Commits on Nov 12, 2014
  1. @alexreg

    jackplay: Now use -w option to wait for key press before playback.

    alexreg committed with
    Default behaviour of jackplay is now as before, ie it automatically
    connects to system playback ports and starts playing immediately.
    Closes: #25
    Signed-off-by: Erik de Castro Lopo <>
Commits on Nov 9, 2014
  1. @alexreg

    jackplay: Wait for key press before playing if not auto-connecting.

    alexreg committed with
    Signed-off-by: Erik de Castro Lopo <>
  2. @alexreg

    jackplay: Take an optional argument that specifies port to auto-conne…

    alexreg committed with
    …ct to.
    Does not auto-connect if the port is not specified.
    Signed-off-by: Erik de Castro Lopo <>
Commits on Nov 8, 2014
  1. Purge more cruft.

  2. Purge non-working programs from project.

    Closes: #24
Commits on May 18, 2013
  1. @elboulangero

    src/jackplay.c : Use getopt_long to parse options.

    elboulangero committed with
    Signed-off-by: elboulangero <>
    Signed-off-by: Erik de Castro Lopo <>
Commits on Mar 14, 2013
Commits on Jan 18, 2013
  1. @driedfruit

    src/waveform.c : Add option to specify outer border width.

    driedfruit committed with
    User input is multiplied by 2, because line-width for the border goes
    beyond the dimensions of the resulting image (by half). In other words,
    to have a border of 1pt, you have to set line-width to 2pt, but we hide
    that detail from the user. Similarly, altho the default in "-h" states 1.0f,
    the actual default value is 2.0f.
    Signed-off-by: Erik de Castro Lopo <>
  2. @driedfruit

    src/waveform.c : Fix two tiny typos in "-h" output.

    driedfruit committed with
    Signed-off-by: Erik de Castro Lopo <>
Commits on Nov 12, 2012
Commits on Nov 8, 2012
  1. src/waveform.c : Minor cleanup.

Commits on Nov 7, 2012
Commits on Aug 19, 2012
  1. Whitespace cleanup.

  2. @martinwguy

    Reduce minimum spectrogram size to 1x1

    martinwguy committed with
    It used to check for minimum 640x480. Now it works down to 1x1.
    The border and legends get a bit crushed at tiny sizes, but hey.
Something went wrong with that request. Please try again.