asak is a terminal audio tool written in Rust. It gives you a keyboard-driven TUI for browsing audio files, previewing waveforms, recording new .wav files, and selecting playback and recording devices.
wav, mp3, and ogg files.wav files with a live monitor waveformYou need a Rust toolchain with cargo installed.
Install from crates.io:
cargo install asak
Install from this repository:
cargo install --path .
On Linux, you will usually need audio development packages for cpal:
sudo apt install libasound2-dev libjack-dev
If you want JACK support explicitly:
cargo install --path . --features jack
Run the app:
asak
Run it from source:
cargo run
When asak starts, you choose between three modes:
PlayRecSettingsPlay opens a file browser rooted at the current working directory.
Keys:
Up / Down: move through the browserEnter: open folder or preview fileBackspace: go to parent directorySpace: pause or resume playbackEsc: stop playback and return to mode selectionRec records a .wav file into the current working directory.
Enter to start recordingEnter again to stopAfter saving, asak returns to the mode selector and refreshes the Play browser so the new file is ready to preview.
Keys before recording starts:
Left / Right: move cursor in the filenameHome / End: jump cursorBackspace / Delete: edit filenameEnter: start recordingKeys while recording:
Enter: stop recordingEsc: leave recording modeSettings lets you choose playback and recording devices.
Playback Device or Recording DeviceEnterUp / DownEnter or BackspacerThe system default devices are used as the default selection.
Up / Down: move between modes on the mode selectorEnter: open the selected modeEsc: return to the mode selectorq: quitFormat the project:
cargo fmt
Run Clippy with warnings denied:
cargo clippy --all-targets -- -D warnings
Build a release binary:
cargo build --release
The build script also generates shell completions and man pages into target/completions and target/man.
asak uses the current working directory as the initial browser rootIssues and pull requests are welcome.
Rust
100.0%
asak is a terminal audio tool written in Rust. It gives you a keyboard-driven TUI for browsing audio files, previewing waveforms, recording new .wav files, and selecting playback and recording devices.
wav, mp3, and ogg files.wav files with a live monitor waveformYou need a Rust toolchain with cargo installed.
Install from crates.io:
cargo install asak
Install from this repository:
cargo install --path .
On Linux, you will usually need audio development packages for cpal:
sudo apt install libasound2-dev libjack-dev
If you want JACK support explicitly:
cargo install --path . --features jack
Run the app:
asak
Run it from source:
cargo run
When asak starts, you choose between three modes:
PlayRecSettingsPlay opens a file browser rooted at the current working directory.
Keys:
Up / Down: move through the browserEnter: open folder or preview fileBackspace: go to parent directorySpace: pause or resume playbackEsc: stop playback and return to mode selectionRec records a .wav file into the current working directory.
Enter to start recordingEnter again to stopAfter saving, asak returns to the mode selector and refreshes the Play browser so the new file is ready to preview.
Keys before recording starts:
Left / Right: move cursor in the filenameHome / End: jump cursorBackspace / Delete: edit filenameEnter: start recordingKeys while recording:
Enter: stop recordingEsc: leave recording modeSettings lets you choose playback and recording devices.
Playback Device or Recording DeviceEnterUp / DownEnter or BackspacerThe system default devices are used as the default selection.
Up / Down: move between modes on the mode selectorEnter: open the selected modeEsc: return to the mode selectorq: quitFormat the project:
cargo fmt
Run Clippy with warnings denied:
cargo clippy --all-targets -- -D warnings
Build a release binary:
cargo build --release
The build script also generates shell completions and man pages into target/completions and target/man.
asak uses the current working directory as the initial browser rootIssues and pull requests are welcome.
Rust
100.0%