Benben
Benben is a fast and efficient command line audio player, and audio->WAV/Au converter, for Linux/Unix. 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.
Source Code Repository Releases, including Linux x86-64 AppImage downloads
Example videos
- Sega Genesis/Mega Drive - Elemental Master - “Like The Wind”
- MSX - Impact MuSiX Disk #2 - “Ending 0.01”
- Sega Genesis/Mega Drive - Sonic the Hedgehog - “Green Hill Zone”
- Arcade - Toki - Stage 1 music
- Arcade - After Burner II - “After Burner (Melody Version)”
- Neo Geo - Metal Slug X - “Judgement -X-”
- X68000 - Granada - “Advance ‘GRANADA’ (Opening Theme)”
- PC-98 - Rusty - “Queen in The Night”
- PC Engine/TurboGrafx-16 - Soldier Blade - “Operation 1”
- Benben rendering 61 files in parallel to WAV
This example includes added reverb to show off the reverb effect:
- Arcade - Soul Edge - “Epic Calling!”
Example Usage
# Play a VGM file and stop after it finishes $ benben "Cool Song.vgz" # Play a VGM and loop twice $ benben --loop 2 "Another Cool Song.vgz" # Render multiple VGM files to WAVs in parallel $ benben --render *.vgz # Show the help information $ benben --help # Show version information $ benben --version # List reverb presets for "MVerb" $ benben --reverb-type mverb --reverb-preset list
Supported 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)
- All module formats supported by libxmp
- RIFF WAVE (.wav)
- Sun Au (.au)
Notable Features
- PulseAudio, PortAudio, and libao backends.
- High-performance playback.
- Fast, multi-threaded UI via S-Lang.
- Multiple files can be specified and they will play one after the other.
- Song and playlist looping.
- Support for the following formats:
- VGM/VGZ/VGZST/VGB, with support for all the VGM chips that supported by YunoSynth.
- FLAC (in pure Crystal) via RemiAudio.
- MIDI (and MUS - in pure Crystal) via Haematite.
- All modules supported by libxmp.
- Ogg Vorbis via libvorbis.
- Opus via libopus.
- MPEG-1 Layers I, II, and III (.mp1, .mp2, and .mp3 files) via libmpg123.
- RIFF WAVE and Au files
- Support for XSPF and JSPF playlists.
- High quality resampling.
- Configuration file support, including support for per-song configurations.
- Rendering multiple files in parallel to either WAV or Au format.
- Support for multiple bit depths and sample rates, and both integer and floating point WAV/AU files.
- Optional effects:
- Soft clipping.
- 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.