ARDOUR TO-DO: $Id: TODO,v 1.24 2000/11/04 16:35:47 pbd Exp $
----------------------------------------------------------------------

Documentation & Build Process
-----------------------------

* build instructions are incorrect w.r.t libs building (need to
  autogen/configure them first if they come from CVS, and in the right
  order). or something like that. maybe.

Audio Stream
------------

* check on consumer card recording operation (playback is OK)
* figure out a way to apply a de-click envelope whenever we start
  and stop the transport. it could be like the xfade stuff.
* need to ensure that cards like the Hammerfall are really set
  to the correct sample rate when connected to an external
  clock source.
* can sometimes lose sync with audio h/w during xrun (xrun recovery stuff)
* xfade out not working anymore (post-float) ????
* MCD::connect_to_tape() should reset audio interface to
     required sample speed

Metering & Monitoring
---------------------

* meters not running during playback
* over meters don't operate during playback - fix ???
* possibly allow max-level adjustment at run-time
* some oddities in channel assignments: sometimes, output channel
      assigns don't seem to work
* think about input monitor requests and record enabling,
    in particular when bouncing/mixing down tracks to 
    channels, and the resulting higher request count for
    a given channel
* switching h/w monitoring back on after a session of
    s/w monitoring with bounced tracks causes a buzz. it
    can be removed by changing the channel assignment,
    say, of the one that was being altered. so it probably
    has to do with a missing complete_silence_on_channel().

GUI programming
---------------

* fix bug in Gtkmmext with wrapping on Gtkmmext::ClickBox
* allow spaces in tape names (convert internally, and use displayed
     version in GUI)
* tape unload leaves track UI's in an inconsistent state
* slight tidy up of the "New Tape" dialog
* add sample speed to new tape dialog
* use the same menubar for all windows ?
* WM close on subwindows should not quit

Human Interface Design
-----------------------

* make Rehearsal work
* consider the fate of one-touch record
* shift/alt-click on location prev/next should NOT locate
* song mode autonames for locate points
     * intro, verse1, verse N, chorus, bridge, outro/tag
* autoloop button doesn't label unique location as autoloop
* takes should have tags

Save/Restore
------------

* bomb-proof locations restore operation
* full-state save/restore
     - channel assignments
     - locations
     - track tags
     - take tags (when implemented)
     - button settings
     - EDL's

MIDI Machine Control
-----------------------

* open port O_NONBLOCK so that we don't block if the port is in use
* handle stupid Mackie TC buttons
* send MMC commands to get external MMC gear to sync with
    ardour's state ...
* allow control (MMC/Local) selection to work
* make sure that MMC ID works

Clock Display
-------------
* clock modes:
    elapsed
    remaining
    time since location start
    time till location end

Program Design
--------------

* think about abstracting input/output objects
* resolve relationship between GtkWaveForm, GtkEDLWaveBuffer and seq.c
* remove unnecessary GtkWaveForm files
* move away from "tape" nomenclature

EDITOR, etc.
------------

* prevent any and all edits while transport is moving
* figure out how to do moving ants (from sweep?) for inserts
* insert/xfade stuff
* plugins per piece stuff
* time ruler
* zoom display
* cursor display
* selection display
* "use selection to define location"
* "use location to define selection"
* how to audition regions ?
* EDL saving process (when, where, to what)
* drop selection after an edit includes it (and find out why it 
  doesn't, if it doesn't and should have)
* find out why cursor and mark are drawn when they are not defined
    (at the frame 0)
* EDL - merge pieces in both replace and insert, so probably in
* after any edit, force tape to flush it playback buffers (a locate
      will suffice)
* general expose/redraw clipping problems
* general cursor drawing problems (especially length-related ones)
* group buttons not working
* how to sync-select ?
* color editor
* colors for pieces
* if the cursor is visible, don't scroll when its set
* hseparators are not unpacked and hidden when reloading a tape
* "snap to grid" for selection process and for inserts

