Audio analysis and visualization toolkit for the command line
Features • Installation • Quick Start • Documentation
| Feature | Description | |
|---|---|---|
| 🎹 | Key Detection | Identify musical key with confidence scores using CQT analysis |
| 🥁 | BPM Analysis | Detect tempo using onset detection and autocorrelation |
| 📊 | Visualizer | Generate spectrograms with customizable colormaps |
| 💿 | Vinyl Art | Create vinyl-style cover art and spinning video loops |
| 📋 | Playlists | Full playlist management with interactive TUI player |
| ⬇️ | Downloads | Grab audio from Dropbox, SoundCloud, and YouTube |
| ✂️ | Trim | Interactive waveform-based audio trimming |
| 🔊 | LUFS | Measure integrated loudness (ITU-R BS.1770) |
Requirements: Go 1.21+, ffmpeg, curl (pre-installed on macOS), yt-dlp (optional)
# Clone and build
git clone https://github.com/soniq/soniq.git
cd soniq
make install-localThis installs soniq to ~/.local/bin. See BUILDING.md for details.
soniq analyze track.mp3File: track.mp3
Key: D minor
BPM: 128.0
LUFS: -8.2 (peak: -0.5)
soniq visualizer track.mp3 -o spectrogram.pngsoniq coverart album.jpg --bg "#1a1a1a"soniq play https://soundcloud.com/artist/track# Create from a folder
soniq playlist init summer ~/Music/Summer/ -r
# Play with shuffle
soniq playlist play summer -s- USAGE.md — Full documentation for all commands
- BUILDING.md — Build from source, Makefile targets
- CONTRIBUTING.md — Development setup, code organization
| Command | Description |
|---|---|
analyze |
Detect key, BPM, and LUFS from audio |
play |
Play audio files or URLs |
playlist |
Create and manage playlists |
dl |
Download from Dropbox/SoundCloud/YouTube |
visualizer |
Generate spectrogram images |
coverart |
Create vinyl-style cover art |
covervid |
Generate spinning vinyl videos |
trim |
Trim audio with waveform TUI |
2mp3 |
Convert to MP3 with time ranges |
config |
Manage configuration |
version |
Show version info |