Benben v0.7.0 is now released!

  • Benben AppImage for x86-64 Linux: download
    • SHA256: f680836554155ae58cd876a7184cb797dd57fb369660d186e25054bff66607de
    • GPG Signature
  • remote-benben v0.3.0 AppImage for x86-64 Linux: download
    • SHA256: 8c7496fddbe44a10feb4e0cbab7b733e008dbdf998adda3092437587ecfb8366
    • GPG Signature
  • Updated manual: HTML and PDF
  • For source code, clone this Fossil repository and checkout v0.7.0
    fossil clone https://chiselapp.com/user/MistressRemilia/repository/benben/ && cd benben && fossil checkout v0.7.0
  • Want to build from source? Check out the Building page for instructions.

Changes and Features

  • Rewritten in Common Lisp. Read this post and this post for insight as to why this was done.
  • Breaking change: The TCP driver format names have changed.
  • Breaking change: Format-specific command line arguments are now prepended with their name (e.g., --vgm-* for all VGM-related arguments).
  • Breaking change: The reverb preset names have changed. See the manual for the new names.
  • Breaking change: The resampler names have changed slightly. For example, sync_fastest is now sync-fastest. See the manual for the new names.
  • Breaking change: "schroeder" is no longer selectable as a reverb type for midi playback.
  • Breaking change: The PulseAudio and PortAudio drivers have been removed. You can use the libao or out123 drivers as a substitute for these.
  • Breaking change: Benben can no longer render to QOA or WavPack. Use XQATool (for QOA/XQAF) or the wavpack command to convert WAV/Au to these formats instead. Removed to better fit within a Unix-style philosophy.
  • New: Added the ALSA driver.
  • New: Added the out123 driver.
  • New: Added the --basedir argument.
  • New: A DC offset filter is now available. This can be enabled with the --dc-filter option, or in the config with the dc-filter key. It is enabled by default. The --no-dc-filter option has also been added.
  • New: The --ui argument has been added.
  • New: The --fadeout-seconds argument has been added.
  • New: The --midi-soundfont argument has been added.
  • New: The --midi-reverb-type argument has been added.
  • New: An alternative UI, the "Minimal UI", has been added. This is bare bones: it just prints information as the tracks change, and you have to control Benben with the remote-benben program. This UI also works perfectly in Emacs with Slime ^_^ The Original UI still exists, of course, and is still the default.
  • New: ListenBrainz support added.
  • New: Added the --no-listenbrainz command line options.
  • New: Added the --vgm-strict-gd3-loading command line option.
  • New: Support for the Extended QOA Format (XQAF/XQA, .xqa) has been added.
  • New: You can now set the banner animation in your config file.
  • New: Added the max-file-size config option to the vgm configuration section of the config file.
  • New: Added the post-track-seconds config option to the modules config section.
  • New: Added the --no-song-configs command line option.
  • New: Added the --start-paused command line option.
  • New: Added the display-loop-times-separate key to the ui section of the config to display the time-per-loop in the song queue area as well as the total time.
  • New: Pressing the upper-case U key now toggles "pause after current" in the Original UI.
  • New: Added the recurse-directories config option, and associated --recurse and --no-recurse CLI options, for recursively adding files in subdirectories.
  • New: Added the --vgm-dmg-boost-wave-chan, --vgm-no-dmg-boost-wave-chan, --vgm-ym2612-pseudo-stereo, and --vgm-no-ym2612-pseudo-stereo arguments.
  • New: Added the --sid-mono and --sid-def-length arguments.
  • Enhancement: SoundFont paths are now checked earlier at startup, and regardless of if MIDI files are being played.
  • Enhancement: The remote control socket is now removed properly when ctrl-c is used.
  • Enhancement: VGMs with GD3 tag size mismatches are now more thoroughly handled.
  • Enhancement: ReplayGain, when present in the metadata, is now applied to WavPack, MPEG-1, Vorbis, XQA, Opus, and FLAC.
  • Enhancement: The progress bar will now print 'fading' when the song is being faded out.
  • Enhancement: On platforms that support it, SIMD processing is now performed to speed up a few sections of code.
  • Enhancement: Initial file checking is now done in parallel and is sometimes much faster.
  • Enhancement: Much faster response times to remote-benben requests.
  • Enhancement: The internal design has been streamlined, and a lot of duplicated code has been removed.
  • Enhancement: When the driver is any, and the default fails, then Benben will continue to try other drivers.
  • Enhancement: A running total of the total elapsed time is now shown at the bottom of the screen.
  • Enhancement: The state of Repeat List/Stop After Current/Pause After Current is now shown at the bottom of the screen next to the CPU usage.
  • Enhancement: VGMs now support seeking.
  • Changed: The default resampling mode is now linear.
  • Changed: When the driver is set to "any", it now defaults to out123 first, then ALSA, then AO.