TODO


OBOY! Theres a lot to do still. The list just gets longer and longer.
Lately, I haven't even bothered writing down all the ideas I get. Now I
just want to use this program, and remove bugs. This have been quite some
work and I'm pretty tired now. If theres any programmer out there
that wants to work on this program and is able to read my code, help is
really welcome. 

The code needs a major clean-up, and I even think a gradually transform
to C++ could be a very good idea.


--------------------------------------

Urgent:

FIXED (hacks replaced with hopefully better hacks)-That GetReallineY1 bug strikes again. When odd font height and scrolling
 to the top from last realline.

DONE (not very good, though) -Instrument needs to handle some saving/loading.


--------------------------------------

Most important list in short:

INWORK-Instrument config window.
-Proper midi-input.
-Get rid of the RAD: usage.
DONE-Fix up loading/saving to support the new features in 0.29
DONE-Continue song.
DONE-Delete Block.
-Delete Patch.

--------------------------------------

Most important list:

DONE-When editing fx, name of fx must come up too.

DONE-Window-title shows current playlist too. And another key-combination
 than ctrl+(a/f) switch to next/previous block in playlist.

DONE-Polyphonic aftertouch.

DONE-Midi fx clean-up.

DONE-Patch Properties have sliders for:
 -chorus
 -reverb
 -attack
 -release
 -cutoff
 -reconance
 -Var level.
 -Modulation

-Block-selector. (asl-requester)

CANCELLED -Undo track-width stuff.

CANCELLED -Think it could be a bit too risky saving when out of memory. Must
 at least do a lot of clean-up first.

DONE-Undo/Redo for trackvolume and trackpan.

DONE-load/save for trackvolume and trackpan.

SEEMS TO WORK NOW-Replace those asl-things with new procedures. Something isn't working
 properly.

FIXED-Bug. Strange things happens with the tracknames when undoing.

FIXED-Play song suddenly only plays the first block, and it does not
 change block to the first one either.

FIXED (not the quick solution, but I'm not quite trusting the solution used) -Error when fontheight is even number. (I see a quick solution coming up. :)

NO IT SHOULDNT-The Tracker_Windows probably needs a semaphore.

FIXED. No crash anymore! Ptask2Mtask.c may have syncronization problems with the player.
 Could be the reason for crashing.

FIXED -PEQ_calc.c suffer from overflow problems! (try to find some 64 bit functions
 on aminet)

DONE-Like it is now, it just make midi go at full capasity.
 I guess it could be smart to someway lower the traffic a bit.


DONE-Strongly suspect that the camd-buffer becomes full pretty quick
 with all the cc's, pitching, and such. Have to do some check.

 Guess thats whats happening, yes. The program does not crash
 when I don't send to out when treating lot of effects really
 fast. But unfortunately, doing the GetMidiErr-check doesnt
 work!

 It could be:
 -Driver, TPP driver may contain bugs...


BOOL FOR EDIT DONE-One bool for edit and one for recording.

DONE-Must come sound when adding notes.

FIXED -Bug. When pressing del in the first temponode-realline.

INWORK-Make a thread-save function for midi/etc. input.

DONE (insert) -Track insert/delete

FIXED (Right shift used for notes instead) -A crash in the key-bindings. Ctrl can ofcourse not be used for
 other than notes. Now, it is used for lots of block-stuff. Change
 to left shift instead.

FIXED (quick, and very good, solution)-A very serious bug when pressing undo. Often, the gfx-data is
 not there when selecting another block than the current.
 Don't know how I will do it yet. (ofcourse, there are various
 solutions to the problem. The best is to make a general
 up-drawing function, but I'm not shure if I bother doing that
 yet)

INWORK-Fix editing while playing

DONE-Play song

DONE (I hope)-Fix pitch playing bug

DONE-INWORK-Loading/saving

DONE -Continue play block/song

DONE (cut cancelled)-INWORK-cut/paste/copy block

DONE-cut/paste/copy track

DONE-name of the tracks is patch name for the track (for now, maybe for good)

DONE-instrument config window

INWORK-midi editing input.

DONE-transpose range/track

DONE-transpose block

DONE-keyboard note inserting stuff

DONE-blockselect window show current block

DONE - DELAYED (graphical zoom implemented now, so its not that important)-font select for tracker-window.

DONE - HALF DONE-Error-messages need to come in a new window. But it must also be
 printed to stderr, so that it doesn't have to wait for the user
 to press 'OK' (or something) for each error that appears.

DONE-Various tempo-stuff.

CANCELLED -Quitting stuff. (Note, when a sudden quit has to be done, just start up the program again with the temp-name as argument)

