Saturday, September 5, 2009

- Added some boilerplate code for sorting/enumerating/adding/removing lines/bars/chords/stems/notes.
- Lines contain set of elements which (mostly) have known types, but not wrapping objects (Notes etc). I'm not keen to go breaking existing code, so I'll let the lines hunt down wrappers the long way.
- I think I need to get rid of distinction between grace note and normal note types for now since normal notes in long tuplets can be as small as grace notes. Code can try to figure it out after detection is done.
- Todo (later): since a positive template for one element type effectively acts as a negative template for all other types, I should store character templates when user confirms glyph set (but not actually try to match those characters afterwards).
- A chord is actually comprised of a set of stems (where stems of breves etc are implied, and a note can have two stems). I'm not sure what the implications of this are yet, but I'll definitely be using stems (and stem associations via beams) for finding voices. I'll pass stems to bars first, then orphaned notes, then rests.
- Maybe I need a panel that lists the main steps in the whole score parsing process that shows the current step. If non-modal user interaction is required (such as confirming Paths), they could click a button on this panel to confirm that a step is complete. It would require all of the current stuff to happen on a background thread with invokes to UI thread, but I should probably do that anyway.
- Adding notes to chords in bars. Not yet handling grace notes or rests.

No comments:

Post a Comment