Looks very good.
> Windowing in time has ramifications in the frequency domain as
> well. As the window becomes shorter, the resolution in frequency
> decreases, while the resolution in time increases.
> This presents a tradeoff governed by Heisenberg's Uncertainty
> Principle.
Interesting to see that this mathematical property of the Fourier
transform goes as "uncertainty principle" in this context too.
> Since the assignment of a note length is relative to the length
> of the other notes, we need to have a reference point from which
> we can base our duration assignments. Our system allows the user
> to input a letter (w,h,q,e,s) corresponding to the length of the
> first note in the song (whole, half, quarter, eighth, sixteenth).
> By knowing the length of the first note and comparing the lengths
> of the other notes to this reference, we can find the appropriate
> note lengths for the rest of the notes in the piece.
> The shortest note our system will handle is a sixteenth note.
This reads like you have to input the beat/minutes in advance,
thus determing how long the 1/16 (= 0.25 beats) note has to be
in seconds.
> The duration analysis is done primarily using linked lists. One
> linked list holds all of the notes that were present in the previous
> sixteenth-note interval ("last_16th"); one holds all of the notes
> that have been found in the present sixteenth-note interval up to the
> present segment ("previous"); and one more holds all of the notes
> that have been read from the latest 50 ms input segment ("present").
This then turns out into accumulation of equal 1/16 notes
into longer notes (e.g. 4 consecutive 1/16 = 1/4 note)
All in all an impressive project.. thanks for that link!
Regards,
Marc