[Haskell-cafe] music-related problem
mpm at alumni.caltech.edu
Sun Jul 4 18:13:23 EDT 2010
erik flister wrote:
> I am dealing with ties because I am converting a MusicXML document
> into a more natural form for my purposes. The initial form of the
> document will have tied notes (as it comes that way from MusicXML),
> and I want to convert that into a form that makes it possible to
> ignore ties and see notes as having a single duration.
> but can't you just say that the first note of a tie has the indicated
> start time and a duration which is the sum of the tied notes? i don't
> know musicXML, but i'm not seeing why that would be hard...
That's what I want to do. I'm asking about a good way to write the
algorithm that traverses the notes and reconstructs the document with the
correct duration in each note. Actually, I don't want to lose information
about the original form of the document, so I have separate fields for the
duration of the graphical single note, and the duration of the tied chain.
Actually, it is better to speak of the end time than the duration, because
what units do you put duration in? Beats? The time signature could be
changing measure to measure. MusicXML "position"? The meaning of "one
position" changes measure to measure and can be different in different
parts. It can get confusing. So I use this concept of "location":
data Loc = Loc Int Rational -- measure number and beat within the measure
I.e. measure 1, beat 2
measure 7, beat 3 1/2
I use Rational so there is no worry about precision of Floats.
More information about the Haskell-Cafe