Benben
Benben is a fast and efficient command line audio player and audio converter for Linux and other Unix-like systems with an oldschool-inspired interface. It supports multiple formats, and is especially suited to people who organize their music in folders, and for those who prefer to use terminals instead of GUIs. It is written almost entirely in the Crystal programming language.
- Releases, downloads, and AppImages for x86-64 Linux
- Build from source
- Full manual (also in in PDF format)
- Project Goals
- FAQ page
- Official Matrix channel
Wanna support this project? Buy Remilia a coffee on Ko-Fi, support her through Liberapay, or support her through Throne. Support is greatly appreciated for this volunteer effort ^_^
Example Videos
- Partition 36 - Overdrive (Opus)
- ZUN - 亡き王女の為のセプテット (Septette for a Dead Princess) (MP3)
- Partition 36 - Searching for My Identity (Ogg Vorbis)
- Skaven - Ice Frontier (Remix by Necros) (Module/S3M)
- SoulCalibur - Wings of Faith (Sophitia) (VGM - Namco C352)
- Partition 36 - The Mainframe (FLAC)
- Warcraft 2 - Human 2 (General MIDI)
The Partition 36 videos are songs written by Remilia. Check out her Bandcamp page.
Supported Input Formats
- VGM
- Uncompressed (.vgm)
- GZip compressed (.vgz)
- ZStandard compressed (.vgzst)
- BZip2 compressed (.vgb)
- MPEG-1
- MPEG-1 Layer III (.mp3)
- MPEG-1 Layer II (.mp1)
- MPEG-1 Layer I (.mp1)
- Ogg Vorbis
- Opus
- FLAC
- General MIDI (.mid)
- MUS (.mus)
- All module formats supported by libxmp
- Commodore 64 SID (.sid)
- RIFF WAVE (.wav)
- QOA, the Quite OK Audio format
- WavPack
- Sun Au (.au)
Notable Features
- PulseAudio, PortAudio, and libao backends.
- High-performance playback with minimal memory usage.
- Fast, multi-threaded UI via S-Lang.
- Multiple files can be specified and they will play one after the other.
- Song and playlist looping.
- Output audio over TCP.
- Support for XSPF and JSPF playlists.
- High quality resampling.
- A powerful Configuration file support, including support for per-song configurations.
- Rendering (converting) multiple files in parallel to WAV, Au, WavPack, or QOA format.
- Support for multiple bit depths and sample rates, and both integer and floating point WAV/AU files.
- Optional effects:
- Soft clipping with configurable oversampling.
- Parametric EQ with an arbitrary number of bands.
- Stereo enhancement effect.
- Reverb with selectable type and preset.
- Customizable VU meter.
- Keyboard control support.
- ReplayGain/RVA support.
- Controllable remotely over a dedicated socket.
Command Line Examples
Below are various examples of how to use Benben. Keep in mind that Benben is a command line program, and does NOT have a file browser by design. You pass the files/directories you want to listen to in on the command line.
# Play an MP3 file and stop after it finishes
$ benben "Cool Song.mp3"
# Play a VGM and loop twice
$ benben --loop 2 "Another Cool Song.vgz"
# Play a directory of music.
$ benben /path/to/my-cool-album/
# Render (convert) multiple files files to WAVs in parallel, storing them in
# the current directory
$ benben --render *.ogg *.mp3
# Play various files and stop after it finishes
$ benben "Cool Song.vgz" spacedeb.mod "02 - E1M1.flac"
# Show the help information
$ benben --help
# Show version information
$ benben --version
# List reverb presets for "MVerb"
$ benben --reverb-type mverb --reverb-preset list
Development
Development Milestones are listed in the wiki.
How do I contribute?
- Go to https://chiselapp.com/user/MistressRemilia/repository/benben and clone the Fossil repository.
- Create a new branch for your feature.
- Push locally to the new branch.
- Create a bundle with Fossil that contains your changes.
- Get in contact with me.
Contributors
- Remilia Scarlet - creator and maintainer
- Homepage: https://remilia.sdf.org/
- Fediverse: @remilia@nanako-さめ.mooo.com
- Email: zremiliaz@postzeoz.jpz My real address does not contain Z's
Links and Licenses
Benben is under the GNU Affero General Public License version 3.