double slurs within beamed notes

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

double slurs within beamed notes

Lucas Werkmeister

Hi everyone!

In a composition I’m transcribing, there are double slurs between some notes (see attached image, also uploaded at [1]), and the lower slurs are right next to the note heads, inside the beams – whereas when typeset by LilyPond, the slurs are outside the beams. I’m wondering what the best way is to move the slurs inside the beams.

Searching the internet, I found one prior thread for this issue [2] – but in that case, it turned out that the score actually had a tie and a slur, not a double slur, and after one slur had been turned into a tie, the other slur could be tweaked without difficulty. In my case, however, I’m definitely dealing with a double slur (four different pitches), and I haven’t found a way to tweak the two slur halves independently – if I tweak, for instance, the extra-offset, both parts of the double slur move, which I don’t want.

I did find one workaround, and I’ll describe it just in case someone else with the same problem finds this email later, but it is horrible:

1. Introduce an auxiliary voice with the << { … } \new Voice { … } >> construct.
2. Duplicate the notes in both voices.
3. In the main voice, explicitly point the slur away from the beams (up or down, depending on where the beam is).
4. In the other voice, explicitly point the slur towards the beams (down or up). We have a double slur, but it’s still outside the beam.
5. Still in the other voice, apply \noBeam to the slurred notes. This makes the slur attach directly to the note heads. Our slurs are now where we want them – we just need to get rid of all the auxiliary stuff.
5. \hide the NoteHead in the auxiliary voice. (Don’t \omit it, otherwise the slur won’t position correctly – in one case I even got LilyPond to segfault with \omit.)
6. \omit the Stem and Flag in the auxiliary voice. (In this case, \hide isn’t enough, otherwise the stems in the main voice will be lengthened in an attempt to reduce collisions with the invisible grobs.)
7. Repeat this for every double slur you have.

This hack is awful enough that, as much as I want to reproduce the printed score accurately, I’m not yet sure whether I will end up using it. It’s also not perfect – LilyPond still prints warnings about “too many clashing note columns” (due to the hidden but not omitted NoteHead, I guess).

Does anyone have better ideas? :)

Cheers,
Lucas

[1]: https://i.imgur.com/awenjmf.jpg
[2]: https://lists.gnu.org/archive/html/lilypond-user/2010-02/msg00697.html


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user

