[BREAKGLASS] 🌊 FFT so pretty, your ears will be jealous. See your sound—spectrograms, mel, chroma, and more. http://songsee.sh/
Go to file
Peter Steinberger 507790169d
Some checks failed
ci / test (push) Has been cancelled
pages / Deploy docs (push) Has been cancelled
docs: fix Quickstart button contrast and clipped descenders in hero
Use a saturated violet (#5938e5) for the primary button background in
both themes so white text reads cleanly — previously dark mode used
the lighter --accent (#a48bff), giving low contrast against white.

Also raise the gradient h1 line-height from 1.04 to 1.18 and add
padding-bottom: .08em so the gradient text-clip stops chopping the
descenders on letters like g/y/p.
2026-05-08 16:44:35 +01:00
.github/workflows docs: build songsee.sh with the gogcli-style site generator 2026-05-08 16:35:54 +01:00
cmd/songsee feat: add flux visualization 2026-01-02 14:48:52 +01:00
docs docs: rewrite site gogcli-style with per-feature pages 2026-05-08 16:01:45 +01:00
internal feat: improve viz contrast 2026-01-02 15:05:00 +01:00
scripts docs: fix Quickstart button contrast and clipped descenders in hero 2026-05-08 16:44:35 +01:00
testdata feat: add songsee CLI and tests 2026-01-02 13:54:10 +01:00
.gitignore docs: build songsee.sh with the gogcli-style site generator 2026-05-08 16:35:54 +01:00
.golangci.yml fix: align lint config and output handling 2026-01-02 14:07:40 +01:00
CHANGELOG.md docs: build songsee.sh with the gogcli-style site generator 2026-05-08 16:35:54 +01:00
example.png docs: update example with improved contrast 2026-01-02 15:06:16 +01:00
go.mod feat: add songsee CLI and tests 2026-01-02 13:54:10 +01:00
go.sum feat: add songsee CLI and tests 2026-01-02 13:54:10 +01:00
LICENSE Initial commit 2026-01-02 11:54:18 +01:00
Makefile docs: build songsee.sh with the gogcli-style site generator 2026-05-08 16:35:54 +01:00
README.md docs: Codex forgot about clawd AGAIN 🦞 2026-01-02 15:14:35 +01:00

🌊 songsee — FFT so pretty, your ears will be jealous.

9-mode visualization example

Features

  • 9 visualization modes: spectrogram, mel, chroma, hpss, selfsim, loudness, tempogram, mfcc, flux
  • 6 color palettes: classic, magma, inferno, viridis, gray, clawd
  • Auto-contrast: per-panel percentile normalization for readable heatmaps
  • Combine modes: stack multiple visualizations in one grid image
  • Universal input: WAV, MP3, or anything ffmpeg can handle
  • Fast: native Go, no Python dependencies
  • Flexible output: PNG or JPEG, customizable dimensions

Install

brew install steipete/tap/songsee
go install github.com/steipete/songsee/cmd/songsee@latest

Quick Start

# Basic spectrogram
songsee track.mp3

# Mel spectrogram with magma palette
songsee track.mp3 --viz mel --style magma

# All 9 modes combined
songsee track.mp3 --viz spectrogram,mel,chroma,hpss,selfsim,loudness,tempogram,mfcc,flux

# Custom output
songsee track.mp3 --viz hpss,chroma --style inferno -o viz.png --width 2560 --height 1440

Visualization Modes

Mode Description
spectrogram Time × frequency magnitude
mel Perceptual frequency scale
chroma 12-bin pitch class
hpss Harmonic vs percussive separation
selfsim Self-similarity matrix
loudness Volume over time
tempogram Tempo variation
mfcc Timbre fingerprint
flux Spectral change detection

Palettes

classic · magma · inferno · viridis · gray · clawd 🦞

Options

--output        Output path (default: input name + extension)
--format        jpg or png (default: jpg)
--width         Output width (default: 1920)
--height        Output height (default: 1080)
--window        FFT window size (default: 2048)
--hop           Hop size (default: 512)
--min-freq      Minimum frequency in Hz
--max-freq      Maximum frequency in Hz
--start         Start time in seconds
--duration      Duration in seconds
--style         Palette name
--viz           Visualization list (repeatable or comma-separated)

Built by @steipete