Saturday, October 31, 2009
Sunday, October 25, 2009
- Fixed a bug that magically appeared in finding ledgers to match stems to staves. I don't know how it ever worked before...
- We'll be able to give ties a different colour to phrases and slurs which will make it much easier for end users trying to read the music.
- Fixed bug with matching dots to notes that are on left side of upside-down stem.
- Rules for end note of tie seem the same as start note but with X reversed.
- Finding ties that don't cross over lines. Not yet using for note lengths or silencing tied bits. I don't know if ties that cross lines have same Y value for both ends of both curves. Pic with magenta-y tie goodness.

- Ties that cross lines might work now but I don't have an example to test it on yet.
- Need to ignore ties which actually have notes of same pitch inbetween start and end notes. Also need to ignore ties where end note has an accidental. Done.
- Need to incorporate ties into midi shit.
- Tied notes violate the rule that all notes in a stem have the same length.
- I could crosscheck the tied note info with the voice building stuff (todo later).
- Added tied note info to midi builder.
- Note offs need to be set a tick early to prevent them from interfering with note ons with same pitch and tick.
- We'll be able to give ties a different colour to phrases and slurs which will make it much easier for end users trying to read the music.
- Fixed bug with matching dots to notes that are on left side of upside-down stem.
- Rules for end note of tie seem the same as start note but with X reversed.
- Finding ties that don't cross over lines. Not yet using for note lengths or silencing tied bits. I don't know if ties that cross lines have same Y value for both ends of both curves. Pic with magenta-y tie goodness.
- Ties that cross lines might work now but I don't have an example to test it on yet.
- Need to ignore ties which actually have notes of same pitch inbetween start and end notes. Also need to ignore ties where end note has an accidental. Done.
- Need to incorporate ties into midi shit.
- Tied notes violate the rule that all notes in a stem have the same length.
- I could crosscheck the tied note info with the voice building stuff (todo later).
- Added tied note info to midi builder.
- Note offs need to be set a tick early to prevent them from interfering with note ons with same pitch and tick.
Saturday, October 24, 2009
- Starting on non-overlapping stems in chords issue. It should only be a problem when a new voice starts. If a voice stops mid bar it might indicate a problem too.
- Each stem in a 'chord' much be a different voice. In the two examples in Rev Etude, both 'misplaced' stems start new voices.
- Done. Here's a pic of the example in the Rev Etude. The dotted minim caused the problem.
- Starting on finding ties (such as those in blue in the pic above). I think ties/slurs/phrases are being found quite well already but not categorised yet.
- Ties apply to individual notes, not stems. Curve direction of tie doesn't relate to stem direction but does matter to note position relative to stem.
- Tie will overlap on X axis unless tie curves up in the middle and stem is upright (usually). If start or maybe end note are not the top/bottom note in the stem the tie may be moved to the side.
- Tie ends must have same Y.
- Each stem in a 'chord' much be a different voice. In the two examples in Rev Etude, both 'misplaced' stems start new voices.
- Done. Here's a pic of the example in the Rev Etude. The dotted minim caused the problem.
- Ties apply to individual notes, not stems. Curve direction of tie doesn't relate to stem direction but does matter to note position relative to stem.
- Tie will overlap on X axis unless tie curves up in the middle and stem is upright (usually). If start or maybe end note are not the top/bottom note in the stem the tie may be moved to the side.
- Tie ends must have same Y.
Thursday, October 22, 2009
- Current issues to fix in Rev Etude midi generation:
- Stems in chords will not overlap on X only if they overlap on Y.
- Stems may not have the same note value.
- Should check X position of stem before appending to voice. Position can't be absolute in bar but can be relative to previous stems and voice lengths.
- Can use chained stems in other voices as guide for where voices are up to in bar.
- Stems can't be new voice starting off beat.
- Ignore stem above first line in tempo indicator, (done)
- Bar crossing two lines, (done)
- Key signature detection not picking up all elements. Found that some glyph runs are duplicated which could be related. Duplicated shouldn't be too hard to fix (tomorrow).
- Tied notes (including ties across lines :/ ),
- Stems in chords which don't overlap on X axis are interpreted as in separate chords
- Stems in chords will not overlap on X only if they overlap on Y.
- Stems may not have the same note value.
- Should check X position of stem before appending to voice. Position can't be absolute in bar but can be relative to previous stems and voice lengths.
- Can use chained stems in other voices as guide for where voices are up to in bar.
- Stems can't be new voice starting off beat.
Tuesday, October 20, 2009
- Using tuplet bracket info. I think that bit is finished.
- Some problems where stems in same chord don't overlap (bars 57 and 80 in Rev Etude). This results in the bar being too long. Perhaps I can use the fact that the stems are obviously in the wrong place relative to stems in other voices.
- Bar spanning two lines causing problem but shouldn't be a major issue to fix.
- Some problems where stems in same chord don't overlap (bars 57 and 80 in Rev Etude). This results in the bar being too long. Perhaps I can use the fact that the stems are obviously in the wrong place relative to stems in other voices.
- Bar spanning two lines causing problem but shouldn't be a major issue to fix.
Monday, October 19, 2009
- Finding tuplet brackets (in at least one score anyway). For a change of pace, here's a pic. The light orange things are the brackets and start/end stems, and red-orange stems are the nearest to middle stems in brackets. The rest in the 2nd triplet gets picked up later. The voice builder isn't actually using the brackets yet; tomorrow maybe.

