lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Different beaming for triplets


From: David Kastrup
Subject: Re: Different beaming for triplets
Date: Wed, 04 Dec 2013 20:11:18 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Richard Shann <address@hidden> writes:

> On Wed, 2013-12-04 at 19:05 +0100, David Kastrup wrote:
>> Richard Shann <address@hidden> writes:
>> 
>> > Thank you David (and to the others that replied), I had a go at
>> > getting my head round this before I asked, I find it a serious
>> > challenge.
>> 
>> Yes.
>> 
>> > It would be nice to have a graphical way of selecting what you want
>> > visually and letting the computer do the hard work...
>> 
>> > Your new 2.19 syntax certainly looks an improvement!
>> 
>> Note:
>> 
>> >> \beamExceptions { 8[ 8 8] | \repeat unfold 3 \tuplet 3/2 { 16[ 16 16] } }
>> rather than
>> >> #'((end . (((1 . 8) . (3)) ((1 . 24) . (3 3 3)))))
>> 
>> Well, you can also write
>> 
>> \beamExceptions { c8[ c c] | \repeat unfold 3 \tuplet 3/2 { c16[ c c] } }
>> 
>> which will look more familiar.  But I am rather fond of the 2.19 way of
>> being able to enter rhythms without the distraction of pitches.
>
> Ha! I had just been mulling this over when you emailed. It looks like we
> could offer a Denemo command to extract beam exceptions from the current
> selection just by copying its LilyPond representation into a
> \beamExceptions parameter.

If the music has been written for that.  If you just pick some random
example measures, it is likely that the exceptions will end up being
incomplete.

> I was just trying to track down \beamExceptions in the unstable
> documentation but that seems only to go as far as 2.17 and you
> mentioned 2.19. I guess the documentation, such as it is, is still in
> the devel-discussions (naturally).

No, it is checked into master.  But it won't appear on the web site
before 2.19.0 is released.

The info looks something like

Beaming based on ‘beamExceptions’
.................................

Special autobeaming rules (other than ending a beam on a beat) are
defined in the ‘beamExceptions’ property.

   The value for ‘beamExceptions’, a somewhat complex Scheme data
structure, is easiest generated with the ‘\beamExceptions’ function.
This function is given one or more manually beamed measure-length
rhythmic patterns (measures have to be separated by a bar check ‘|’
since the function has no other way to discern the measure length).
Here is a simple example:

     \time 3/16
     \set Timing.beatStructure = #'(2 1)
     \set Timing.beamExceptions =
       \beamExceptions { 32[ 32] 32[ 32] 32[ 32] }
     c16 c c |
     \repeat unfold 6 { c32 } |

          Note: A ‘beamExceptions’ value must be _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, it means that the current beaming settings need
          not be known in order to specify a new beaming pattern.

   When the time signature is changed, default values of
‘Timing.baseMoment’, ‘Timing.beatStructure’, and ‘Timing.beamExceptions’
are set.  Setting the time signature will reset the automatic beaming
settings for the ‘Timing’ context to the default behavior.

     \time 6/8
     \repeat unfold 6 { a8 }
     % group (4 + 2)
     \set Timing.beatStructure = #'(4 2)
     \repeat unfold 6 { a8 }
     % go back to default behavior
     \time 6/8
     \repeat unfold 6 { a8 }

   The default automatic beaming settings for a time signature are
determined in ‘scm/time-signature-settings.scm’.  Changing the default
automatic beaming settings for a time signature is described in *note
Time signature::.


-- 
David Kastrup



reply via email to

[Prev in Thread] Current Thread [Next in Thread]