Milestone: 1.0.0
Things that need to be in-place for the 1.0.0 release of Benben.
General
- [x] Improved build system that is much easier for non-Lispers.
- [x] Configuration options to disable formats at build time.
- [ ] Internal: Change semantics of file testing to return two values. First is "valid or not", second is T on success, :INVALID if it's just plain invalid, or :UNSUPPORTED if it's unsupported due to the number of channels or whatever. This will prevent files from getting needlessly re-tested as other formats.
- [ ] Second "page" to display visualization.
- [ ] Oscilloscope or spectrum view.
- [x] Add "config-version" key to the configuration file (similar to how themes work).
- [ ] Include MusicBrainz IDs when submitting to ListenBrainz when one or more are found in a file's metadata. More information about the mapping: https://picard-docs.musicbrainz.org/v2.12/en/appendices/tag_mapping.html
- [x] Ability to list out the available banners and banner animations.
- [ ] Use an abstracted CL-REMICHIPS::CONTEXT to play SID files (requires changes to CL-RemiChips).
- [ ] Millisecond timing for the SID player.
- [ ] Persist ListenBrainz scrobbles when the feature is active, but the website cannot be reached for whatever reason.
- [x] Cycle through themes at runtime.
- [ ] Output driver for a named pipe
- [ ] Output driver to output audio over stdout
- [x] A "quiet" UI that prints absolutely nothing. This should also cause special behavior at startup and cause everything else to stay quiet.
- [ ] Last.fm scrobbling as an alternative to ListenBrainz.
- [x] Set Matrix status on song change.
Related Libraries
- [ ] CL-SDM at 1.0 or higher.
- [ ] CL-RemiAudio at 0.1.2 or higher.
- [ ] CL-RemiChips at 0.1.1 or higher.
- [ ] SatouSynth at 0.2.0 or higher.
- [ ] Reduce raw number of Common Lisp dependencies where possible.
Possible, Not Guaranteed
- [ ] libuade as an alternate backend for tracker/module files. Moved to "Possible, Not Guaranteed" because of frustrations with this library's API.
- [ ] EQ profiles.
- [ ] EQ configuration moved to their own config files.
- [ ] Separate interactive configuration program or mode. Lets users configure Benben without needing to touch a config file.
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)