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

NOTE: If you want to work on SoundTracker, try to get the latest
development version (v0.7.x).




=== GTK+ / GNOME bugs =====

bug: start st, go to instrument page, go back to tracker page, hit
shift+space.  jazz edit box is NOT displayed, this works only after
you use the menu bar once to toggle the box on. ---> BUG IN
GTK+/GNOME: in keyevent, the events are not being stopped, so _my_
code is not buggy. If you change the responsible key combo from
"Shift+Space" to something else, for example "Ctrl+R", it works
without problems.



====== GUI =========

What about a "Name Pattern" feature which allows you to attach names to any pattern you like, so
that they can be more easily recognised? I`m sure that this info could cimply be appended to any
.xm file therefore not making it unreadable by other trackers. You see, i`m making a mod at the
moment which is kind of a mess, and i`m constantly getting lost... ;)
The right place for the widget for this would be in the Tracker page
of the main window. Also, the pattern length widget should be there
rather than in the upper part of the main window. We could also have
the "number of channels" spin down there and make it a per-pattern
property.

> press CAPSLOCK or something, to enter "hex chooser mode"
> type A3 or B0 or 45 or whatever the 2-digit hex code is for your sample
> program automatically leaves hexmode and functions return to normal.
> It's more keystrokes but less flipping through groups of samples. 

filereq: show only *.xm, *.zip etc.

right-shift: start playing and editing, with scrolling
enabled. optional quantization.

statusbar: gtk_widget_usize() on gtk_clock is ugly...

> * 'Delete' and 'Rename' functions in File page.

> * Settings dialog for 'Render WAV' (begin postion, end position,
> amplification, WAV frequency, etc.)

in tokdar.xm in sample editor und dann die samples bis zur fnf von hand weiterschalten (Ctrl-left)

KDE link file from Paul Buhr

> I think it would be nice, if you had an option to load only the samples
> from a module, not the whole module, just like in my old OctaMed.

delink / link tab!!!

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.

SAMPLE LIST: like in good old MED

TRACKER WIDGET: should work with arbitrary note types, effects, and so
on.  should support per-cell background/foreground colors, fonts
should be configurable etc. extend xmnote.

CLAVIER: highlight currently played notes!

GUI-SETTINGS / TRACKER: h <-> b

GNOME / AUTOMAKE: Use official gnome macros instead of the xchat
configure.in code (but that sucks, since it's so much,
cf. gnome-libs-2 proposal)

SAMPLE EDITOR: lowpass / highpass / bandpass, mix two samples,
resampling functions.

SCOPE GROUP: toggle display of channel numbers.

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??). make this configurable:
protracker (current one) or fasttracker like playlist. ONLY
PLAYLIST.[CH] HAVE TO BE ALTERED.

GUI: assign samples to numberpad. Then numberpad could act as a
drumpad (one key plays given sample at given frequency).
> you could add a bass drum to "7", snare to "8", closed hat to "9", ride to
> "4", timpany G to "5", etc..  all at the correct note for that sample.
> Then you just switch to edit mode and knock out a drum beat with single
> keypresses!

LOGO: add it somewhere

> - editor should be colourful (customize colors of samples, commands)

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

some kind of undo, especially for block operations

> ctrl+d - file requester
> ctrl+t - tracker
> ctrl+i - instrument editor
> ctrl+s - sample editor
> ctrl+m - module info

file-operations: after saving, the directory must be rescanned!
unfortunately, there's no gtk+ call for this :(

>  - IT has different shortcuts for selections: 
>    alt-b (begin) alt-e (end)
>    alt-l (whole column) alt-l twice (whole pattern)
>    alt-k in the volume column slides the volume in the selection
>    alt-x in the effect column slides the effects in the selection
>    alt-x twice wipe out all effect data
>    shift while pressing a note scrolls to the next column (depressing
> shift returns to the original position) this is useful for chords.
>    a number of keys either to play the current pattern, the song, or the
> song starting from the current pattern
 
> - octave change - it should be configurable to change octave with
> F-keys or with "/","*" ("/" octave down, "*" octave up), and to
> switch editors with F-keys (F2 tracker, F3 instrument editor, F4 sample
> editor... - just like good old Scream Tracker). It's sometimes more
> comfortable to use Scream Tracker approach to keyboard :)
> Wasting all F-keys for octaves is not The Good Thing.

> (4) there are several people in the todo list that are asking "why don't you
> make the keys more like scream tracker?" or "why don't you make the keys more
> like impulse tracker?" I know you are trying to emulate the fasttracker 2
> setup (at least to a degree) and I like the ft2 key layout the best, but
> maybe a way to make everyone happy would be to make something in the layout
> settings that says "make key layouts resemble:" and pulldown menu or
> selection menu for ft2, st3, it, pt, etc..?
>-----> need to put ALL the keys handling to keys.c (no more GDK_* cases in
>track-editor.c, for example)
 
tracker: some fonts (for example lucida console 80) report strange
font heights so that the tracker's rows overlap sometimes. or am i
miscalculating something?


====== PLAYER / LOADER ========

check endianness conversion for {audiofile / raw} sample {loader / saver}.

load 15 sample mods

iff loading

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.

mod saver

GUS patch (.pat) loading


====== MIXER ======

the idea of having mixer modules is a bit silly, especially when the
mixer has to do more jobs than now.

virtual channel support (for impulse tracker modules)

sample-stream input support (as opposed to fixed samples) -- then it's
only a short way to unit-generator support such as Buzz or Octal have
it.

(global filter, kb's xm extension)


====== DRIVERS =======

OSS-OUTPUT.C: make preferences come in effect immediately, without
having to restart the song.

OSS-INPUT.C: add settings widget, including sampling source and volume
slider.

SAMPLE-EDITOR.C / SAMPLING: support for other formats than 16 bit /
mono.

drivers/file-output.c::file_open(): check if the user is allowed to
create the file first!

file output: some users report that the generated WAV has a lower
quality than direct output?!?

esd output: --espeaker command line option doesn't work (but is
displayed in --help output).


====== MISC ======

idea why realtime scheduling doesn't work: mutexes in player thread
are spinloops, so they take up 100% cpu time when waiting and the main
thread can't release the mutexes.

> >From within soundtracker, it is possible to render the module
> as wav. My question is: Is it also possible to
> do it from the (Unix) command line? Something like
> `soundtracker --render song.xm song.wav' ?

extend tips dialog

scopes under irix with integer32 don't work

nls under irix doesn't work

save wav's with a sample rate that would be set by the xm player at
C-6.



====== FUTURE =======

MIDI out

Module format plugins (Might be interesting to see what the
linux-audio-dev guys are developing)

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.
