Benben
Benben is a command line VGM player and VGM->WAV converter for Linux that uses my YunoSynth library for its VGM playback engine. It is written 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
Notable Features
- PulseAudio and PortAudio backends
- High-performance playback.
- Multiple files can be specified and they will play one after the other.
- Song and playlist looping.
- Support for all the chips that supported by YunoSynth.
- Support for uncompressed VGMs, gzip compressed VGMs (.vgz), and additional non-standard formats.
- Support for XSPF and JSPF playlists
- 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