;;;; -*- coding: utf-8; fill-column: 78 -*-

This documents the current status of the trunk code.  It's meant as a
high-level overview of what to expect if you compile Benben using the code in
the current checkout.

=======
Overall
=======

Only partially working, lots of bugs or incomplete things.  Expect the program
to be fragile.

KNOWN ISSUE: When playing a module, using Ctrl-C can cause the entire Lisp
instance to die when in Slime.  This doesn't seem to happen when Benben is a
command line program.

=======
Loading
=======

* VGM loading: working
* Module loading: working
* MIDI: not working
* SoundFonts: not working
* MP1/2/3: working
* FLAC: working
* Opus: working
* Vorbis: not working
* WAV/Au: working
* QOA: working
* XQAF: working
* WavPack: working
* XSPF/JSPF: working
* SID: not working
* Local files: working

=============
Audio/Formats
=============

* VGMs: working
* Modules (libxmp): working
* MIDI (Haematite): not working
* MP1/2/3 (libmpg123): working
* FLAC (RemiAudio): working
* Opus (libopus): working
* Vorbis (libvorbis): not working
* WAV/Au (RemiAudio): working
* QOA: working
* XQAF: working
* WavPack: working
* SID: not working
* Seeking: partially working, will eventually work for WAV/Au, modules, QOA, XQAF, MPEG-1, Opus, and Vorbis only
* Resampling: working, see note
* ReplayGain: working for FLAC, XQAF, MPEG-1, WavPack, and Opus.

NOTE: The resampler is known to be somewhat CPU-intensive right now.  This
will get optimized by the time v0.7.0 is ready for released.

======
Config
======

* Overall: working
* Song-specific configs: partially working, see note.
* Song-carryovers: partially working, not properly resetting in many cases

NOTE: Song-specific settings are sometimes not unapplied.

=========
Rendering
=========

* VGMs: not working
* Modules (libxmp): not working
* MIDI (Haematite): not working
* MP1/2/3 (libmpg123): not working
* FLAC (RemiAudio): not working
* Opus (libopus): not working
* Vorbis (libvorbis): not working
* WAV/Au (RemiAudio): not working
* QOA: not working
* XQAF: not working
* SID: not working
* WavPack: not working
* CUE writing: not working
* Normalization: not working
* Auto-directories: not working
* QOA encoding: not working
* WavPack encoding: not working

=======================
Original User Interface
=======================

* Overall: working
* Input: working
* Tags: working
* VU: working
* Themes: working
* Total time display: working
* Song queue: working

=======================
Minimal User Interface
=======================

* Overall: working
* Input: not applicable
* Tags: working
* VU: not applicable
* Themes: not applicable
* Total time display: working
* Song queue: not applicable

=======
Effects
=======

* EQ: working
* Reverb: working
* Soft clipping: working, see note 2
* Stereo enhancer: working
* DC offset filter: working

NOTE 1: There is a bug in RemiAudio where MVerb cannot reliably play back files
at or below a sample rate of 23465 Hz.  If you need to play files at or below
this rate, use Zita for a reverb effect for the time being until this is fixed
in RemiAudio.  It's assumed this carried over into the Common Lisp code.  The
upstream ticket is here:
https://chiselapp.com/user/MistressRemilia/repository/remiaudio/tktview/2d98cef604baaece841e5d6fa4580dcd184e3023

NOTE 2: The soft clipper can currently use a lot of CPU if the oversampling
value is 2 or higher.  This is mostly caused by the resampler.  Until the
resampler is optimized, it's recommended to use an oversampling value of 1 or
2, and a mode of linear, if the CPU usage is too high for you.  This will get
optimized by the time v0.7.0 is ready for released.

===============
Error Reporting
===============

* Startup errors: working
* Initial file checking errors: working
* Errors loading songs during playback: working
* Redirect stderr: working

==============
Remote Control
==============

* Server-side: working
* CLI program: working (not ported)
