todo.txt

See the release checklist on the wiki:
  http://www.audacityteam.org/wiki/index.php?title=Release_Checklist

Residual things still in the file from 2003 but not yet done:

* Allow the user to create keyboard shortcuts for Effects

* Support custom cursors on Mac.

* A master gain control, if at all possible

  - Exporting should take into account mute and solo?

* Zooming using mousewheel - obviously this shouldn't
  be the only way to do it, since not everyone has a
  mousewheel.  When should it be used, then?


* Automatic Vertical resizing of tracks.

  I think that tracks should expand proportionally (vertically) on
  a resize.
  I think that when you open a project, auto-vertical-track-resizing 
  should be on by default.  It only goes off if you specifically 
  drag the _bottommost_ track and make it bigger or smaller.  (Then, 
  how should you turn it back on again?) 

* Add an Audio menu with items like Play, Stop, Record, Pause,
  Loop, etc.?
* When a selection is readjusted by grab&drag, the release of the
button at outside of the track panel could mean "undo".
Similar for all other operations.

* dragging the selection edge out of display starts moving the
wave, but moving could start 100 or so pixels before the display
edge so that the coming wave can be seen


* "Smart Record"

  Includes higher-quality recording (because of extremely limited
  GUI operations), timed recording, large VU meters, and more.
  All of the recording options that are too complicated to do
  with the normal record button (in the future: volume-triggered
  recording, record directly to MP3/Ogg, etc.)

