summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrevor Daniels <t.daniels@treda.co.uk>2009-01-05 14:48:25 +0000
committerTrevor Daniels <t.daniels@treda.co.uk>2009-01-06 20:28:10 +0000
commit06d833c59c9be3dbf7d3953ccc0cb3be2219beda (patch)
treebe2a18b0375e28a9adb8c6ba349f2f8f826bb7ef
parent0e5d83a9ceb4a143f83d22406d7eb816314ff9f7 (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.ly2
-rw-r--r--input/regression/beam-auto.ly14
-rw-r--r--scm/auto-beam.scm93
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)