slurs.jpg (112K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: double slurs within beamed notes

Kieren MacMillan
Hi Lucas,

> I did find one workaround, and I’ll describe it just in case someone else with the same problem finds this email later, but it is horrible:

Here’s another… though I’m not sure it’s much less horrible:

%%%  SNIPPET ENDS
\version "2.19.80"

stuff = {
  <b'-\tweak Slur.extra-offset #'(0 . -0.4) \=1 _( f''-\tweak Slur.extra-offset #'(0 . 0.6) \=2 ^(>16 <c''\=1 ) e'' \=2 )>8
  <b'-\tweak Slur.extra-offset #'(0 . -0.4) \=1 _( f''-\tweak Slur.extra-offset #'(0 . 0.6) \=2 ^(>16 <c''\=1 ) e'' \=2 )>16
  <b'-\tweak Slur.extra-offset #'(0 . -0.4) \=1 _( f''-\tweak Slur.extra-offset #'(0 . 0.6) \=2 ^(>16 <c''\=1 ) e'' \=2 )>8
}

\score {
  \stuff
}
%%%  SNIPPET BEGINS

Fortunately, this could relatively easily be function-ized… And likely, the offset could be replaced with something automagic (instead of trial-and-error). So maybe it’s a winner after all?

Hope this helps!
Kieren.

________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: double slurs within beamed notes

Lucas Werkmeister
Hi Kieren, thanks for taking a look!

On 29.03.2018 01:52, Kieren MacMillan wrote:
Hi Lucas,

I did find one workaround, and I’ll describe it just in case someone else with the same problem finds this email later, but it is horrible:
Here’s another… though I’m not sure it’s much less horrible:

%%%  SNIPPET ENDS
\version "2.19.80"

stuff = {
  <b'-\tweak Slur.extra-offset #'(0 . -0.4) \=1 _( f''-\tweak Slur.extra-offset #'(0 . 0.6) \=2 ^(>16 <c''\=1 ) e'' \=2 )>8
  <b'-\tweak Slur.extra-offset #'(0 . -0.4) \=1 _( f''-\tweak Slur.extra-offset #'(0 . 0.6) \=2 ^(>16 <c''\=1 ) e'' \=2 )>16
  <b'-\tweak Slur.extra-offset #'(0 . -0.4) \=1 _( f''-\tweak Slur.extra-offset #'(0 . 0.6) \=2 ^(>16 <c''\=1 ) e'' \=2 )>8
}

\score {
  \stuff
}
%%%  SNIPPET BEGINS

Fortunately, this could relatively easily be function-ized… And likely, the offset could be replaced with something automagic (instead of trial-and-error). So maybe it’s a winner after all?

Hope this helps!
Kieren.
Hm, is this \=1 thing a new feature in the development version? I can’t get it to work on 2.18.2.

I’m guessing that you’re adding slurs to the individual notes of a chord (and the \=1, \=2 is probably so that you can distinguish which rparen closes which slur), and then you have two objects that can be tweaked individually. Which would be a lot less hacky :)

One difference to my horrible hack (I think) is that in this case you’re shifting a slur that was aligned to a beam, not to the note heads, so I assume the slur will not follow the slight upwards slope from the b to the c. (You could probably emulate that with some more tweaks or \shape.)

Cheers,
Lucas

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: double slurs within beamed notes

Kieren MacMillan
Hi Lucas,

> Hm, is this \=1 thing a new feature in the development version? I can’t get it to work on 2.18.2.

Might be. Sorry if you can’t take advantage of it. (Related: I recommend you consider using the "unstable" version regularly: I use it exclusively, for mission-critical day-to-day work as a professional composer and arranger, and have problems so seldom that I can say “never” and kind of mean it!)

> I’m guessing that you’re adding slurs to the individual notes of a chord (and the \=1, \=2 is probably so that you can distinguish which rparen closes which slur), and then you have two objects that can be tweaked individually. Which would be a lot less hacky :)

Precisely so.

> One difference to my horrible hack (I think) is that in this case you’re shifting a slur that was aligned to a beam, not to the note heads, so I assume the slur will not follow the slight upwards slope from the b to the c. (You could probably emulate that with some more tweaks or \shape.)

Actually, the slurs *do* [perhaps surprisingly!] align to the notehead — too closely, in fact, as you can see from the untweaked snippet:

%%%  SNIPPET BEGINS
\version "2.19.80"

stuff = {
  <b'\=1 _( f''\=2 ^(>16 <c''\=1 ) e'' \=2 )>8
  <b'\=1 _( f''\=2 ^(>16 <c''\=1 ) e'' \=2 )>16
  <b'\=1 _( f''\=2 ^(>16 <c''\=1 ) e'' \=2 )>8
}

\score {
  \stuff
}
%%%  SNIPPET ENDS

(If you need to, use lilybin.com to see this in the development version.)

Hope this helps!
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: double slurs within beamed notes

Carl Sorensen-3
In reply to this post by Lucas Werkmeister

 

 

From: Lucas Werkmeister <[hidden email]>
Date: Wednesday, March 28, 2018 at 4:39 PM
To: <[hidden email]>
Subject: double slurs within beamed notes

 

 

<snip>

Does anyone have better ideas? :)

Slur on one note, phrasing slur on the other?

 

Carl

 


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: double slurs within beamed notes

Mats Bengtsson-4
In reply to this post by Lucas Werkmeister


On 2018-03-29 00:39, Lucas Werkmeister wrote:
>
> Hi everyone!
>
> In a composition I’m transcribing, there are double slurs between some
> notes (see attached image, also uploaded at [1]), and the lower slurs
> are right next to the note heads, inside the beams – whereas when
> typeset by LilyPond, the slurs are outside the beams. I’m wondering
> what the best way is to move the slurs inside the beams.
>
Just use the new features of version 2.19:
\version "2.19.80"

\relative c''{
   \key f \major
   \time 2/4
   <b_( f'( >16 <c) e) >8 <b_( f'( >16 <c) e) > <b_( f'( > <c) e) >8
   }

These, and many more improvements in 2.19 are described at
http://lilypond.org/doc/v2.19/Documentation/changes/index.html.

     /Mats

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: double slurs within beamed notes

Mats Bengtsson-4
Sorry, I was too quick! See corrected version below.


On 2018-03-29 09:24, Mats Bengtsson wrote:

>
>
> On 2018-03-29 00:39, Lucas Werkmeister wrote:
>>
>> Hi everyone!
>>
>> In a composition I’m transcribing, there are double slurs between
>> some notes (see attached image, also uploaded at [1]), and the lower
>> slurs are right next to the note heads, inside the beams – whereas
>> when typeset by LilyPond, the slurs are outside the beams. I’m
>> wondering what the best way is to move the slurs inside the beams.
Just use the new features of version 2.19:
\version "2.19.80"

\relative c''{
   \key f \major
   \time 2/4
   <b_\=1( f'\=2(>16 <c\=1) e\=2)>8 <b_\=1( f'\=2(>16 <c\=1) e\=2)>
<b_\=1( f'\=2(>16 <c\=1) e\=2)>8
}

> These, and many more improvements in 2.19 are described at
> http://lilypond.org/doc/v2.19/Documentation/changes/index.html.
     /Mats


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: double slurs within beamed notes

Kieren MacMillan
Hi Mats,

> Just use the new features of version 2.19:

I tried that (see a previous post on this thread), but there are collisions (see a separate "bug?" thread).

Did you not find that the slurs collide with the noteheads on your machine?

Cheers,
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: double slurs within beamed notes

Mats Bengtsson-4


On 2018-03-29 13:33, Kieren MacMillan wrote:
> Hi Mats,
>
>> Just use the new features of version 2.19:
> I tried that (see a previous post on this thread), but there are collisions (see a separate "bug?" thread).
>
> Did you not find that the slurs collide with the noteheads on your machine?
Right, now that you mention it. It seems to happen as soon as you
specify the slur per note head instead of for the full chord. Looking at
the examples in
http://lilypond.org/doc/v2.19/Documentation/changes/index.html, the
intention is probably to make it clear exactly which note head in the
chord the slur starts from, but in this particular example it seems to
fail for two reasons:
- The horizontal distance between the two notes is very short, and the
slur is not shortened sufficiently.
- For slurs attached to a bottom or top note of a chord, it would make
sense to add some vertical spacing, similar to the spacing used when the
slur is attached to the full chord, since there's no uncertainty about
which of the notes the slur starts from.

Regarding the latter issue, it would be worthwhile to check with Gould
if there is a typesetting convention to distinguish between a slur that
starts from the top note of a chord and a slur that starts from the full
chord, as Lilypond currently does it, or if these two situations should
be typeset the same.

Sorry about double posting already posted solutions, I follow the
mailing list in Digest mode, so there was some delay.

    /Mats

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: double slurs within beamed notes

David Kastrup
In reply to this post by Lucas Werkmeister
Lucas Werkmeister <[hidden email]> writes:

> Hi everyone!
>
> In a composition I’m transcribing, there are double slurs between some
> notes (see attached image, also uploaded at [1]), and the lower slurs
> are right next to the note heads, inside the beams – whereas when
> typeset by LilyPond, the slurs are outside the beams. I’m wondering what
> the best way is to move the slurs inside the beams.
>
> I did find one workaround, and I’ll describe it just in case someone
> else with the same problem finds this email later, but it is horrible:
>
> 1. Introduce an auxiliary voice with the << { … } \new Voice { … } >>
> construct.
> 2. Duplicate the notes in both voices.
> 3. In the main voice, explicitly point the slur away from the beams (up
> or down, depending on where the beam is).
> 4. In the other voice, explicitly point the slur towards the beams (down
> or up). We have a double slur, but it’s still outside the beam.
> 5. Still in the other voice, apply \noBeam to the slurred notes. This
> makes the slur attach directly to the note heads. Our slurs are now
> where we want them – we just need to get rid of all the auxiliary stuff.
> 5. \hide the NoteHead in the auxiliary voice. (Don’t \omit it, otherwise
> the slur won’t position correctly – in one case I even got LilyPond to
> segfault with \omit.)
> 6. \omit the Stem and Flag in the auxiliary voice. (In this case, \hide
> isn’t enough, otherwise the stems in the main voice will be lengthened
> in an attempt to reduce collisions with the invisible grobs.)
> 7. Repeat this for every double slur you have.
>
> This hack is awful enough that, as much as I want to reproduce the
> printed score accurately, I’m not yet sure whether I will end up using
> it. It’s also not perfect – LilyPond still prints warnings about “too
> many clashing note columns” (due to the hidden but not omitted NoteHead,
> I guess).
>
> Does anyone have better ideas? :)

No minimal example so I'll just sketch.

c-\tweak ... ^( -\tweak ... _(

Just write out upper and lower slurs explicitly with their own direction
markers and tweak them individually.

--
David Kastrup

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user