Sunday, October 18, 2009
- Looking for side bits of tuplet brackets to determine whether tuplet is above or below bracket.
- Fixed bug with element intersection detection.
- Finding tuplet brackets but will need a little more work to increase confidence. Finding first stem for each bracket.
- I think I can reliably find the first and last stems in the bracket and if the bracket is >= 3, the closest middle stem to the tuplet count. Hopefully all stems in the tuplet will be beamed to one of these three.
- Fixed bug with element intersection detection.
- Finding tuplet brackets but will need a little more work to increase confidence. Finding first stem for each bracket.
- I think I can reliably find the first and last stems in the bracket and if the bracket is >= 3, the closest middle stem to the tuplet count. Hopefully all stems in the tuplet will be beamed to one of these three.
Friday, October 16, 2009
Tuesday, October 13, 2009
- Working on finding tuplet brackets for tuplets in which not all elements are beamed. There doesn't seem to be any other reliable method to join such elements. Using tuplet count glyph, relative positions of possible bracket bits on either side of tuplet count, gradients of lines within bracket bits etc.
- Maybe I can assume that tuplets that start or end with disconnected stems or rests will always have the count written in. I'm not sure that searching for a tuplet count before parsing the notes is best, particularly when the symbols used to indicate the stems included are quite arbitrary (if given at all) and have varying widths and orientations even within a score. Also, if the first stem of a tuplet is disconnected, we have no clue that we're working with a tuplet and the count is written in under the middle of the tuplet, not the first stem.
- I'll start by looking at how the bars are resolving in the Rev Etude. Hopefully this will be the last task before working on exporting the music.
- I'll start by looking at how the bars are resolving in the Rev Etude. Hopefully this will be the last task before working on exporting the music.
Monday, October 12, 2009
Tuesday, October 6, 2009
Sunday, October 4, 2009
I've been a bit slack with keeping notes for the last couple of days.
- Working on producing midi file. I got my units of measurement a little mixed up (beats vs whole notes) which made for some interesting midi files, and forgot to use tuplet compression when calculating note lengths.
- Note lengths and positions now looking pretty good, but note pitches are a little bit shithouse.
- Fixed note pitch algorithm. It seems that bars without explicit key sigs think they're CMajor. That's not good. Fixed.
- All note pitches seem good now. One bar in Op72 #1 is failing miserably, and there is no use of pedals, 8vas, ties or grace notes yet.
- Not handling bars that cross lines... er
- Ran Revolutionary Etude through. Lots of little midi errors (bars too long/short etc), but overall pretty good so far.
- Working on producing midi file. I got my units of measurement a little mixed up (beats vs whole notes) which made for some interesting midi files, and forgot to use tuplet compression when calculating note lengths.
- Note lengths and positions now looking pretty good, but note pitches are a little bit shithouse.
- Fixed note pitch algorithm. It seems that bars without explicit key sigs think they're CMajor. That's not good. Fixed.
- All note pitches seem good now. One bar in Op72 #1 is failing miserably, and there is no use of pedals, 8vas, ties or grace notes yet.
- Not handling bars that cross lines... er
- Ran Revolutionary Etude through. Lots of little midi errors (bars too long/short etc), but overall pretty good so far.
Subscribe to:
Posts (Atom)