If you ever try importing a MIDI file you rapidly realise that this is a simple case. Any non-Balkan time signature has a standard division into beats and subdivisions (beyond some point it's just continual dividing by two).
You pad up to the next whole beat in steadily increasing multiples. Use the Greedy algorithm, but put the bits in in reverse order e.g. c/////-c////-c///-c//-c/-c/-c2. Then you do beats up to the next bar, then whole bars, then beats to the end of the next whole beat, then Greedy in forwards order until you get within a quantum of home, and you're done. Balkan time signatures no doubt also have a proper division but it's less well known around here. The more entertaining part of MIDI import is tempo following to know where the beats currently fall in real time and then guessing how seriously to take the not end times (Yeah, so it was only 20mSec, but its an off-beat so it's still a quarter note, just a tad staccato, not worth notating really). Laurie ----- Original Message ----- From: "John Chambers" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, June 24, 2002 2:31 PM Subject: Re: [abcusers] Question about rhythm notation | How should a program handle this: | M:3/4 | L:1/4 | A5 A| ... | | I think what the author was intending was: | A4- AA| One of the reasons I'd expect a lot of programmers to throw up their hands at this is illustrated by: M:6/8 L:1/8 A5 A| ... Most musicians would object to rewriting this as A4- AA, and would suggest that A3- A2A is the right way. A bit of thought about how one might attempt to implement the general case will rather quickly lead to the conclusion that a fatal error message is a much better solution. To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html