Milestone: 0.7.0

Things that need to be in-place for the 0.7.0 release of Benben.

General

  • [x] Rewrite Benben in Common Lisp. See this blog post and this page for the overall porting progress.
  • [/] More format-specific command line options, e.g. select a SoundFont for MIDIs.
  • [x] Refactor the PLAYER and JOB classes so that they share mode code between them.
  • [x] Refactor the FILE-HANDLER class into a FILE-HANDLER that manages the initial checking of files, and then create a PLAY-QUEUE class that acts as a virtual playback queue.
  • [x] Select resampling mode for oversampling.
  • [x] "Start paused" functionality.
  • [ ] Seeking in VGMs.
  • [ ] Show total time elapsed on the "Total time" line.
  • [ ] For looping files, show two time values in the play queue in this format: "(time per loop / total time)"
  • [x] Load audio files from WADs (MIDI, FLAC, Modules, MPEG-1, Opus, QOA, VGM, Vorbis, and XQA only).
  • [x] Add --no-song-configs command line option to skip loading all song-specific configs.
  • [x] Add --fadeout-seconds command line option to specify the number of seconds to fade out songs that loop.
  • [x] ListenBrainz support
  • [x] New "Minimal" UI
  • [ ] When a MIDI file has loop information, handle it like VGM files, otherwise handle it like other files.
  • [ ] Config option to recurse directores, plus CLI options to enable/disable this.

Likely To Be Added, But Not Certain

  • [ ] "Pause after current" functionality. Under strong consideration.
  • [ ] If MIDI file "tails" finish before the post-track-seconds option, fall back to the global inter-song gap setting.

Maintenance Tasks

  • [ ] Do a full pass of the program to ensure copyright headers are up to date.
  • [ ] Do a full pass of the program to add missing documentation strings.

Other

  • [ ] Document all config file options.

(x = finished, ? = might have a bug, / = partially working, space = not working)