
Are you wanting this function for something like beam grouping - i.e. notes less than a quarter note are grouped together until their values sum to a quarter note? If this is what you want, it can be quite a tough problem - I've done it in concert with bar splitting (two problems!). Personally I'd use direct recursion rather than a left-fold - you have to go from left-to-right however you do it. To do it properly you'll probably find you need to "borrow" durations from the next beam group, this is why I wouldn't use a left fold: For instance if you are splitting to quarter notes - a dotted quarter note with "borrow" an eighth from the next beam group. That said, I'd strongly caution against working with sheet music - it is much more complicated than working with played sound - e.g. MIDI or WAV files. Music type-setting has had 1000 years since Guido d'Arezzo to develop notations with no concession to computer processing. Best wishes Stephen