| Crates.io | soundscope |
| lib.rs | soundscope |
| version | 1.6.0 |
| created_at | 2025-09-06 00:25:14.359121+00 |
| updated_at | 2026-01-24 00:22:00.302615+00 |
| description | A command-line tool for analyzing audio files and real-time input (FFT, LUFS) |
| homepage | |
| repository | https://github.com/bananaofhappiness/soundscope |
| max_upload_size | |
| id | 1826504 |
| size | 4,494,816 |
Soundscope is a crossplatform CLI tool for analyzing audio files.
cargo install soundscope
or
cargo install --git https://github.com/bananaofhappiness/soundscope
Grab the latest release for your platform from the Releases page.
soundscope command. You can optionally provide an audio file path to open it directly on startup:
soundscope path/to/audio.mp3
e.h, j, k, l (Vim-style navigation).Enter to select it.Space.m and s respectively.l to check loudness (LUFS) and f to check frequencies.c to change input mode from audio file to microphone.d.q to quit.t.Watch the demo on YouTube.
The theme is set in .theme file which must be placed in {YOUR_CONFIG_DIRECTORY}/soundscope directory. Under the hood it is a simple .toml file. Here is an example theme (which is default for the app) containing all possible variables:
[global]
background = "Black"
# It is default value for everything that is not a background
foreground = "221" # It is an ANSI-256 value for LightGoldenrod2 color. See https://www.ditig.com/256-colors-cheat-sheet.
# Color used to highlight corresponding characters
# Like highlighting L in LUFS to let the user know
# that pressing L will open the LUFS meter
highlight = "160" # Red3 color. Note that it can also be written as "#d70000"
# For simplicity yellow color in this example is written as "Yellow" instead of "221", and light red is written as "LightRed" instead of "160". But default color scheme uses LightGoldenrod2 for foreground and Red3 for highlight.
[waveform]
borders = "Yellow"
waveform = "Yellow"
playhead = "LightRed"# if not set, default is highlighted color
# Current playing time and total duration
current_time = "Yellow"
total_duration = "Yellow"
# Buttons like <-, +, -, ->
controls = "Yellow"
# Color of a button when it's pressed
controls_highlight = "LightRed"
labels = "Yellow"
[fft]
borders = "Yellow"
# Frequencies and LUFS tabs text
labels = "Yellow"
axes = "Yellow"
axes_labels = "Yellow"
mid_fft = "Yellow"
side_fft = "170" # Orchid
[lufs]
axis = "Yellow"
chart = "Yellow"
# Frequencies and LUFS tabs text
labels = "Yellow"
# Text color on the left
foreground = "Yellow"
# Color of the numbers on the left
numbers = "Yellow"
borders = "Yellow"
background = "Black"
highlight = "LightRed"
[devices]
background = "Black"
foreground = "Yellow"
borders = "Yellow"
highlight = "LightRed"
[explorer]
background = "Black"
borders = "Yellow"
item_foreground = "Yellow"
highlight_item_foreground = "LightRed"
dir_foreground = "Yellow"
highlight_dir_foreground = "LightRed"
[error]
background = "Black"
foreground = "LightRed"
borders = "LightRed"
Only global foreground and global background colors are mandatory. You can pass the ANSI-256 color number (see this cheat sheet) or HEX color code (prefixed with #) or use one of the predefined colors below:
- Black
- Red
- Green
- Yellow
- Blue
- Magenta
- Cyan
- Gray
- DarkGray
- LightRed
- LightGreen
- LightYellow
- LightBlue
- LightMagenta
- LightCyan
- White
- Reset
Reset restores the terminal's default color. This can be useful if you're using a transparent background.
Color separators -, _, and are supported and names are case insensitive. For example, Light-blue or light_blue or light Blue are all valid.
After saving your theme into .theme file and placing it into {YOUR_CONFIG_DIRECTORY}/soundscope, press t to open up the theme selection list and choose yours.
Pull Requests, Issues and Suggestions are welcome!
This project is licensed under the MIT License — see LICENSE for details.
If you like soundscope and want to support its development:
Your support helps keep this project alive ❤️