ARDOUR TO-DO: $Id: TODO,v 1.187 2003/06/24 04:38:59 trutkin Exp $
----------------------------------------------------------------------

WAITING FOR GTK+/gtkmm 2.0:
---------------------------
general gtkmmext::ui solution to delete_event in recursive Gtk::Main::run()
float<->ulong conversion in a GtkAdjustment (GTK2 uses doubles)
   * fix the problems caused by range (float) limits on Locations.
figure out how to get frames/timebars to extend to max_frames.

UNDO ITEMS
----------
track height?
capture?
I/O connection state, etc.

BUGS
----

initial Tempo marker can be dragged
Duplicate region names

automation editing
-------------------
  - cut-n-paste curves
  - create new points when clicking on line (not just off the line)
  - implement pan mode
  - need a way to choose which curve to select
      - also which redirect curve (per-track?)
  - meters should reflect pan/gain automation

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

thread questions
----------------
    - which thread should:
          - change playlists on a diskstream?
	  - change diskstreams on a track? (we don't support that in the UI)

    - can we reliably construct a copy of the RT state, instead of 
         using locks everywhere?

-- gerard --

Region gain has some bugs. They dissappear when trimming. Don't always 
playback correctly. 

I had some strange things with a chunk where the last region seemed to use 
the audio file as a peakfile. It played back correctly, but it showed up 
frames_per_peak too large.

-- gerard2 ---

Automation.
I see that automation editing is in the TODO.  How about the whole deal: 
Changing it during aplay. relative or absolute, latch (is that the word) or 
momentary override etc
Is this for >1.0 ? It is not that important for me but maybe for some 
folks...

Better metering configurability. Post/pre etc. 

Gui interface consistency.

more keyboard shortcuts for f.i. (are they hard to add?):
	-arrow keys to move selection from region to region
	-seperate region. This one can be the same for split region, if there is 
	 a range selected seperate, if not split.
	

Editcursor and playhead draghandles should always be visible on the top or 
bottom of the pane.

Should playhead also snap to grid?

Adding/removing snapshots through snapshot pane.

I would prefer to move the pre and post roll adjustments to the options 
menu, and have a start/end/duration of selection clocks.

A way to deal with misbehaving plugins. They shouldn't be able to freeze 
ardour.

What is the current (and planned) edit-group functionality? It doesn't seem 
to much.

-----

make use of transients a run-time option
panning for export

pan changes are not interpolated !!!GACK!!!

mute automation event
plugin automation event

region length/end editor clocks don't modify position

should we allow N-channels regions to be inserted into non-N-channel routes?
hscroller: central marker stays in one place.          

auto-crossfades are unreliable/hard to predict/confusing
reset declick curves when doing a region copy (only if auto-crossfading?)

audio clock editing
   - make drag work again
   - use tick field

post fader plug/inserts get into a very inconsistent state wrt active/not active
mixer strip widths are not persistent across state save/restore
automation-read updates in mixer-strip in editor
don't initiate MIDI binding if there is no MMC control
export to audiofile contains clicks/pops even with no SRC/dither (FIXED?)
timefx region length error (check back with audacity crew)
send gain control is clicky.
copy of selected regions doesn't do anything
some regionview names don't seem sensitive to canvas events
splice mode needs to work correctly all the time, at the right times
removing a port then adding a new one can cause duplicate names
plugin automation buttons don't update from a plugin signal
editor selection in general
how to handle multichannel selections
apparently selected location on startup of locations window, or
     when creating new location from selection is *not* selected
source/region naming/region list display

LONG TERM CHECKING
------------------
RT-ness of all RT-thread STL usage

GUI DETAILS
-----------
Remove regions from region list
Some location window ops need dbl click, some don't

NECESSARY FEATURES
------------------
master outs
automation editing

DESIRABLE FEATURES
------------------

like, totally rock, dude.
make rulers hidable/reorderable
set of useful click sounds
use snapshot mechanism to provide persistent undo/redo
     - needs better integration of automation state
        into session state.
duplicate-with-gap
panner multichannel backend code
select new port display when its created
copy/paste io configurations
use control outs in ardour/gtk
a way to hide rulers selectively
Better temporal navigation
new region via plugin.
digital input trim.
indicate loop/punch status for location markers.
possibly allow metering max-level adjustment at run-time
use multi-loop-take ala Samplitude/PT
song mode autonames for locate points
     intro, verse1, verse N, chorus, bridge, outro/tag
different clock display modes:
    elapsed
    remaining
    time since location start
    time till location end
handle missing audio sources when loading
option/action to snap selection to zero crossings
pitch shift?
Midi-CC control for the panning.

A control room mixer strip. With just a fader for the auditioner level, its 
   connections. 
   Some global solo routing buttons and a sine/noise generator to test all the 
   connections.
   Possibly a talkback input and control.
   Pretty much like the equivalent strip on a analog console.

CHROME
------
make prompters look nicer still.
make ladspa plugin selector look nicer
don't popup "no group" when there are no groups (mixer strip).
fix bug in Gtkmmext with wrapping on Gtkmmext::ClickBox
make region editors look nicer
region editor audition button doesn't pop up after audition is finished
allow same color for all streamviews

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

[ These are JACK TODO's ]

* need to ensure that cards like the Hammerfall are really set
  to the correct sample rate when connected to an external
  clock source.
* ::connect_to_session() should indicate a problem if the
    sample rate is wrong ....

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

* handle stupid Mackie TC buttons
* send MMC rec-enable messages
* allow control (MMC/Local) selection to work
* make sure that MMC ID works

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

* "use location to define selection"
