songsee
Generate spectrograms and multi-panel audio feature visualizations from audio files.
Prerequisites
Requires Go:
go install github.com/steipete/songsee/cmd/songsee@latest
Optional: ffmpeg for formats beyond WAV/MP3.
Quick Start
# Basic spectrogram
songsee track.mp3
# Save to specific file
songsee track.mp3 -o spectrogram.png
# Multi-panel visualization grid
songsee track.mp3 --viz spectrogram,mel,chroma,hpss,selfsim,loudness,tempogram,mfcc,flux
# Time slice (start at 12.5s, 8s duration)
songsee track.mp3 --start 12.5 --duration 8 -o slice.jpg
# From stdin
cat track.mp3 | songsee - --format png -o out.png
Visualization Types
Use --viz with comma-separated values:
| Type |
Description |
spectrogram |
Standard frequency spectrogram |
mel |
Mel-scaled spectrogram |
chroma |
Pitch class distribution |
hpss |
Harmonic/percussive separation |
selfsim |
Self-similarity matrix |
loudness |
Loudness over time |
tempogram |
Tempo estimation |
mfcc |
Mel-frequency cepstral coefficients |
flux |
Spectral flux (onset detection) |
Multiple --viz types render as a grid in a single image.
Common Flags
| Flag |
Description |
--viz |
Visualization types (comma-separated) |
--style |
Color palette: classic, magma, inferno, viridis, gray |
--width / --height |
Output image dimensions |
--window / --hop |
FFT window and hop size |
--min-freq / --max-freq |
Frequency range filter |
--start / --duration |
Time slice of the audio |
--format |
Output format: jpg or png |
-o |
Output file path |
Notes
- WAV and MP3 are decoded natively; other formats require
ffmpeg
- Output images can be inspected with
vision_analyze for automated audio analysis
- Useful for comparing audio outputs, debugging synthesis, or documenting audio processing pipelines
1---2name: songsee3description: "Audio spectrograms/features (mel, chroma, MFCC) via CLI."4version: 1.0.05author: community6license: MIT7platforms: [linux, macos, windows]8category: media9tags: [Audio, Visualization, Spectrogram, Music, Analysis]10requires_commands: [songsee]11compatible: [claude-code, openai-agents, hermes-agent, autogen, langchain, any-llm]12source: built-in13---1415# songsee1617Generate spectrograms and multi-panel audio feature visualizations from audio files.1819## Prerequisites2021Requires [Go](https://go.dev/doc/install):22```bash23go install github.com/steipete/songsee/cmd/songsee@latest24```2526Optional: `ffmpeg` for formats beyond WAV/MP3.2728## Quick Start2930```bash31# Basic spectrogram32songsee track.mp33334# Save to specific file35songsee track.mp3 -o spectrogram.png3637# Multi-panel visualization grid38songsee track.mp3 --viz spectrogram,mel,chroma,hpss,selfsim,loudness,tempogram,mfcc,flux3940# Time slice (start at 12.5s, 8s duration)41songsee track.mp3 --start 12.5 --duration 8 -o slice.jpg4243# From stdin44cat track.mp3 | songsee - --format png -o out.png45```4647## Visualization Types4849Use `--viz` with comma-separated values:5051| Type | Description |52|------|-------------|53| `spectrogram` | Standard frequency spectrogram |54| `mel` | Mel-scaled spectrogram |55| `chroma` | Pitch class distribution |56| `hpss` | Harmonic/percussive separation |57| `selfsim` | Self-similarity matrix |58| `loudness` | Loudness over time |59| `tempogram` | Tempo estimation |60| `mfcc` | Mel-frequency cepstral coefficients |61| `flux` | Spectral flux (onset detection) |6263Multiple `--viz` types render as a grid in a single image.6465## Common Flags6667| Flag | Description |68|------|-------------|69| `--viz` | Visualization types (comma-separated) |70| `--style` | Color palette: `classic`, `magma`, `inferno`, `viridis`, `gray` |71| `--width` / `--height` | Output image dimensions |72| `--window` / `--hop` | FFT window and hop size |73| `--min-freq` / `--max-freq` | Frequency range filter |74| `--start` / `--duration` | Time slice of the audio |75| `--format` | Output format: `jpg` or `png` |76| `-o` | Output file path |7778## Notes7980- WAV and MP3 are decoded natively; other formats require `ffmpeg`81- Output images can be inspected with `vision_analyze` for automated audio analysis82- Useful for comparing audio outputs, debugging synthesis, or documenting audio processing pipelines