* A bars/beats time ruler and snap-to bars/beats.

  (Karl, if you want to submit a patch, it's fine with me,
  as long as it's complete and clean.)

* In the Timeshift-tool mode I propose making [ctrl+mb1] do
"Align track to cursor". Since they're only one clip per track,
simply clicking anywhere in to the track should perform that function.
Only the Selector tool can set the cursor, right?
[ Checking the mouse button operations through should be done.
Multitool should be considered as a base for the default mode.
Some operations would work always, like making a selection.
Then various tools would change function of some of the mouse
buttons. Without the multitool the Audacity is very annoying to
use, IMHO.   JS]

* When drag selecting the tracks out of track window, the window should
scroll and reveal more tracks.


* Maybe post 1.2 we also need multiple projects in the same window
feature: either by (i) subwindows inside the main window, a common
toolbars, (ii) no subwindows but the project is technically behind
a pointer which can be changed from a "projects" menu, (iii) different
projects are in tabbed windows, as commonly used in 3D graphics
software. Tabbed windows could also contain preferences/controls for
Audacity and for all plug-ins. That requires a way to build the tab
pages on-the-fly. Certainly post-1.2 stuff.

* More built in code for automated testing, not sure exactly what,
ideas for how to do this would be welcome.
[ It is more like continuous research job. Leave to post-1.2 version. ]

* Related to this, a self-image-capture class. This puts the gui through
its paces, capturing .pngs of toolbars, sliders, dialogs according to
an external script file.  This makes updating the images in the
documentation much easier.
[ Third party screen capture program which accepts remote commands
via a named pipe, say. Audacity would then have a way to send one
command only and a way to send commands repeatedly (n times per
minute). ]

* Half a dozen nyquist scripts, annotated and explained in the
Audacity documentation.  Nyquist looks an incredibly powerful
feature, but I (JKC) haven't a clue how to do some of the simplest 
things with it.

* Track label could be changed to look like what is in commercial
multitrack software. More compact, that is.  JS.

  [I don't think we should necessarily copy the commercial software
   in this regard.  I hate most of their UIs because they force me
   to memorize what tiny little symbols and colors mean.  I like
   my UIs to be "discoverable".  DM]
  [Agree with DM about not simply copying and discoverability.
  Agree with JS that more compact ways to do Track Label need 
  investigation.  Screen real estate is valuable.  JKC]

------------------------------------------------------
 Unclear - what are these?
------------------------------------------------------

* In zoom mode, scrollwheel click acts as middle button click, but when
dragging with it, it behaves strangely (I couldn't figure out the logic)
Also rmb dragging behaviour is strange. As lmb dragging is intuitive, I
assumed that dragging small area with rmb would zoom out a lot,
and dragging bigger areas would zoom out less.

------------------------------------------------------
 More far-future ideas
------------------------------------------------------

[JKC] L&R <-> Average+Difference display. This way you can see 
what a stereo track gets mixed down to as mono, and the stereo 
content separately.

[JKC] Split Track into band pass filtered components. Useful 
even just to view a waveform without background mains hum.
[JS] Spectrogram would do that already?  
[JKC] No.  This is a split of the actual waveform into two 
components which sum to the original.


[JKC] Sound-diff: Ability to compare waveforms and have this 
displayed graphically.
[JS] Can a plug-in operate on two tracks and generate preview to
third track? Or replace the second track with the result.
It would be essential that the subtraction between two tracks
is made interactively so that user may time-shift the waveforms
and manually find the alignment between the tracks.
This may go post-1.2 if it requires changes to plug-in system.
[JKC] I have in mind something more like Unix diff that compares 
and aligns waveforms.  Useful when you have several takes of 
the same track.

* Allow UI while importing 

-----------------------------------------------------------
Here's an older list of items.  Things we've already done
have been removed, so these are all still valid ideas.
-----------------------------------------------------------

- Upload some icons for people to use with
  KDE, GNOME, WindowMaker, AfterStep, BlackBox...

- Do "preflight" check of disk space before editing
  operations.

- Check for existence of project _folder_ when opening
  a project - help the user find it if it's not there.

- Smart Record dialog
  - Control latency
  - Use as little CPU power as possible
  - Detect dropped samples using many different methods
  - Visually show buffer sizes
  - Multi-channel record
  - Show remaining disk space

- Pre-roll and post-roll: amount to play before and after
  a selection (see DG Malham email - Please add date so can
  check the archives for it.)

UI::
- Turn off autoscrolling if the user manually hits the scroll bar.
- Label the "Left" and "Right" channels!
- Select None
- Small toolbar option
- Create our own progress dialog:
  - Improved time estimate
  - Stop and cancel buttons (not the same!)
- A "mini view" of the whole project, which shows what part
  you're working on, etc. like a lot of other programs have
- Visual track dragging
- Split at labels
- Improve Save prompt dialogs: use "Save", "Don't Save", and
  include the name of the file.
- When a user exports the entire project (in any format)
  and the export doesn't require any mixing, mark the project
  as not dirty (i.e. don't ask if they want to save it).
- Put close box in toolbar.
- Make ID3 tag dialog optional when saving MP3s
- Import... should be able to import Audacity projects
  and Audacity project files
- Adapt text color - should be white by default if
  the background color is very dark
- Invert selection (for now, until we allow discontiguous selections,
                    this should mean two options: select up to selection,
                    and select after selection)
- Legend (Ruler) for pitch and spectrum
- A way to turn a track into a loop.  It would be cool if the
  display showed the "real" waveform once, and then "ghosts" of
  that waveform repeating forever...  (We now have a loop-play
  using shift-play which goes some way to answering this request).
- Scrubbing, where you here the track speeded up as you drag 
  the play marker.
   
Import/Export::
- Import/Export markers in WAV files (like Goldwave does - 
  see email from Shane M.  - Please add date so can check archives.)

Effects::
- Add real-time effects directly to tracks (see Ezequiel 5/10/2002)
- Freeverb 3.0 (and better interface)
- Smart Mix (like Quick Mix but guarantees no clipping)
- Cross-fade (smooth between two tracks)
- Native port of Freeverb (ideally optimized)
- Save VST plug-in parameters to a file, or at least
  remember the last settings

-----------------------------------------------------------
Future:
-----------------------------------------------------------

- Speed issues when you have a project of 5 or more tracks
- Edit markers
- discontiguous selection
- visualization window: VU meters, equalizer, continuous waveform, oscilloscope
- Mouse scroller should vertically scroll project (Um, isn't it assigned
  to zoom-in/-out now?)
- User-adjustable fonts so I don't have to recompile just to get the
  ruler looking decent and the track label fitting.

arch-tag: 391c81dc-d7dc-48ea-9aec-98f4c9728be7

