lilypond-user
[Top][All Lists]
Advanced

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

LaissezVibrerTies, RepeatTies and ties at repeat alternatives


From: Malte Meyn
Subject: LaissezVibrerTies, RepeatTies and ties at repeat alternatives
Date: Mon, 29 Feb 2016 18:31:53 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1

Hi list,

I’m not very happy about LilyPond’s ties and semi-ties. Some problems/questions:

1. Is there any difference between LaissezVibrerTies and RepeatTies except of the default head-direction? Or could one save redundant code (including different grob names for basically the same thing etc.) here?

2. IMO LaissezVibrerTies are almost always too short. And there are only very ugly hacks like http://lsr.di.unimi.it/LSR/Item?id=715 to change the length; it would be nice to have a grob property 'length or 'minimum-length.

3. This is what annoys me most: Hacks like http://lsr.di.unimi.it/LSR/Item?id=794 shouldn’t be necessary; instead, LilyPond should be able to take input ~ at repeat alternatives and get things right automagically. Or at least there should be easy-to-use commands for ties from/to barlines so abusing \laissezVibrer and \repeatTie isn’t necessary. Probably they should behave as if there was a line break and then print only the needed half.

(4. Slurs at repeats aren’t really nice either …)

Some opinions on that? How easy would that be implemented?

Here some ideas for 3. and 4.

%%%%%%%%

\version "2.19.36"

% (approximately) desired output
\relative {
  \tieDown \slurUp % for better readability
  d'2( c~
  \repeat volta 2 { c4 d) c( d~ }
  \alternative {
    { d c) d( \afterGrace c\laissezVibrer { \once \hideNotes d) } }
    { \grace { \once \hideNotes c^( } d2\repeatTie c) }
  }
}

% suggested input
%{
\relative {
  \tieDown \slurUp % for better readability
  d'2( c~
  \repeat volta 2 { c4 d) c( d~ }
  \alternative {
    { d c) d( c~ \stopTieAtBarline \stopSlurAtBarline }
    { \startTieAtBarline \startSlurAtBarline d2 c) }
  }
}
%}

% alternative input: detect needed spanners automatically
%{
\relative {
  \tieDown \slurUp % for better readability
  d'2( c~
  \repeat volta 2 { c4 d) c( d~ }
  \alternative {
    { d c) d( c~ \stopSpannersAtBarline }
    { \startSpannersAtBarline d2 c) }
  }
}
%}



reply via email to

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