Description
What: An iterator to make iterating over a score simpler.
Why: Per Dr. T's request, this abstraction should simplify the process for a new programmer to start developing new queries. New programmers need not know about XML parsing techniques. This makes collecting information about chords and melodic sequences much easier for example.
Concerns:
-chords or multiple voices?
MuseScore and seems like the MusicXML standard require two voices to be used when a note of a chord has different duration from other notes of the chord.
Chords not voices will be considered. If two notes are played by one part at a single point in time, then they are to be considered a chord of one instrument as opposed to two voices under any circumstance. It would be impractical to code otherwise. Guitar music where notes in a chord have different durations require multiple voices to be used according to the MusicXML standard and MuseScore, but in reality it's clearly meant for one instrument.
-How do you represent a chord that is spread across multiple parts? Should the iterable contain all notes of all parts at a given point in time for harmonic analysis across instruments?
- Rests?
- Ties?
- Repeats?
- Dynamics?
- Vibrato?
- Tremolo?
- Time Signatures: effect beat (ex: in 7/8 a measure of all eights means each note is a beat)
etc...