diff options
author | Trevor Daniels <t.daniels@treda.co.uk> | 2009-01-05 14:48:25 +0000 |
---|---|---|
committer | Trevor Daniels <t.daniels@treda.co.uk> | 2009-01-06 20:28:10 +0000 |
commit | 06d833c59c9be3dbf7d3953ccc0cb3be2219beda (patch) | |
tree | be2a18b0375e28a9adb8c6ba349f2f8f826bb7ef | |
parent | 0e5d83a9ceb4a143f83d22406d7eb816314ff9f7 (diff) |
Update beam ending rules
- Now that beatGrouping works correctly, beam
ending rules are not required for those values
of beatLength which are correctly derived from
the time signature
- The beam ending rules for 1/16 and 1/32 notes are
retained, however, but are extended to cover those
moments which previously were covered by the
deleted rules, and to cover the 2 2 time signature
-rw-r--r-- | input/regression/auto-beam.ly | 2 | ||||
-rw-r--r-- | input/regression/beam-auto.ly | 14 | ||||
-rw-r--r-- | scm/auto-beam.scm | 93 |
3 files changed, 75 insertions, 34 deletions
diff --git a/input/regression/auto-beam.ly b/input/regression/auto-beam.ly index cb7f369840..44e5e529ec 100644 --- a/input/regression/auto-beam.ly +++ b/input/regression/auto-beam.ly @@ -1,5 +1,5 @@ \header { - texidoc="Beams are place automatically; the last measure should have a single + texidoc="Beams are placed automatically; the last measure should have a single beam." } diff --git a/input/regression/beam-auto.ly b/input/regression/beam-auto.ly index 213031bb4d..8e90e1d325 100644 --- a/input/regression/beam-auto.ly +++ b/input/regression/beam-auto.ly @@ -8,11 +8,12 @@ time signatures. " } \relative c''{ \time 1/2 + c8 c c c c16 c c c c c c c c32 c c c c c c c c c c c c c c c \time 1/4 - c8 c + c8 c c16 c c c c32 c c c c c c c \time 1/8 @@ -35,6 +36,7 @@ time signatures. " } \time 3/2 c8 c c c c c c c c c c c c16 c c c c c c c c c c c c c c c c c c c c c c c + c32 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c \time 3/4 c8 c c c c c c16 c c c c c c c c c c c @@ -51,11 +53,21 @@ time signatures. " } c8 c c c c16 c c c c c c c c32 c c c c c c c c c c c c c c c + \time 4/16 + c8 c + c16 c c c + c32 c c c c c c c \time 6/8 c8 c c c c c c16 c c c c c c c c c c c + c32 c c c c c c c c c c c c c c c c c c c c c c c \time 9/8 c8 c c c c c c c c c16 c c c c c c c c c c c c c c c c c + c32 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c + \time 12/8 + c8 c c c c c c c c c c c + c16 c c c c c c c c c c c c c c c c c c c c c c c + c32 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c } diff --git a/scm/auto-beam.scm b/scm/auto-beam.scm index 2707b80252..6479969eb8 100644 --- a/scm/auto-beam.scm +++ b/scm/auto-beam.scm @@ -1,10 +1,10 @@ ;;;; auto-beam.scm -- Auto-beam-engraver settings ;;;; ;;;; source file of the GNU LilyPond music typesetter -;;;; +;;;; ;;;; (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org> -;;; specify generic beam begin and end times +;;; specify generic beam end times ;;; format: ;;; @@ -23,49 +23,68 @@ (define-public default-auto-beam-settings `( - ;; in 3 2 time: - ;; end beams each 1 2 note - ;; end beams with 16th notes each 1 4 note - ;; end beams with 32nd notes each 1 8 note + ;; in 2 2 time: + ;; use beatLength for all except 32nd notes + ;; end beams with 32nd notes each 1 4 beat - ((end * * 3 2) . ,(ly:make-moment 1 2)) - ((end * * 3 2) . ,(ly:make-moment 2 2)) + ((end 1 32 2 2) . ,(ly:make-moment 1 4)) + ((end 1 32 2 2) . ,(ly:make-moment 2 4)) + ((end 1 32 2 2) . ,(ly:make-moment 3 4)) + + ;; in 3 2 time: + ;; use beatLength for all except 16th and 32nd notes + ;; end beams with 16th notes each 1 4 beat + ;; end beams with 32nd notes each 1 8 beat ((end 1 16 3 2) . ,(ly:make-moment 1 4)) - ((end 1 16 3 2) . ,(ly:make-moment 1 2)) + ((end 1 16 3 2) . ,(ly:make-moment 2 4)) ((end 1 16 3 2) . ,(ly:make-moment 3 4)) + ((end 1 16 3 2) . ,(ly:make-moment 4 4)) ((end 1 16 3 2) . ,(ly:make-moment 5 4)) ((end 1 32 3 2) . ,(ly:make-moment 1 8)) - ((end 1 32 3 2) . ,(ly:make-moment 1 4)) + ((end 1 32 3 2) . ,(ly:make-moment 2 8)) ((end 1 32 3 2) . ,(ly:make-moment 3 8)) - ((end 1 32 3 2) . ,(ly:make-moment 1 2)) + ((end 1 32 3 2) . ,(ly:make-moment 4 8)) ((end 1 32 3 2) . ,(ly:make-moment 5 8)) - ((end 1 32 3 2) . ,(ly:make-moment 3 4)) + ((end 1 32 3 2) . ,(ly:make-moment 6 8)) ((end 1 32 3 2) . ,(ly:make-moment 7 8)) + ((end 1 32 3 2) . ,(ly:make-moment 8 8)) ((end 1 32 3 2) . ,(ly:make-moment 9 8)) - ((end 1 32 3 2) . ,(ly:make-moment 5 4)) + ((end 1 32 3 2) . ,(ly:make-moment 10 8)) ((end 1 32 3 2) . ,(ly:make-moment 11 8)) - ((end * * 3 4) . ,(ly:make-moment 3 4)) + ;; in 2 4 time: + ;; use beatLength for all except 32nd notes + ;; end beams with 32nd notes each 1 8 beat - ((end 1 16 3 4) . ,(ly:make-moment 1 4)) - ((end 1 16 3 4) . ,(ly:make-moment 1 2)) + ((end 1 32 2 4) . ,(ly:make-moment 1 8)) + ((end 1 32 2 4) . ,(ly:make-moment 2 8)) + ((end 1 32 2 4) . ,(ly:make-moment 3 8)) + + ;; in 3 4 time: + ;; override beatLength which would end beams at 1 4 beats + ;; end beams with 16th notes each 1 4 beat + ;; end beams with 32nd notes each 1 8 beat + ((end * * 3 4) . ,(ly:make-moment 3 4)) + ((end 1 16 3 4) . ,(ly:make-moment 1 4)) + ((end 1 16 3 4) . ,(ly:make-moment 2 4)) ((end 1 32 3 4) . ,(ly:make-moment 1 8)) - ((end 1 32 3 4) . ,(ly:make-moment 1 4)) + ((end 1 32 3 4) . ,(ly:make-moment 2 8)) ((end 1 32 3 4) . ,(ly:make-moment 3 8)) - ((end 1 32 3 4) . ,(ly:make-moment 1 2)) + ((end 1 32 3 4) . ,(ly:make-moment 4 8)) ((end 1 32 3 4) . ,(ly:make-moment 5 8)) - ((end * * 3 8) . ,(ly:make-moment 3 8)) - ;; in common time: - ;; end beams each 1 2 note - ;; end beams with 32nd notes each 1 8 note - ;; end beams with 1 8 triplets each 1 4 note + ;; override beatLength which would end beams at 1 4 beats + ;; end all beams at 1 2 beat + ;; end beams with 8th triplets each 1 4 beat + ;; end beams with 16th notes each 1 4 beat + ;; end beams with 32nd notes each 1 8 beat ((end * * 4 4) . ,(ly:make-moment 1 2)) + ((end 1 12 4 4) . ,(ly:make-moment 1 4)) ((end 1 12 4 4) . ,(ly:make-moment 3 4)) @@ -73,25 +92,29 @@ ((end 1 16 4 4) . ,(ly:make-moment 3 4)) ((end 1 32 4 4) . ,(ly:make-moment 1 8)) - ((end 1 32 4 4) . ,(ly:make-moment 1 4)) + ((end 1 32 4 4) . ,(ly:make-moment 2 8)) ((end 1 32 4 4) . ,(ly:make-moment 3 8)) ((end 1 32 4 4) . ,(ly:make-moment 5 8)) - ((end 1 32 4 4) . ,(ly:make-moment 3 4)) + ((end 1 32 4 4) . ,(ly:make-moment 6 8)) ((end 1 32 4 4) . ,(ly:make-moment 7 8)) - ((end * * 2 4) . ,(ly:make-moment 1 4)) - ((end 1 32 2 4) . ,(ly:make-moment 1 8)) - ((end 1 32 2 4) . ,(ly:make-moment 3 8)) + ;; in 3 8 time: + ;; override beatLength which would end beams at 1 8 beats + + ((end * * 3 8) . ,(ly:make-moment 3 8)) + + ;; in 4 8 time + ;; override beatLength which would end beams at 1 8 beats + ;; end all beams at 1 4 beat + ;; end beams with 32nd notes each 1 8 beat ((end * * 4 8) . ,(ly:make-moment 1 4)) ((end 1 32 4 8) . ,(ly:make-moment 1 8)) ((end 1 32 4 8) . ,(ly:make-moment 3 8)) - ((end * * 4 16) . ,(ly:make-moment 1 8)) - ;; in 6 8, 9 8 and 12 8 time: - ;; use beatGrouping for all except 1 32nd notes - ;; end beams with 32nd notes every 1 8 note + ;; use beatGrouping for all except 32nd notes + ;; end beams with 32nd notes each 1 8 beat ((end 1 32 6 8) . ,(ly:make-moment 1 8)) ((end 1 32 6 8) . ,(ly:make-moment 2 8)) @@ -119,6 +142,12 @@ ((end 1 32 12 8) . ,(ly:make-moment 9 8)) ((end 1 32 12 8) . ,(ly:make-moment 10 8)) ((end 1 32 12 8) . ,(ly:make-moment 11 8)) + + ;; in 4 16 time + ;; end all beams each 1 8 beat + + ((end * * 4 16) . ,(ly:make-moment 1 8)) + )) (define (override-property-setting context property setting value) |