lilypond-user
[Top][All Lists]
Advanced

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

Re: setting the beatlength for sixteenth-sixtuplets


From: Mats Bengtsson
Subject: Re: setting the beatlength for sixteenth-sixtuplets
Date: Mon, 09 Nov 2009 10:55:35 +0100
User-agent: Thunderbird 2.0.0.5 (X11/20070716)

How about the following:

\version "2.12.2"
SSX = #(define-music-function (parser location x) (ly:music?)
#{
 \set beamSettings = #'()
  \set beatLength = #(ly:make-moment 1 8)
 \set tupletSpannerDuration = #(ly:make-moment 1 8 )
 \times 2/3 { $x }
 \unset tupletSpannerDuration
\unset beatLength
\unset beamSettings
#})

\relative c' {
 \SSX { c16 d e f e d e f g a g f a b c d c b }
}


It seems that there's a default beaming rule that causes your problems. Setting beamSetting = #'() removes all such default rules so that your beamLength setting is effective.

   /Mats

Stefan Thomas wrote:
Well, I found a solution, but I thought, there would be an easier solution.
\version "2.12.2"
ST = #(define-music-function (parser location x) (ly:music?)
#{
 #(override-auto-beam-setting '(end 1 24 * *) 1 8)
  #(override-auto-beam-setting '(end 1 24 * *) 2 8)
   #(override-auto-beam-setting '(end 1 24 * *) 3 8)
 #(override-auto-beam-setting '(end 1 24 * *) 4 8)
  #(override-auto-beam-setting '(end 1 24 * *) 5 8)
 #(override-auto-beam-setting '(end 1 24 * *) 6 8)
  #(override-auto-beam-setting '(end 1 24 * *) 7 8)
   #(override-auto-beam-setting '(end 1 24 * *) 8 8)
    #(override-auto-beam-setting '(end 1 24 * *) 9 8)
     #(override-auto-beam-setting '(end 1 24 * *) 10 8)
      #(override-auto-beam-setting '(end 1 24 * *) 11 8)
       #(override-auto-beam-setting '(end 1 24 * *) 12 8)
  \set tupletSpannerDuration = #(ly:make-moment 1 8 )
  \times 2/3 { $x }
    #(revert-auto-beam-setting '(end 1 24 * *) 1 8)
#(revert-auto-beam-setting '(end 1 24 * *) 2 8)
#(revert-auto-beam-setting '(end 1 24 * *) 3 8)
#(revert-auto-beam-setting '(end 1 24 * *) 4 8)
#(revert-auto-beam-setting '(end 1 24 * *) 5 8)
#(revert-auto-beam-setting '(end 1 24 * *) 6 8)
#(revert-auto-beam-setting '(end 1 24 * *) 7 8)
#(revert-auto-beam-setting '(end 1 24 * *) 8 8)
#(revert-auto-beam-setting '(end 1 24 * *) 9 8)
#(revert-auto-beam-setting '(end 1 24 * *) 10 8)
#(revert-auto-beam-setting '(end 1 24 * *) 11 8)
#(revert-auto-beam-setting '(end 1 24 * *) 12 8)
  \unset tupletSpannerDuration
#})

\relative c' { \time 2/2
  \ST { c16 d e f e d e f g a g f a b c d c b
  c b a g f e
  }
}


2009/11/9 Paul Scott <address@hidden <mailto:address@hidden>>

    Stefan Thomas wrote:

        Dear Paul,
        I would like to have the Sixtheenth-Triplets beamed in groups
        of three, altough when there is a 2/2 bar, e.g..


    Ah!

    I haven't taken the time to understand auto beaming rules yet.  I
    usually just manually beam some of the notes and the rest seem to
    follow along:

    \set tupletSpannerDuration = #(ly:make-moment 1 8)
    \times 2/3 { a16 b a b[ a b] a b a b[ a b] }

    Maybe now would be a good time for me to learn this.

    Are you saying there isn't an auto-beaming solution for you?

    Paul


        2009/11/9 Paul Scott <address@hidden
        <mailto:address@hidden> <mailto:address@hidden
        <mailto:address@hidden>>>


           Stefan Thomas wrote:

               Dear community,
               I would like to define a function, that allows me to
        set the
               beat-length to 1/8 for 16th-triplets.  And I would
        like, if it
               could work for every kind of bar.
               I tried it with:
               \version "2.12.2"
               SSX = #(define-music-function (parser location x)
        (ly:music?)
               #{
                 \set beatLength = #(ly:make-moment 1 8)
                \set tupletSpannerDuration = #(ly:make-moment 1 8 )
                \times 2/3 { $x }
                \unset tupletSpannerDuration
                \unset beatLength
               #})

               \relative c' {
                \SSX { c16 d e f e d e f g a g f a b c d c b }
               }


           I don't know if I'm missing the desired functionality but
        this is
           what I do.  It may or not be as easy as what you want.

           esTuplets = \set tupletSpannerDuration = #(ly:make-moment 1 8)
           eeTuplets = \set tupletSpannerDuration = #(ly:make-moment 1 4)
           eqTuplets = \set tupletSpannerDuration = #(ly:make-moment 1 2)

           %The second letter is *s*ixteenth, *e*ighth, *q*uarter

           I just execute the one I want for the code which follows it.

           Forgive me if I'm not understanding your need.

           Paul Scott





-- Paul Scott
    Librarian
    Southern Arizona Symphony Orchestra


------------------------------------------------------------------------

_______________________________________________
lilypond-user mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/lilypond-user

--
=============================================
        Mats Bengtsson
        Signal Processing
        School of Electrical Engineering
        Royal Institute of Technology (KTH)
        SE-100 44  STOCKHOLM
        Sweden
        Phone: (+46) 8 790 8463                         
       Fax:   (+46) 8 790 7260
        Email: address@hidden
        WWW: http://www.s3.kth.se/~mabe
=============================================





reply via email to

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