0.9.5 tasks
===========

o Process management
  - killing older copies of the sequencer and children
  - starting and managing JACK if requested in configure options

o File loading/importing
  - improve performance  [DONE]
  - MDI
  
o MTC/MMC - transport awareness
  - we're now sending Midi RealTime sequencer control messages
    and adding infrastructure for real time clock messages
  - MTC will be in addition to basic real-time clock
  - MMC control can't yet be tested at my end [CAN WAIT - LOW PRIORITY]

o Audio
   - hardcoded format segment values [BETTER but not finished]
   - BWF format writing/reading
   - multithreading
   - autosplitting
   - libsoundfile support (LSFSoundFile class?)
   - MP3/OGG support
   - exceptions and return values
   - check disk space on audio record start [ALMOST DONE]
   - improve Audio VU meter
   - get record fader level working at sequencer
   - fix audio drag and drop [NEVER WORKED - GET WORKING in 0.9.5]
   - make outofspace.rg sound like something reasonable
   - copy/paste plugin controls

   - fix endless sequencer recording on GUI crash [DONE]

   - JACK in soft mode problem?

o Audio busses and routing
   - multiple audio record arm [HALF DONE - for 0.9.5]

o Audio looping (doesn't work)

o Audio/MIDI looping and start position (performance)

o Toggle record mode for punch in/out [HALF COMPLETE]

o MIDI export broken for key sig and SysExs [FIXED by Pedro]

Smaller stuff
=============

o Fix segment audio drag and drop

o Drum bank selects and different MIDI drums

o Matrix tools - cut and join 

o FEATURE - double/half speed event selection in Matrix

o BUG - Plugin calls() during playback causing usual problem

o Matrix Hypereditor [PENDING]

o audio previews with minima [NOT FOR THE MOMENT]

o Complete and make sure segment edit shortcuts are consistent 
  across segmentcanvas and views (click/copy/multiple segment drag)

o AudioManager and AudioFile commands [CAN WAIT]

o Prove and improve simultaneous audio and MIDI track performance
  Improve performance:
   - file access
   - maths in JACK and MIDI loops
   - memory usage and access
   - build without debug and test

o Get Segment joining working

o Realtime downsampling buggy (8 bit)

o First time run up go to settings and walk user through the
  MIDI and Audio setup to help them understand what they're
  doing.

o aRts 1.0.0 support

o Audio noise eliminator - recording

o Segment colouring


Completed for 0.9
=================

o Audio 
   - new fader widget [DONE]
   - recording stereo WAVs [DONE]
   - audio connection management [FIRST PASS DONE]
   - panning [DONE]
   - jack process tidy up (Bob Ham inspired) [DONE]
   - notify disk space available on audio path [DONE]
   - countdown dialog for audio recording [DONE]
   - plugin bypass [DONE]
   - plugins matching stereo/mono instruments [FIXED]
   - seperate audio level sends for stereo monitoring [DONE]
   - get Studio reapplying working / fix bugs [DONE]
   - stereo vu meters (0dB level = 1.0f etc) [DONE]
   - n jack input routes [DONE]

o ALSA client detection bug on laptop - going from no clients
  to one client causes big loop of death.  Appear that alive()
  is getting sent twice from the GUI..? [FIXED]

o "Revert file" option [DONE]

o selection of ALSA recording device [DONE]

o extra cascade level in Instrument selection menu [DONE]

o Segment labelling [DONE]

o File loading blank-out [DONE as part of file loading]

o Track Moving [DONE]

o Track Deleting [DONE - might be bugs outstanding]

o Instrument/Device naming [CC - done]

o TextFloats for Rotaries [DONE]

o Finite audio recording time - check for available disk space [DONE]

o BUG - changing audio file path doesn't work [FIXED]



0.8.5 completed
===============

o MIDI Panic button [DONE cc/rwb]

o BUG - recorded audio file inserting to AudioManagerDialog before it's ready
  [DONE]

o ALSA seq bug on incoming events (infinite length) [FIXED]

o MIDI Event filters [DONE]

o Banks/Programs Editor Dialog [DONE]

o re-poll ALSA clients every so often [DONE]

o realtime MIDI filtering - what events are forwarded [DONE]



Completed for 0.8
=================

o Matrix tools - multiple resize [DONE]
               - wire up quantize [DONE]

o Performance
  - MIDI playback [found a big collisions() problem that's now commented out]
  - fix MIDI recording [FIXED]
o BUG - Matrix width bug [DONE]

o BUG - Matrix pointer width [DONE]

o FEATURE - modify composition start and end markers [DONE]

o BUG - repeating segments to real copies is broken [DONE]

o BUG - velocity dialog to be set to average velocity of selection [DONE]

o BUG - empty repeating segment hang [DONE]

o FEATURE - segment guides for placement [DONE]

o FEATURE - turn repeats to real segments [DONE]

o FEATURE - set EventSelection velocities [DONE]

o Recording controller changes through StudioControl - remove
  the ugly signal paths for sendMappedStuff [DONE]

o Matrix position of events at high zoom levels [FIXED with fiddle factor]

o Make AlsaDriver send NoteOn(0)s as well as NoteOffs [WAITING FOR FEEDBACK]

o Matrix view auto scrolling, fix scrolling [DONE]

o Chorus, Reverb, Resonance, Filter, Attack, Release MIDI controls [DONE]

o New rotary control widget [DONE]

o Repeating segments and composition end marker [DONE]

o Splitting Segments isn't clearing out the original [DONE - event list bug]

o Matrix auto-paging during playback [DONE]

o Plugins - tidying up unused libraries [WORKS but maybe not COMPLETE]

o Send ALSA notes() rather than using note offs [DONE]

o Fix EventList - add eventlist.rc [DONE]

o LADSPA realtime plugin support [DONE]

o Audio volume faders - studio concept on sequencer [DONE]
o Sysexs MIDI file in/out

o Segment previews still buggy [cc FIXED]

o More MIDI events at Composition level. Sys Exs, Program Changes,
  Controller changes etc. etc. [DONE at composition level, some
  bugs and MIDI import/export to sort out]



Completed for 0.2
=================

o sweep selection on Matrix [DONE]

o Matrix tools - sweep selection   [DONE]
               - multiple movement [DONE]
               - unselect/reselect [DONE]


o Sweep selection on SegmentCanvas [DONE]

o Event list [DONE first cut]

o admin directories and INSTALL scripts should tally [DONE]

o MIDI export is broken [No it's not, NoteEdit's MIDI import is broken]

o Repeating Notes bug [FIXED]

o Set tempo event to length of segment [DONE]

o Audio VU meters [DONE]

o Audio file playing feedback - async events and how to
  operate outside the ALSA timing loop [DONE]

o VU meters show real time audio signal [DONE]

o Fix/Complete repeating Segments [DONE]

o Sync audio and MIDI [using JACK sliders]

o Get first fetch audio working - partial segments [DONE]

o Fix Audio Segment splitting [WORKING - also fixed a scanTo bug
  as part of this]

o Audio path fixing - dialog thing to remap paths [DONE]

o Some state we're getting into with mute buttons and file saving
  [FIXED]

o Saving RG files with audio [DONE]

o Saving RG files should always append .rg extension [DONE]

o Audio file selection dialog [DONE]

o Audio preview on Segments [DONE]

o Create WAV files [DONE]

o call() stop() [DONE]

o Fix configure to omit aRts when building for ALSA and
  vice versa (proper substiutions in Makefile.am not with
  ifdefs) [DONE]

o Segment Zooming - (midi and audio previews of Segments) [DONE]

o closing audio clicks [DONE 16bit - 8bit still dodgy]

o Audio file indexes to RealTime incl. saving and loading [DONE]

o Fix latency dialog with audio allowances [DONE]

o Get recent file list working [it is - just not for me?] [NAI]

o Segment paramters and modifiers - looping of Segments, quantisation
  [DONE]

o Looping marker set from file load/top level - Looping
  set from Clients - Looping BUG crashing sequencer
  Looping memory [DONE]

o stop crashing on Segment movement to blank tracks [DONE]

o Event playback on selection movement [DONE notation]

o Changing Composition length [DONE]

o Track addition/deletion and moving on TrackButtons canvas
  [gl PARTIALLY DONE]

o Jumping vertical scroll thumb on playback [RosegardenCanvasView::slotUpdate]
  [FIXED]

o Instrument name when pop down instrument list [DONE]

o "Split silence" function to automatically split up an audio segment
   into a number of segments when the amplitude falls below a given
   threshold. [BUGGY]

o Audio file open dialog - with Guillaume's DnD [DONE]



Completed for 0.1.6
===================

o JACK experimental driver
  - click on sample start (resampling probably required) [DONE]
  - multiple sample (Segments problem?) [FIXED]
  - audio recording [DONE]
  - partial/overlapping audio files playback/start index movement [DONE]

o Playing Audio files broken - get seeking working [DONE]

o Segment start and end markers [cc - end markers done]

o bar buttons and loop ruler repaint [DONE]



--

Completed for 0.1.5
===================
- Velocity-coloured Matrix Events [DONE - not sure if it's in the right place]

- Saving the Studio to XML [DONE]

- Solo [DONE]

- Metronome Channel/Instrument [DONE]

- Latency dialog [DONE]

- Sequencer's getMappedComposition for sync and async is
  suddenly bombing out post aRts/ALSA split
  [DONE]

- Recording Segment doesn't appear anymore
  [FIXED - typo]

- Recording Segment ghost is left - extends wrong side
  [FIXED]

- Instrument naming on InstrumentButtons
  [DONE]

- MappedDevice transmission is breaking occasionally
  [HOPEFULLY FIXED in MappedDevice itself]

- Multiple devices with multiple bank/programs
  [DONE]

- bigger position pointer
  [DONE]

- trackbuttons and segmentcanvas tied scrolling
  [DONE]

- missing events in playback [FIXED - RealTime timestamps issue]

- Running key up PianoKeyboard should produce note run [DONE]

- quantisation problems - shifting notes further away from where
  they should be [CC fixed]

- Instrument list labels - change the Instrument and the old
  label is stored behind the current one when a program is
  active [FIXED]

- segment movement is broken? [FIXED]

- commandExecuted signal for tempo dialog [gl FIXED]

- quantize to only quantize [cc DONE]

- copying segments quickly [DONE]

- horizontal zoom would be really useful [cc DONE]

- Last Note seems broken again [FIXED]

- MidiNote sending from Matrix view [DONE]

- Finding next/previous tempo changes
  [DONE MODs to TEMPO DIALOG]

- Set a default tempo and erase all other tempo changes
  [DONE as part of TEMPO DIALOG]

- ALSA:
  - ffwd/rwding/looping [DONE - still not wonderful but will do for mo]
  - MIDI recording timestamps [DONE]
  - recording timing is wrong - bars are displaced by count-in [FIXED]
  - hanging notes on stop [DONE - VOICES_OFF type controller call and
                                  processPending()]
  - configure [DONE with GL]
  - start-up bug [FIXED?]
  - metronome broken with ALSA? [NO - just wasn't implemented - NOW FIXED]
  - MIDI THRU to current selected instrument [DONE]
  - Instrument label on InstrumentParameterBox [DONE]
  - ALL Synth instruments have the same channel occasionally! [???]

- Segment labelling [DONE]

- Sharing keyboard accelerators cleanly across all child windows
  [DONE]

- Client (Notation/Matrix) labelling as per Segment/Instrument/Track
  [DONE cc/rwb]

- Starting playback in middle of long Events should actually play them
  ["firstFetch" DONE]

bug fixing

o KDE3 bug fixes
  - track height [DONE]
  - track button update [DONE]
  - record button colour

o KDE2 compatability checking with Mandrake 8.1 [DONE]

o ALSA and ARTS testing on both KDE platforms [DONE]

o update README and INSTALL with latest instructions/features [DONE]

o Splitting recorded Segment and Moving Segments (Segment::erase()) [FIXED cc]


Completed for 0.1.4
===================

- Instrument display - aRTS environment, MIDI/Audio assignable
  parameters [DONE]

- autoload file, first pass [DONE]

- Looping doesn't pick up first loop events cleanly [BETTER]

- Start device specific controllers from XML (pan etc) [DONE]

- Finish vu meters - colours and peak hold [DONE 15.02.2002]

- Some MIDI files won't load [DONE 14.02.2002]

- Metronome [DONE]

- Sequencer memory leak [DONE - note off Events not being deleted]

- rg file saving is still broken for some trivial cases (Segments wrong size)
    [FIXED with recent segmentcanvas changes]

- Bar lines widget (similar to TrackButtons).
  Implementation to allow for:

  - Looping [DONE]

  - Start and End Markers for Composition growth and shrinkage [ALMOST DONE]

- basic MIDI recording [DONE]

- Write Rosegarden tempo events to exported MIDI [DONE]

- MIDI output VU meters and Transport feedback [DONE]

- Audio file support in rg file. [DONE]
  Audio WAV file header authentification [DONE]
  Audio Segments [DONE]
  Audio playing proof of concept [DONE]
  Audio recording proof of concept [DONE]
  Sequencing of plain Audio files [DONE]

- Segment movement resolution [CC]

- Recording segments - trails [DONE]

- tidy up getSequencerSlice and MappedEvent [MappedEvent DONE]

- Allow negative time on segment canvas and transport [DONE CC]




-------------------------- MUCH OLDER STUFF ----------------------------

Pre 0.1.4 work
==============

o Transport GUI with time, buttons and more features [DONE]

o Recording mechanism
  - mute and record buttons on tracks   [DONE]
  - arm tracks for record               [DONE]

o Audio [See above]

o Handle Meta Events at the Editor and Midi levels - write then out to file
    [HANDLED - but more work eventually required to support at MIDI file
     and internal rep level]




Task list from 18/19th August meetings (and a few more added since)
===================================================================

Aim: "working sequencer, framework for instrument management".

References in round brackets are to 0.1_planned_features.txt.

 1. MIDI file writing (A10)             [DONE]
    - [DONE] :  Composition to internal MIDI REP processing
             :  Output File Creation
             :  MIDI File Header Writing
   
    - [ DONE] :  Meta Track Generation
                       :  MIDI Byte out processing

 2. DCOP API for sequencer process
     - getSlice (MappedEvents)          [DONE]
     - stop/start/play/record           [DONE]

 3. Componentising Sequencer application from earlier
    prototypes (fleshing out the basic features)     [DONE]

 3. Skeleton Transport controls and first keyboard mappings. [DONE]

 4. Position pointer on GUI trackseditor. [DONE]

 5. Remove MappedComposition from core/ and put
    into RosegardenSound lib  [DONE]

 6. Ensuring MIDI file conversions are correct (read MIDI,
    save as RG, plays OK) [ DONE ]

 7. Tightening up Sequencer loop - make playback more efficient [DONE]

 8. Ensuring that Tempo is used correctly throughout Editor and Sequencer. [DONE]


0.1 Known Bugs
==============

 - MIDI file tempos aren't working yet [FIXED]

 - occasional gui/sequencer hangs while DCOP call in progress [FIXED]

 - sending All Notes Off to aRts when they're already queued?
   More a feature than a bug - waiting for aRts to support it. [CAN'T YET SUPPORT]

0.1 Fixed Bugs
==============

 - playback currently stumbling and poor [FIXED - note off queue was filling up
   and getting all out of shape]



