lilypond-user
[Top][All Lists]
Advanced

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

Re: Slurs within & across \repeat tremolo


From: Simon Albrecht
Subject: Re: Slurs within & across \repeat tremolo
Date: Tue, 19 Jul 2016 12:21:39 +0200

On 19.07.2016 06:07, Joel C. Salomon wrote:
At
<https://github.com/jcsalomon/CrookJ-PeterPan/blob/ffd3d2a/PP10_The_Approach_of_the_Indians.ly>
is my current effort toward recreating the original score, but I’m
having trouble with the opening bars (image attached).

I can imitate the _look_ of the score simply enough:

        a16( gs a gs    a gs    a gs    \repeat tremolo 4 { a gs) }     | 
\kluge |
        \voiceOne
        \repeat tremolo 4 { f( d }      \repeat tremolo 4 { f d) }      | 
\kluge |

and so on (see the file for details on the `\kluge`; not related to this
question), but as `\unfoldRepeats` (e.g., for MIDI generation)
indicates, the slur is actually terminated the first time the
close-parenthesis is expanded; the effect is that of

     a( b    a  b    a  b    a  b    c  d)   c  d    c  d    c  d

when it “ought” to be

     a( b    a  b    a  b    a  b    c  d    c  d    c  d    c  d)

instead.

Here, it’s important that the slurs don’t need to be directly appended to the notes, they only have to be at the right timestep. Empty chords, parallel music expressions and once again the nice \after function can be used for the following neat version: ( { \after 4.. ) \music } means: After 4.. duration, insert a slur-closing event into \music.)

%%%%%%%%%%%%%
\version "2.19.25" % and higher
% Thanks to David K. for the inspiration!
after =
#(define-music-function (t e m) (ly:duration? ly:music? ly:music?)
   #{
     \context Bottom <<
       #m
       { \skip $t <> -\tweak extra-spacing-width #empty-interval $e }
     >>
   #})

%\unfoldRepeats
{ <>( \repeat tremolo 4 { f16 d }   \after 4.. ) \repeat tremolo 4 { f d } }
%%%%%%%%%%%%

As a side note: It’s considered bad practice to have tabs in LilyPond source code.

Best, Simon



reply via email to

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