Start

Quickstart

Quickstart

One install, one command, one image.

#1. Install

brew install steipete/tap/songsee
songsee --version

Other paths (go install, source builds, ffmpeg) live on Install.

#2. Render a default spectrogram

songsee track.mp3

Output is a 1920×1080 JPEG (quality 95) written next to the input — track.jpg. The file path is echoed to stdout; everything else (decode info under --verbose, warnings, errors) goes to stderr so pipes stay clean.

#3. Pick a different view

# Mel-scaled spectrogram (perceptual frequency).
songsee track.mp3 --viz mel

# Chromagram (12-bin pitch class) with the magma palette.
songsee track.mp3 --viz chroma --style magma

# Combine harmonic/percussive split with chroma in a single grid.
songsee track.mp3 --viz hpss,chroma --style inferno

The full list of views lives on Visualizations; palettes are documented on Palettes.

#4. Slice a section

songsee track.mp3 --start 12.5 --duration 8 -o slice.jpg

--start and --duration are seconds. -o overrides the default output path; pass -o - to write the encoded image to stdout.

#5. Stream from stdin

cat track.mp3 | songsee - --format png -o - > spectro.png

- as the input reads from stdin; --format png switches the encoder; -o - writes the encoded image to stdout. Combine with find, xargs, or shell loops for batch rendering.

#6. Tune dimensions and FFT

songsee track.mp3 \
  --width 2560 --height 1440 \
  --window 4096 --hop 1024 \
  --min-freq 50 --max-freq 8000

--window must be a power of two. Larger windows trade time resolution for frequency resolution. --min-freq / --max-freq clamp the visible frequency band; the default upper bound is the Nyquist frequency.

#Where next

  • Visualizations — what each of the nine modes shows.
  • Palettes — gradient stops for the six built-in palettes.
  • Pipeline — windowing, FFT, bin mapping, normalization.
  • CLI — every flag with its default.