]> git.donarmstrong.com Git - lilypond.git/commitdiff
Issue 3682/2: Change documentation and regtests for \beamExceptions
authorDavid Kastrup <dak@gnu.org>
Thu, 28 Nov 2013 16:32:52 +0000 (17:32 +0100)
committerDavid Kastrup <dak@gnu.org>
Wed, 4 Dec 2013 09:03:51 +0000 (10:03 +0100)
Documentation/notation/rhythms.itely
input/regression/auto-beam-exceptions.ly
input/regression/les-nereides.ly
input/regression/tablature-slurs-with-beams.ly

index d104f18aefe29a1304ba61d673c21b5e182fb1d3..2847d627c1c7dfa30d05ef2542d9a2868b1d0f37 100644 (file)
@@ -2037,6 +2037,7 @@ new beam starts.
 @funindex autoBeaming
 @funindex baseMoment
 @funindex beamExceptions
+@funindex \beamExceptions
 @funindex beatStructure
 @funindex measureLength
 @funindex \time
@@ -2178,42 +2179,24 @@ the time signature. Any exceptions to this default can be found in
 Special autobeaming rules (other than ending a beam on a beat)
 are defined in the @code{beamExceptions} property.
 
+The value for @code{beamExceptions}, a somewhat complex Scheme
+data structure, is easiest generated with the
+@code{\beamExceptions} function.  This function is given one or
+more manually beamed measure-length rhythmic patterns (measures
+have to be separated by a bar check@tie{}@code{|} since the
+function has no other way to discern the measure length).  Here is
+a simple example:
+
 @lilypond[quote,relative=2,verbatim]
 \time 3/16
 \set Timing.beatStructure = #'(2 1)
 \set Timing.beamExceptions =
-  #'(                         ;start of alist
-     (end .                   ;entry for end of beams
-      (                       ;start of alist of end points
-       ((1 . 32) . (2 2 2))   ;rule for 1/32 beams -- end each 1/16
-      )))                     %close all entries
+  \beamExceptions { 32[ 32] 32[ 32] 32[ 32] }
 c16 c c |
 \repeat unfold 6 { c32 } |
 @end lilypond
 
-@code{beamExceptions} is an alist with a key of rule-type and a value
-of beaming-rules.
-
-At this time the only available value of rule-type is
-@code{'end} for beam ending.
-
-Beaming-rules is a scheme alist (or list of pairs) that indicates the
-beam type and the grouping to be applied to beams containing notes with
-a shortest duration of that beam type.
-
-@example
-#'((beam-type1 . grouping-1)
-   (beam-type2 . grouping-2)
-   (beam-type3 . grouping-3))
-@end example
-
-Beam type is a scheme pair indicating the duration of the beam,
-e.g., @code{(1 . 16)}.
-
-Grouping is a scheme list indicating the grouping to be applied to
-the beam.  The grouping is in units of the beam type.
-
-@warning{ A @code{beamExceptions} value must be @emph{complete}
+@warning{A @code{beamExceptions} value must be @emph{complete}
 exceptions list.  That is, every exception that should be applied
 must be included in the setting.  It is not possible to add, remove,
 or change only one of the exceptions. While this may seem cumbersome,
index 676bb3aafb27846a4aa5215650621a56acb4b177..b7d553b1234e03d6266caf29898b84d543ddb63e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.19.0"
 
 \header {
 
 
 \relative c' {
   \time 2/4
-  \set Score.beamExceptions = #'(
-    ( end .
-      (
-        ( (1 . 32) . (4 4 4 4) )
-      )
-    )
-  )
+  \set Score.beamExceptions =
+    \beamExceptions \repeat unfold 4 { 32[ 32 32 32] }
   \repeat unfold 16 c32
   \time 3/4
-  \set Score.beamExceptions = #'(
-    ( end .
-      (
-        ( (1 . 32) . (4 4 4 4 4 4) )
-      )
-    )
-  )
+  \set Score.beamExceptions =
+    \beamExceptions \repeat unfold 6 { 32[ 32 32 32] }
   \repeat unfold 24 c32
   c8 c32 c32 c32 c32 c16 c16 c32 c32 c32 c32 c16 c32 c32 c32 c32 c32 c32
   \time 4/4
-  \set Score.beamExceptions = #'(
-    ( end .
-      (
-        ( (1 . 32) . (4 4 4 4 4 4 4 4) )
-      )
-    )
-  )
+  \set Score.beamExceptions =
+    \beamExceptions \repeat unfold 8 { 32[ 32 32 32] }
   \repeat unfold 32 c32
   \time 6/8
-  \set Score.beamExceptions = #'(
-    ( end .
-      (
-        ( (1 . 32) . (4 4 4 4 4 4) )
-      )
-    )
-  )
+  \set Score.beamExceptions =
+    \beamExceptions \repeat unfold 6 { 32[ 32 32 32] }
   \repeat unfold 24 c32
 }
index c87772419dd455a914c337282834c897bbabd9d4..61b79eccd4d12acdfbecdc6980be62a0018c3f6e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.17.10"
+\version "2.19.0"
 
 \header {
     composer = "ARTHUR GRAY"
@@ -233,8 +233,9 @@ middleDynamics = {
 theScore = \score{
     \context PianoStaff <<
         \new Staff = "treble" <<
-            \set beamExceptions = #'((end . (((1 . 8) . (2 2 2 2))
-                                           ((1 . 32) . (4 4 4 4 4 4 4 4)))))
+            \set beamExceptions =
+             \beamExceptions { 8[ 8] 8[ 8] 8[ 8] 8[ 8] |
+                               \repeat unfold 8 { 32[ 32 32 32] } }
            \treble
            \trebleTwo
         >>
index 1425ed680710cf7be2f5b5daff30d5b0e368b24b..69d68c0fa9e0d94cce7b408f1c7d11777c2f4946 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.17.20"
+\version "2.19.0"
 
 \header
 {
@@ -10,7 +10,8 @@ either automatic or manual beaming.
 
 guitarSolo = {
   \time 3/4
-  \set Timing.beamExceptions = #'((end . (((1 . 8) . (4 2)))))
+  \set Timing.beamExceptions =
+    \beamExceptions { 8[ 8 8 8] 8[ 8] }
   <<
     {bes'2( aes'8-. r)} \\
     {r8 cis(-\tag #'beam [ b f'-\tag #'beam ]) <d f'>-. r}