;;;; -*- coding: utf-8; fill-column: 78 -*-
changes in Benben v0.7.1 relative to Benben 0.7.0:
* Library updates:
* SatouSynth minimum is now v0.1.4. This fixes a bug in the NES emulation
core where some NES VGM files aborted playback when they attempted to
load data into the emulated chip's RAM.
* CL-RemiAudio minimum is now v0.1.3.
* CL-RemiMarshal minimum is now v0.4.3.
* CL-SDM minimum is now v0.99.38.
* Minor breaking change: The zero-order hold resampler option has been
removed. Given how low of a quality this resampler was, and with very
little performance improvement compared to Linear, this has been deemed a
minor breaking change.
* Fixed: The total elapsed time no longer starts updating at 7 seconds when
resampling. It instead starts updating immediately, as it should.
* Fixed: Song config reloading now works.
* New: Added support for RIFF Wave (.wav) files that use IMA ADPCM encoding.
* Changed: The Sinc-Best and Sinc-Medium resampler modes are no longer
included in the binary by default when building using build.sh or the
AppImage build script. These options were VERY overkill, and this also
saves at least five megabytes in binary size. To include them, use:
./build.sh --all-resamp
* Changed: Better info line for RIFF Wave files.
* Changed: The default stereo enhancement value is now 1.1 (old default was
1.0, which was the same as 'no change'; this can still be changed in the
config file).
* Changed: The DC filter is no longer enabled by default (it isn't needed
most of the time).
changes in Benben v0.7.0 relative to Benben 0.6.2:
* Rewritten in Common Lisp.
* 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.
* Breaking change: The resampler names have changed slightly.
* 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.
* 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/--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 thoroghly
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.
* Removed: 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.
changes in Benben v0.6.2 relative to Benben 0.6.1:
* Fixed: Update Haematite to v0.5.4. This adds a workaround for handling of
SoundFonts that have unusual loop points for samples (e.g. the end
position comes before the start position).
* Fixed: The display of WavPack average bitrates is now correct (it was
showing bits, not kbits).
* Enhancement: the output directory that gets created when rendering will
now be created with mode 0700.
changes in Benben v0.6.1 relative to Benben 0.6.0:
* Fix a potential hang when resampling and playing a FLAC file.
* Fix truncated FLAC files causing a crash.
* Better debug output.
* Minimum buffer size has been reduced to 256, and is also the new default.
changes in Benben v0.6.0 relative to Benben 0.5.0:
* YunoSynth updated:
** YM2413/VRC7 added
* New: You can now play Commodore 64 SID files.
* New: Quite OK Audio (QOA) format support added. You can now play
Commodore 64 SID files, including 2SID and 3SID formats. Support for the
HVSC songlength's database is also included.
* New: WavPack format support added, including support for hybrid WavPack
files.
* New: Benben can now render to QOA format.
* New: Benben can now render to WavPack format, including hybrid WavPack
files.
* New: Benben can now be controlled remotely (see --remote).
* New: TCP audio output driver to send audio over a TCP connection.
* New: The --scan-only argument has been added, which tells Benben to scan
files at startup like normal, then exit before playing anything.
* New: You can now type a capital 'P' to toggle repeating the song queue
during playback.
* New: You can now type a capital 'I' to display extended information about
the state of the effects stack and resampler.
* Enhancement: String allocations reduced throughout for lower memory usage.
* Enhancement: You can now specify either a single theme, or an array of
themes, in the config file. When it's an array, a random one out of that
array will be chosen.
* Enhancement: If the terminal is larger than 80x24, the play queue will
expand to fill the empty space (it previously expanded horizontally, but
not vertically).
* Enhancement: Normalization now happens in parallel as jobs are being
rendered. This slightly improves performance.
* Enhancement: The terminal title is now set to the title or filename of the
currently playing song.
* Enhancement: The colors of the bars above and below the banner can now be
themed.
* Enhancement: The current theme can now be reloaded while the program is
running. This should aid in theme development.
* Enhancement: The soft-clipping effect can now have optional oversampling
applied, up to an absurd 65535x (default is just 1x, as before).
* Enhancement: Support for FLACs that are encapsulated in Ogg containers
added.
* Enhancement: Seeking support for Ogg Vorbis and Opus files.
* Enhancement: Faster Ogg demuxing.
* Enhancement: Slightly better memory usage when decoding FLAC files.
* Removed: HTTP/HTTPS support and Gemini support has been removed. These may
be added back in the future, however. This was only supported by VGM files
anyway.
* Fixed (partially): The progress bar when rendering is now slightly more
accurate. The inaccuracy would almost never, ever be noticed, however.
* Fixed: The screen now consistently redraws properly when resizing the
window, and when Ctrl-Z/SIGTTSP is used.
* Fixed: Module files would not be resampled correctly if the output rate
was not 44100.
* Fixed: MPEG-1 files that are being resampled no longer cut off early.
* Fixed: PCM files that are being resampled no longer cut off early.
* Fixed: Progress bar positions are now reported correctly for FLAC files
when resampling.
* Fixed: Progress bar positions are now reported correctly for MPEG-1 files
when resampling.
* Fixed: Progress bar positions are now reported correctly for PCM files
when resampling.
* Fixed: Progress bar positions are now reported correctly for module files
when resampling.
* Fixed: A possible crash when resizing the terminal window.
* Fixed: A possible crash/deadlock with the error "Logger not yet started".
changes in Benben 0.5.0 relative to Benben 0.4.1:
* Updated YunoSynth to v0.4.4
* Breaking change: The config file format has changed. You are encouraged
to backup your current config, then let Benben create a fresh one that you
then re-edit.
* New: MP3, MP2, and MP1 support added.
* New: Module file support added via RemiXMP. The interpolation mode can be
changed at runtime with the 'i' key.
* New: FLAC file support added via RemiAudio.
* New: Opus file support added.
* New: Ogg Vorbis file support added.
* New: MIDI file support added.
* New: Playback of WAV and Au files added.
* New: MPEG-1/FLAC/Opus/Ogg/PCM files are resampled using a high quality
resampler based on libsamplerate when their sample rates do not match the
player's output rate.
* New: Song-specific configs can be reloaded at run time with the 'C' key.
* New: theme support. If truecolor ANSI support isn't working, and you know
your terminal supports 24-bit colors, try setting the COLORTERM=truecolor
environment variable before using Benben.
* New: Added the --long-version argument.
* New: More startup animations added.
* New: Seeking support for MP3, MP2, MP1, RIFF WAV, module files, and Au
files added. Support for seeking in other formats will come in the
future.
* New: ReplayGain support for MPEG-1, Vorbis, Opus, and FLAC files.
* New: Added the --shuffle argument.
* Change: The maximum sample rate is now 48KHz.
* New: The code can now be compiled with -Dstrict_multi_assign and
-Dno_number_autocast
* New: A Texinfo manual is now available.
changes in Benben 0.4.1 relative to Benben 0.4.0:
* Updated to YunoSynth v0.4.1.
* Fixed: Building using Crystal v1.5.0 now works again.
* Fixed: Building on Dragonfly BSD now works again.
* Fixed: Disabling certain drivers with the Rakefile now works properly and
disables them in RemiSound as well.
changes in Benben 0.4.0 relative to Benben 0.3.1:
* Updated YunoSynth to v0.4.0:
** NES APU and DMC support
** Famicom Disk System support
** Seta X1-010 support
** Philips SAA1099 support
** Sega PWM (32x) support
** Bandai Wonderswan support
* Enhancement: Added the --normalize command line option for automatic peak
normalization of rendered files.
* Enhancement: Added the --quiet command line option.
* Enhancement: Pressing `S` will now let you toggle a "quit after current
song" option during playback.
* Enhancement: Added the equalizer-disabled-during-rendering config
option. Turning this on will allow you to normally have an EQ enabled
during playback, but also have it automatically disabled when
rendering. This also works in per-song config files.
* Enhancement: CUE files can now be generated when rendering.
* Enhancement: The CPU usage is now shown during playback and rendering.
* Enhancement: You can pass a directory to Benben directly and it will play
all files it finds in that directory.
* Enhancement: Errors that get printed on stderr are now redirected to a
file (e.g. ~/.local/share/benben/stderr.log) by default. This is to
prevent things such as PortAudio or YunoSynth from printing errors to the
screen that can mess up the UI. This can be disabled in the config.
* Fixed: JSPF playlist loading works again.
* Fixed: You can now go to the next/previous song, or quit, while a song is
fading out.
* Fixed: The EQ setting now properly "sticks" between songs when it's
toggled during playback.
changes in Benben 0.3.1 relative to Benben 0.3.0:
* Updated RemiAudio to a newer commit. This should fix a very subtle EQ
bug (probably inaudible to most people).
* Enhancement: The post-gain option in the equalizer section of the config
file can be used to set a post-EQ adjustment gain. This value is in
decibels.
* Fixed: the default EQ bands were being processed even when they did
were supposed to be overridden.
* Fixed: The 'rounded' banner can now be correctly selected with the
BENBEN_BANNER environment variable.
* Enhancement: Removed a few unused class fields to save a few bytes of memory.
* Fixed: Fix a potential bug in the UI regarding the loops. This would only
have been visible for one frame.
* Small cleanups.
changes in Benben 0.3.0 relative to Benben 0.2.0:
* Update YunoSynth to v0.3.0:
** Y8950 support
** YM3526 support
* Enhancement: libao is now supported as an audio backend.
* Enhancement: Entirely new UI based on S-Lang. It closely resembles the
old UI, but is faster, less prone to glitching, and has a few extra
features.
* Enhancement: Playback now takes advantage of multiple cores.
* Enhancement: The audio buffer size can now be adjusted.
* "Enhancement": Benben will now ensure the Crystal runtime spawns enough
worker threads.
* Enhancement: When a channel clips, even if it's just for one sample, it
will now be shown on the VU meter by highlighting the channel name in
red.
* Deprecation: The refresh-rate config option is now deprecated and ignored.
* Fixed: Changing the volume now properly carries over between tracks.
changes in Benben 0.2.0 relative to Benben 0.1.0:
* Update YunoSynth to v0.2.0:
** BZip2 compressed VGMs
** YM2612 support
** SN764xx support
** YM3812 support
** YMF262 support
** RF5C164 support
** VSU-VUE support
** ES5503 support
** Fixed an infinite loop in the uPD7759
** The Nuked core for the YM2151 now works (MAME is still the default)
* Updated RemiAudio to v0.3.1:
** Optimization: Improved rendering speed and resource usage.
* Added: The --chip-info command line argument will display a list of all
supported chips.
* Added: The output path when rendering can now contain optional template
strings, which will be filled out with GD3 tag information.
* Added: The display of the GD3 tag information can now be set to
"toggle_prefer_english" or "toggle_prefer_japanese" in the config file.
When this is set, then the tag information starts with the preferred
language, then toggles between them every 15 seconds during playback.
* Added: More banners.
* Added: The time it takes to fade out can now be set in the config file.
* Improvement: The fade out calculations have been improved.
* Improvement: The song-specific config files are now checked in
alphabetical order.
* Improvement: Display the overall average samples per second after
rendering.
* Added: The --overwrite parameter is now required to overwrite existing
files when rendering.
* Removed: The --yes parameter has been removed (it did nothing).
* Fixed: Too many jobs were being launched when rendering.
* Fixed: The progress bar display was showing incorrect information when
rendering.
* Fixed: The annotation in Au files was incorrect.
* Fixed: File paths in XSPF files are now decoded properly.
* Breaking change: Song-specific config files can no longer contain these
fields, all of which were previously unused and erroneously included:
** reverb-type
** mverb-reverb-preset
** zita-reverb-preset