
things to do and known bugs (in no particular order)
-------------------------------------------------------

MIXER POSITION / CLIPPING INDICATOR: correct time base

MIXER POSITION / CLIPPING INDICATOR: update more often

XM-PLAYER: check if new vibrato fix is correct... mod.guardian dragon
position 4 vibrato is too deep? mod.rstchip 09

TIME-BUFFER: rewrite, optimize, respect maximum time delta value.

TRACKER: expose: draw highlighted cursor line as well

SAVE: wav output

INSTRUMENT EDITOR: "clear instrument", "load instrument", "save
instrument" (save in XI format).

CLAVIER: put this to some more clever place so that the main window
doesn't have to be that big.

EVERYWHERE: use of pthread_create isn't quite consistent with use of
gthread_* functions everywhere else.

GUI: transposition functions

ENVELOPE-BOX: canvas should scroll if points are moved outside the
current displayed region.

ENVELOPE-BOX: expand/shrink scroll region after adding points

ENVELOPE-BOX: init dragging after new point has been set

ENVELOPE-BOX: antialiased canvas must be an option!

ENVELOPE-BOX: add a kind of "mixer position" like display

ENVELOPE-BOX: make sustain and loop points graphically editable

ENVELOPE-BOX: provide some standard curves

SAMPLE EDITOR: when loading a new sample into an empty instrument, the
instrument editor window is not initialized.

MENU: Put all operations which are only key-accessable into the menu
bar (including their short cuts, which may be configurable).

GUI: add volume slide auto generator (Cxx)

SAMPLE DISPLAY: Fix for large sample lengths (overflow in
XPOS_TO_OFFSET macro).

SAMPLE EDITOR: add support for loading stereo samples (left, right or
mixed channels).

SAMPLING: support some settings

SAMPLE EDITOR: add 440hz reference tone

NON-GNOME MENU: put keyboard shortcuts there as well

PREFS: put scope/tracker update freqs into the struct as well

DRIVER: write an esd driver

KEYS / GUI: make all keys configurable, even the "play song", "play
pattern" and "stop" keys... (note alt-f4)

CLAVIER: highlight currently played notes!

CLAVIER: note under cursor must be displayed as real note string

GNOME: get some gnome standards documentation and implement it...

MIXER: remove mixer module. this concept is bogus.

XM.C: loading chuck-boom.xm doesn't work!

SAMPLE EDITOR: when in sample-editor, notekeys must play the sample
that is currently displayed, not the one from the sample map

EDITOR: polyphonic note playing on the keyboard (automatic channel
assignment)

XM.C: save all non-empty patterns, not only the used ones.

MAIN WINDOW "CONTROL PANEL": the scopes must be able to be replaced by
an instrument list or something similarly useful in case you don't
want the scopes there. the scopes could be put into their own window
or to the pre-0.1.1 position then.

TRACKER.C: toggle channels on/off by clicking on them.

SAMPLE-EDITOR.C / AUDIOFILE: does audiofile handle endianness
automatically?!?

XM.C / MOD LOADER: mod.Anette has strange loop points

PLAYER BUGS: e96-sache in flowerpower.main!, mod.rstchip.09,
mod.savage, spotlight madmix, alice d., abyss-tr -- fix note
retriggering when only instrument column is set.

AUDIO / MIXER: scope handling should be in a separate, low-priority
thread.

PREFERENCES: tracker font list

MIXER: stereo width / stereo type (ramp or semi-ramp)

SCOPES: don't work with large fragsizes

LOADER: support loading from archives (Realtime is working on it?)

XM-PLAYER: find the bug which causes ch->chFinalPitch to become zero
in tru_funk.mod.

XM SAMPLE HEADER: the byte at offset 17 is "reserved" according to the
XM documentation. Modules saved in FastTracker contain values other
than 0 in there.  Does this field have any meaning?

PLAYER / MIXER: what happens if you use 9xx to jump behind the loop
end?

WAV SAVER: is there something wrong? the "play" command line program
complains about "wrong speed/freq.". i find 44100 is quite common :)

DOCUMENTATION: write it.

MIXER: the pitchbend function is cool. what would be even cooler is if
SoundTracker could play two mods simultaneously; it could be used as a
pseudo-turntable module mixer then. something i always wanted to do.

SAMPLE EDITOR: normalize / volume up/down / fade in/out, lowpass /
highpass / bandpass, mix two samples, down/upsample functions.

MODINFO PAGE: new function: "sample used in module?"

SAMPLE IMPORT/EXPORT: XI, IFF and RAW formats.

SPINBUTTON: add a hexadecimal mode, so that tracker widget / gui use
is consistent.

SAMPLE EDITOR: support display window panning (middle mousebutton or
ctrl-anybutton, and a hscrollbar under the sample display)

GUI: every notebook page should be able to be put in its own window by
a single button click.

MODULE INFO: find a way to make the clist widget set its column width
automatically rather than doing the wild size_allocate hack (look at
GMC source).

MIXER: some asm-optimized mixing code would be nice (kb, what about
your fpu mixer?).

PLAYLIST WIDGET: write a playlist widget which always displays the
current pattern in the middle of the scrollable area (can be used for
the numerical envelope editor, too). this is rather boring: ever had a
look at the gtk+ clist widget?

FILE REQUESTER: write a small file requester widget so that we don't
have to use the gtk+ file selection, which can be quite unpleasant if
you want to quickly scan a directory containing 100 samples for a
specific one.  on the other hand - if every program would provide
their own file selectors, the world would be a bad place. this one
would go into a separate notebook page (which could be put into its
own window as well, with the concept described above). probably
copy'n'paste from the gtk+ source code.

FILE REQUESTER: add default paths for samples and modules

INSTRUMENT / SAMPLE EDITOR: need to implement some kind of access
locking so the player doesn't interfere with the editor when changing
sample parameters such as loop start/end and the envelopes.

MIXER: circumvent sample size limitation by using double's to store
pointers / lengths / loop points (or use gint64's?)

GUI: assign samples to numberpad. Then numberpad could act as a
drumpad (one key plays given sample at given frequency).

GUI: (t150315@students.cc.tut.fi) Optional channel changing, when
playing.  IMHO nicest way to implement this UI-wise, would be to have
as many checkboxes as there are channels.  After user has played a
note, tracker moves onto a next checked track.  The idea of this
feature is to leave the prev note still playing when next note is
played, like it does eg with piano.

SCOPE GROUP: toggle display of channel numbers.