DONE-Try to make the program pass parameters via registers. (remove all clib/*s with proto/*s and compile up gc with parm=both)

SEEMS TO BE DONE-When changing number of visible lines, make shure that all tob-realline, bot-realline and num_visiblelines parameters are set correct.
 Do this when resizeing window and changing fontheight, and also when changing current realline.

-Do some check that PlaceFirstPos really is firstpos, sometimes.






-------------------------------

Notes for myself:

-Possible to have the patch properties window at the workbench-screen.

-Double click a playlist-element, gives a requester questioning how many times.

-Playlist listview shows length of element.

-Playlist window title shows total playing time.

DONE-Function to minimize all wtracks.

DONE-Use the two-charachter notes. Pretty easy to implement.

CANCELLED, didn't work-Have one font for header and one for editing.

DONE-Easy Swapping of tracks. (Left alt + s)

-Function to select what velocities are supposed to do. (instrument plug-in does this, maybe, no.)

DONE-Fix up the gc_alloc_atomic mess in trackreallineelemts.c.
 gc_alloc_atomic_uncollectable is now compiled into gc.lib.

CANCELLED -Not very good that keys like 'a','f' and '1' does anything. (accidential
 pressing of such keys is quite common).

-Bug. Backspace on a line where a note is ending, causes the note
 to end one line earier.

-While changing velocity/etc., play something so its easier to tune.

FIXED-WBlock name doesn't have to be saved/loaded.

DONE-Quantitize for input. A global changeable variable showed somewhere
 in the tracker-window. 0 is not quantitize, 0.5 is half line, 1 is line,
 2 is each second line, etc.

CANCELLED-The numeric pad can be used to place placements. While pressing right shift
 + 1, you place it to the first line. left alt moves it down. While pressing
 2 instead, you place it to the next/prev half position, 3 the next/prev 1/3
 position, and so on.

DONE-Delete block

-Delete patch

FIXED-A very ugly bug when notes and other things are placed on a line
 that is local zoomed, and when adding lines above it. There is
 nothing wrong with the notes placing, but something is wrong
 in the gfx-update routines somewhere or something.


CANCELLED-When the TRE needs garbage-collecting, or it is time
 to quit and save, those functions should be put in os-spesific
 functions that can signal its own task.

DONE, EXCEPT FOR DOING BLOCK INSTEAD OF SONG -Main-tempo function. (in the player.c file, the function multiplies
 time with a variable (counter/dividor type), easy as that. Must also check that time
 isn't the same as the last time.)

-Call the legalize-functions after a file has been loaded, to eleminate
 some possible errors if the temporary save-file function was called in the
 middle of handling an event. More such legalize-functions should be
 made also, like number of wtracks in all wblocks matches number of
 tracks in the blocks, number of reallines, etc. etc.

CANCELLED -When no more memory from GC, and the out-of-memory buffer is empty, use
 malloc() and after that again, AllocMem, just to be even more shure that
 the program doesn't have to quit and save in the middle of
 handling an event.
 VERY IMPORTANT! When the program has started using malloc and/or
 AllocMem, it must not use any of GC's memory-allocation functions anymore.
 (there might be a function to turn off gc's garbage-collecting, though)

CANCELLED -Do also fopen the temporary save-file when the
 program starts, to be shure that fopen doesn't fail when its urgent
 important and necesarry to have it open. Infact, the program could
 refuse to start if fopen-ing of the temporary save-file fails.
 

DONE-Legalize functions for ao. velocities,temponodes and fxnodelines.
 Remove fxs with only one fxnodeline, remove velocities
 that points to the start of the note, equal positioned
 fxnodelines and velocities, etc. etc.
 Like it is now, there is potensial for crashes. (not big chance, but
 the program is not ment to handle such cases, so everything could
 theoretical happen).

PERHAPS -Gliding scroll.

DONE -Functions for black boxes. (the boxes are very small now)

ISN'T NEEDED (EHEM)-Graphic refresh function.

DONE -Menues, telling what short-cut to be used and maybe some online-help.
 Include in parent-program.

CANCELLED -Keep track of max number of tracks. (pretty important (no, it isn't)).

DONE-Insert lines.

DONE-Zoom in/out.

DONE -Up/Down octaves.

DONE -Edit on/off.

DONE -c#3 and such notes.

INWORK-Function to set a note/etc. to start of line/half line/etc.

-Bug in PEQvelocities.c: When two nodes in a row has the same velocity,
 it sends out to of the same. (not very important)

DONE-Make a new PlaceSetFirstPos function that returns a place set to first.

FIXED -Bug in the player_calc file. (cant use 14 bits numbers for x)

-RangePasting doesn't scale velocity to fit the new tracks instruments maxvel.
 (don't bother until instrument plug-in system is implemented)

-FX-range is copied, but never pasted. Perhaps they shouldn't be copied either...
 (something has to be done, thats for shure).

EHM -When pressing a qualifier-key, a window showing the current keybinding-
 alternatives could show up.

PROBABLY NOT NECESARRY -Make an allocation function that can use GC even when not called from
 the main-task. (must check that it isn't called from the main-task allready
 to prevent dead-lock)

-As an option: Show time for each realline.

-Independent fonts for each wblock.

FIXED-When not on the first track and update (f.ex ctrl+q), the temponode-track
 dissapears. But it doesn't seem to do anything else though, so its
 probably not an important bug.




HTML Conversion by AG2HTML.pl V2.941126c, perl 5.00404 & witbrock@cs.cmu.edu