musescore/MuseScore — pull request #1455 by MarcSabatella (2014-11-15 16:43:15+00:00)
Title: beam beats in X/4 according to minimum durations

Improve beaming in mixed settings (eighths & sixteenths, tuplets, etc):

- In X/4 time, beam according to minimum duration when mixed durations present. Do prepass through each measure to determine the minimum chordrest duration within each "beat" (multiple of division). Then, after getting default beam from time signature properties as usual, check to see if note is on a beat, and if so, recalculate beam based on minimum duration found in this or previous beat. End result: 8 8 8 16 16 and 16 16 8 8 8 in 4/4 time both now break beams on the beat if sixteenths would normally beam that way.

- Fixed tuplet beaming code to not *force* tuplets to break beams - just to *default* that way. So you can still use beam properties to make 8 8 (8 8 8) all beam together if you like.

- Treats tuplets as if they were the next shorter duration for beam mode purposes. End result: (16 16 16) (16 16 16) now automatically gets a sub-beam (because 32nds default that way).

- Updated & added vtests. Note beams-5 deliberately uses strange beaming in time signature properties just to make sure we are inheriting correctly in those situations where we get beaming down to shorter duration.