| Crates.io | soundcheck |
| lib.rs | soundcheck |
| version | 1.0.0 |
| created_at | 2025-11-30 06:43:31.921724+00 |
| updated_at | 2025-12-07 02:42:07.481832+00 |
| description | A terminal-based audio monitoring application that displays real-time audio levels and exits when sound exceeds a specified threshold. |
| homepage | |
| repository | https://github.com/isfopo/soundcheck |
| max_upload_size | |
| id | 1957959 |
| size | 124,184 |
A terminal-based audio monitoring application that displays real-time audio levels from selected input channels and exits when sound exceeds a specified threshold.
cargo install soundcheck
brew tap isfopo/homebrew-tap
brew install soundcheck
choco install soundcheck
git clone <repository-url>
cd soundcheck
cargo build --release
# Binary will be at target/release/soundcheck
For detailed information about creating and publishing releases, see RELEASE.md.
# List available audio devices (interactive selection)
soundcheck list
# Pipe device selection to detect
soundcheck list | xargs soundcheck detect --device
# Monitor max levels for 5 seconds
soundcheck max --seconds 5 --channels 0,1
# Monitor until Enter is pressed
soundcheck max --channels 0,1
# Calculate average levels over 5 seconds
soundcheck average --seconds 5 --channels 0,1
# Calculate average until Enter is pressed
soundcheck average --channels 0,1
# Get quiet output for scripting
soundcheck max --seconds 5 --quiet
detect: Monitor audio levels and exit when threshold is exceededlist: List available audio input devicesmax: Monitor audio and report maximum levels detectedaverage: Monitor audio and report average levels detected| Option | Description | Default | Example |
|---|---|---|---|
--threshold |
Audio threshold in dB (-60 to 0) | 0 | --threshold -30 |
--min-db |
Minimum dB level for display (-100 to 0) | -60 | --min-db -80 |
--channels |
Audio channels to monitor (comma-separated) | [0] | --channels 0,1 |
--device |
Audio input device name | Default device | --device "USB Microphone" |
| Option | Description | Default | Example |
|---|---|---|---|
--seconds |
Monitoring duration in seconds | Until Enter | --seconds 10 |
--min-db |
Minimum dB level for display (-100 to 0) | -60 | --min-db -80 |
--channels |
Audio channels to monitor (comma-separated) | [0] | --channels 0,1 |
--device |
Audio input device name | Default device | --device "USB Microphone" |
--quiet |
Output only integer values without labels | false | --quiet |
| Option | Description | Default | Example |
|---|---|---|---|
--seconds |
Monitoring duration in seconds | Until Enter | --seconds 10 |
--min-db |
Minimum dB level for display (-100 to 0) | -60 | --min-db -80 |
--channels |
Audio channels to monitor (comma-separated) | [0] | --channels 0,1 |
--device |
Audio input device name | Default device | --device "USB Microphone" |
--quiet |
Output only integer values without labels | false | --quiet |
soundcheck list # Interactive device selection (navigate with arrow keys, press Enter)
When monitoring multiple channels, the application displays separate gauges for each channel:
# Continue to next command only if threshold reached on any channel
soundcheck detect --channels 0,1 && echo "Audio detected!"
# Run fallback command if user exits
soundcheck detect || echo "Monitoring cancelled by user"
# Error handling
soundcheck detect || echo "Failed to start monitoring"
# Debug build
cargo build
# Release build
cargo build --release
# Run tests
cargo test
# Check code quality
cargo clippy
cargo fmt
"No default input device"
"Device not found"
soundcheck list to see available devicessoundcheck detect --help to see available optionsBlank screen on startup
Audio levels not updating
# Run with verbose output
RUST_LOG=debug cargo run -- detect --threshold -20 --channels 0,1
This project is licensed under the MIT License - see the LICENSE file for details.