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