X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fauto-beam.scm;h=b77022f2fca1cb2e24a164cdf4e2f7e8d1628f87;hb=9f2135fa9453892d7ddd3bb9c57f83f9a4e95f11;hp=82b5917d1c2730bc8b88d9adaa2621806e45e7f0;hpb=c1695321ac192515a7ddbcd10e259accfc333dc5;p=lilypond.git diff --git a/scm/auto-beam.scm b/scm/auto-beam.scm index 82b5917d1c..b77022f2fc 100644 --- a/scm/auto-beam.scm +++ b/scm/auto-beam.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; Copyright (C) 2000--2011 Jan Nieuwenhuizen +;;;; Copyright (C) 2000--2012 Jan Nieuwenhuizen ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify ;;;; it under the terms of the GNU General Public License as published by @@ -16,9 +16,9 @@ ;;;; along with LilyPond. If not, see . ;; Determine whether an auto beam should be extended to the right -;; of the current stem. We start anywhere except on the last note -;; of a beat. We end according to the follwing rules, in order -;; of decreasing priority: +;; of the current stem. We start anywhere, except mid-measure in +;; 3/4 time. We end according to the follwing rules, in order of +;; decreasing priority: ;; ;; 1. end ;; 2. end @@ -79,6 +79,7 @@ '()) beamingfraction test-beam)) (non-grace (ly:make-moment (ly:moment-main-numerator measure-pos) @@ -106,15 +107,13 @@ exception-grouping 0 grouping-moment))) (if (= dir START) - ;; Start rules - (or (not (equal? time-signature-fraction '(3 . 4))) ;; start anywhere if not 3/4 - (= (ly:moment-main-numerator pos) 0) ;; start at beginning of measure - (not (null? exception-grouping)) ;; don't use special rules if exception - (beat-end? pos beat-endings) ;; are we at start of beat? - (and (not (equal? test-beam base-moment)) ;; is beat split? - (not (beat-end? (ly:moment-add pos test-beam) - beat-endings)))) ;; will this note end the beat - ;; End rules + ;; Start rules -- #t if beam is allowed to start + (or beam-half-measure ;; Start anywhere, but option for mid-measure + (not (equal? (ly:moment-add pos pos) measure-length)) + (not (= 3 (car time-signature-fraction))) ;; in triple meter + (not (= (cdr type) ;; when the beamed note is 1/6 of a measure + (* 2 (cdr time-signature-fraction))))) + ;; End rules -- #t if beam is required to end (or (= (ly:moment-main-numerator pos) 0) ;; end at measure beginning (if (null? exception-grouping) (beat-end? pos beat-endings) ;; no exception, so check beat ending