Features for 1.0 - updated 20030923
-----------------------------------

- integrate new JACK transport and synchronisation - also
  investigate MIDI clock, MTC and MMC [IN PROGRESS - rwb]

- LADCCA integration

- Change setPositionPointer calls to a mmapped model (gui will need
  its own timer to inspect mmapped file) [DONE]

- punch in record [rwb] [HALF COMPLETE]

- audio threading for file r/w access [rwb]
  o mp3 support
  o libsndfile support
  o improving ringbuffer and precaching performance for audio
  o memory speedups in the RingBuffer and using MappedStudio in process loop
  o caching waveform previews at PeakFile [rwb]
  o ringbuffer  [DONE]
  o drag and drop [DONE]
  o dynamic editing [DONE]

- tidy up audio parameter box [cc/rwb/gl]
  o audio VU meter needs to look cool (like ardour)

- multiple document interface (switcheable buffers, loading while playing) [rwb]

- request: notation segment expanding itself as you enter
           notes past the end of it

- Studio faders (MIDI and audio fader controls)

- look at other updates for RG manual [dmm]

- fix lilypond lyric duration bug [dmm]

- find decent home for event filter toolbar icons [cc? dmm?]

- completely rewrite tutorial for 1.0, using fewer/smaller pixmaps, better
  organization, possibly converting to LDP docbook format [dmm]

- Tempo ruler in main window: need control-ruler-like interface,
  ideally from control-ruler code.  This one is a lot more important
  than we've given it credit for so far, I think.

- native printing
  o adding fluff and nicities to printed staves
  o getting mapping working for feta TT [DONE]

- notation
  o staff connections above/below (bracketing)
  o bar styles: double, repeat -- integration with repeating segments how?
  o at least be able to draw segno, 1/2-repeats etc

- menus throughout
  o check that the accelerators don't clash
  o where necessary, reorganise and rename to make sure like functions
    are together and clearly described -- for example, the notation
    Transforms menu is not at all ideal
  o relatedly: make sure translators have time/awareness of changes!


Completed
---------

- playlists (essential for demos!) [DONE --gl]

- request: import studio from file [DONE --cc]
  
  dmm - stubbed out in GUI, but I've had no time to figure out how to
  implement it, and what time I might have in the forseeable future is better
  spent hacking on the Lilypond bugs, so either someone finish this or we
  should just dump it and forget about it, though I _do_ still think it's an
  excellent idea.

- banks/variations [cc] [DONE] [NOT QUITE DONE AFTER ALL - just noticed
  variation toggle status isn't being loaded from .rgd file correctly]
  [DONE now]

- liblrdf support for LADSPA plugins - a hierachy is provided in the plugin
  dialog [cc]

- named controllers for studio with associated bankeditor-like dialog [rwb/dmm]
  [DONE]

- song markers - jumping to, creating loops between [rwb] [DONE but no looping]

- control rulers [gl/rwb] [GETTING THERE/DONE]

- porting to shared memory experimental branch [rwb/cc/gl] [DONE]

- metronome [DONE - rwb/cc]

- general file merging [cc]

- adding instrument selection menu to tracks menu [rwb/gl] [DONE]

- document event filter dialog in RG manual [dmm] [DONE]

- event filter dialog [dmm] [DONE]

- implement Pitch in lilypondio in parallel with existing methods, so we can
  eventually wean it off of the junky code it currently uses. [dmm] [DONE -cc]

- request: triplets of more than three (erm, quintuplets?)
    [ALREADY DONE - DOCUMENT?]

- native printing 
  o printing resolution
  o create mapping files for commerical available fonts (so one can
    use them in RG)

- look at ways to avoid having multi-voice music completely fuck up the
  lilypond export (Chord class, plus possible measure by measure voice
  resolution/separation algorithm I've been thinking about in spare moments) [dmm]
  [This is not exactly completed.  Certainly no "voice separation
  algorithm", which would be interesting in itself regardless of
  applications for Lilypond.  But I think it's about as far as we'll
  get for the moment.  It's now pretty good with scores that actually
  display well in Rosegarden.]


To be ignored
-------------

- request: use studio from file instead of default [doesn't make any sense]

- ALSA ports [cc]

- request: importing lilypond after manual hackery?
  dmm:  No, I don't think so.  I saw the exchange Hans had on the
  lilypond-devel list some time ago, and this feature would be extremely
  difficult to implement.  If Hans has been working on it all this time in
  secret, then it might make 1.0, but otherwise there's not a chance.

- request: integration of fluidsynth [dmm]
  what does this mean exactly? muse's integration means bundling of
  fluidysnth source code - we don't want to go that far but bear in
  mind that this could mean as little or as much as we want [rwb]

  I haven't really looked into it just yet.  I've been lead to believe that we
  can just -llibfluidsynth1 and then use the API to talk to the thing, but I
  haven't determined whether that means talking to a running client, or
  effectively running an interfaceless client ourselves.  Then there are
  several Jack-related issues to work out no matter what the answer is.  The
  ultimate aim is to be able to provide a GUI for loading/unloading soundfonts
  conveniently and setting up other fluidsynth parameters.  It may all prove
  either un-doable or something best left for after 1.0, but it's worth a look
  I think.  It may be a quick hack. [dmm]

  Chris and I talked about this a bit more and while we'd like closer
  fluidsynth integration it'll probably mean we should talk more 
  closely with the fluidsynth team and get their support.  There are
  things that both of us dislike about current implementation. [rwb]


Bugs
----

Many - but additional ones are:

- audio cutting and moving is right off
- select a load of notes in the matrix view and quantize - the
  view screws up quite a bit.
- can't move the start time of a segment
- Repeating segment ghosts when moving them.
- segment preview ghosts when moving them
- opening files during playback
