lilypond-user
[Top][All Lists]
Advanced

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

Re: Help for \beamExceptions


From: Richard Shann
Subject: Re: Help for \beamExceptions
Date: Fri, 04 Sep 2015 17:42:29 +0100

I seem to have run into a snag with re-writing
default-time-signature-settings, it works ok if there was previously a
rule for a time signature, but adding a rule for one (such as 6/8) which
has none doesn't result in the beaming pattern being used. Here is a
minimal example. The first bar shows the pattern desired, and this is
put into the value for 'beamExceptions in the 6/8 alist, but the second
bar is not then beamed to follow that pattern.

8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><

\version "2.19.5"
MvmntIVoiceI = {
         a8[ d'8 f' a'] e'8[ e'8]
         a'8 a' e' f' e' a'    
}

#(let ((outer-value #f))
(format #t "Before adding 6/8 rule: ~s\n\n" default-time-signature-settings)
                   (set! outer-value (assoc-get '(6 . 8) 
default-time-signature-settings))
                   (if (not outer-value) (set! outer-value '()))
                   (set! outer-value (assoc-set! outer-value 'beamExceptions 
                                       #{ \beamExceptions { a 8[ d' 8 f'  a' ] 
e' 8[ e' 8]}#}
                                       ))
                   (set! default-time-signature-settings (assoc-set! 
default-time-signature-settings '(6 . 8) outer-value))
(format #t "After adding 6/8 rule: ~s\n\n" default-time-signature-settings)
)

\score {
         {  \time 6/8  \MvmntIVoiceI    }       
       }

8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><

The output to the terminal is:
8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><
Before adding 6/8 rule: (((2 . 2) (beamExceptions (end (1/32 8 8 8 8)))) ((3 . 
2) (beamExceptions (end (1/32 8 8 8 8 8 8)))) ((3 . 4) (beamExceptions (end 
(1/8 6) (1/12 3 3 3)))) ((3 . 8) (beamExceptions (end (1/8 3)))) ((4 . 2) 
(beamExceptions (end (1/16 4 4 4 4 4 4 4 4)))) ((4 . 4) (beamExceptions (end 
(1/8 4 4) (1/12 3 3 3 3)))) ((4 . 8) (beatStructure 2 2)) ((6 . 4) 
(beamExceptions (end (1/16 4 4 4 4 4 4)))) ((9 . 4) (beamExceptions (end (1/32 
8 8 8 8 8 8 8 8)))) ((12 . 4) (beamExceptions (end (1/32 8 8 8 8 8 8 8 8 8 8 8 
8)))) ((5 . 8) (beatStructure 3 2)) ((8 . 8) (beatStructure 3 3 2)))

After adding 6/8 rule: (((6 . 8) (beamExceptions (end (1/8 4 2)))) ((2 . 2) 
(beamExceptions (end (1/32 8 8 8 8)))) ((3 . 2) (beamExceptions (end (1/32 8 8 
8 8 8 8)))) ((3 . 4) (beamExceptions (end (1/8 6) (1/12 3 3 3)))) ((3 . 8) 
(beamExceptions (end (1/8 3)))) ((4 . 2) (beamExceptions (end (1/16 4 4 4 4 4 4 
4 4)))) ((4 . 4) (beamExceptions (end (1/8 4 4) (1/12 3 3 3 3)))) ((4 . 8) 
(beatStructure 2 2)) ((6 . 4) (beamExceptions (end (1/16 4 4 4 4 4 4)))) ((9 . 
4) (beamExceptions (end (1/32 8 8 8 8 8 8 8 8)))) ((12 . 4) (beamExceptions 
(end (1/32 8 8 8 8 8 8 8 8 8 8 8 8)))) ((5 . 8) (beatStructure 3 2)) ((8 . 8) 
(beatStructure 3 3 2)))
8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><

which seems to be perfect, but the second bar just has the (1/8 3 3)
pattern when typeset.

If anyone can illuminate me I would be very grateful.

Richard





On Thu, 2015-09-03 at 12:50 +0100, Richard Shann wrote:
> On Thu, 2015-09-03 at 12:59 +0200, David Kastrup wrote:
> > Richard Shann <address@hidden> writes:
> > 
> > > On Thu, 2015-09-03 at 10:54 +0200, David Kastrup wrote:
> > >> Richard Shann <address@hidden> writes:
> > >> 
> > >> > On Wed, 2015-09-02 at 20:13 +0200, David Kastrup wrote:
> > >> >> 
> > >> >> > And there is a comment somewhere about using | to separate
> > >> >> something,
> > >> >> > I guess bars with the same \time signature (or, indeed different
> > >> >> > ones).
> > >> >> 
> > >> >> No, it's always for exactly one time signature, but at the time it is
> > >> >> called, LilyPond has no idea just how long a bar is and can't count it
> > >> >> off itself.  So you need to separate rule patterns by |. 
> > >> >
> > >> > Ah, in that case I need a way of building up the list of 
> > >> > beamExceptions,
> > >> > so the user can define beaming rules for all the time signature changes
> > >> > they use in the score.
> > >> 
> > >> There are separate commands for defining time-signature-specific
> > >> exceptions rather than the currently active exception list.
> > >
> > > I was just experimenting with something along those lines when your
> > > email arrived:
> > >
> > > #(override-time-signature-setting '(3 . 8) '())
> > >
> > >
> > > I was thinking this might revert the 3/8 rules to the default, but I'm
> > > not sure I've got it right yet. I got there from Simon Albrecht pointing
> > > me to
> > 
> > Anything wrong with using \overrideTimeSignatureSettings here?  Cf
> > <URL:http://lilypond.org/doc/v2.18/Documentation/notation/displaying-rhythms#index-time-signature-default-settings>
> 
> 
> Well, that is the facility currently available in Denemo, but it applies
> to a particular instance of a time signature change, the user has to
> re-define (or cut and paste) to use it in another part of the score.
> 
> I think I have got there with modifying default-time-signature-settings
> - now I have:
> 
> beamExceptions-three-eight =   \beamExceptions {  e'8[ f'8]a'8 }
> 
> #(let ((outer-value #f) (value #f))
>    (set! outer-value (assoc-get '(3 . 8) default-time-signature-settings))
>    (set! value (assoc-get 'beamExceptions outer-value))
>    (set! outer-value (assoc-set! outer-value 'beamExceptions 
> beamExceptions-three-eight))
>    (set! default-time-signature-settings (assoc-set! 
> default-time-signature-settings '(3 . 8) outer-value)))
>   
> This changes the 3/8 rule to 2 beamed and one un-beamed 1/8 note in the
> bar. the beam exceptions can be created by the Denemo user simply by
> selecting the music which has been manually beamed and declaring that
> this is to be the rule, (or added to the current beamExceptions etc).
> 
> I think I am now cooking with gas - thank you very much David and Simon,
> and apologies for a slightly off topic thread. 
> 
> Richard
> 
> 
> 
> 
> 
> 
> _______________________________________________
> lilypond-user mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/lilypond-user





reply via email to

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