Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: friedemann_bach am Dienstag, 13. September 2011, 00:12

Titel: Triolen mit Bindebögen drin
Beitrag von: friedemann_bach am Dienstag, 13. September 2011, 00:12
Liebes Forum,

das folgende kleine Beispiel enthält eine Triole, von denen die zwei ersten Noten mit einem Bindebogen versehen sind. Ich würde erwarten, dass der Bogen in die Nähe der beiden ersten Notenköpfe gelegt ist, während die Triolenklammer alle drei Noten überspannt. Lilypond 2.14.1 setzt aber den Bogen über die Klammer drüber (siehe PDF im Anhang). Hier der Code:

\version "2.14.1"
\include "deutsch.ly"

Melodie = \relative f' {
\key c \major
\time 2/2
\partial 4
c4 des4 f4 g4 c4 \times 2/3 { b4( f4) g4 } es2( f4)
}

\score {
<<
\new Staff {
\clef treble
\new Voice = "Voice1" \Melodie
}
>>
}

Weiß jemand Abhilfe? Vielleicht gibt es einen kleinen Trick oder eine Einstellung, mit der sich dies beheben lässt. Ich freue mich über jede Hilfe.
Titel: Re: Triolen mit Bindebögen drin
Beitrag von: harm6 am Dienstag, 13. September 2011, 00:53
Hallo friedemann,

die Bögen in LilyPond sind manchmal echt eine Pein.

Aber so klappts:

\version "2.14.1"
\include "deutsch.ly"

Melodie = \relative f' {
\key c \major
\time 2/2
\partial 4 c4
des4 f g c |
  \override Slur #'(details extra-object-collision-penalty) = #'45           % default ist 50
\times 2/3 { b4( f4) g4 } es2( |
f4)
}

\score {
<<
\new Staff {
\clef treble
\new Voice = "Voice1" \Melodie
}
>>
}

Gruß,
  Harm
Titel: Re: Triolen mit Bindebögen drin
Beitrag von: friedemann_bach am Mittwoch, 14. September 2011, 22:45
Hallo Harm,

vielen Dank, das hat prima geklappt. Kann man das ggf. auch für die gesamte Partitur einstellen, falls der Fall regelmäßig bzw. parallel in anderen Stimmen auftritt?

Beste Grüße!
Titel: Re: Triolen mit Bindebögen drin
Beitrag von: harm6 am Mittwoch, 14. September 2011, 23:32
Zitat
Kann man das ggf. auch für die gesamte Partitur einstellen, falls der Fall regelmäßig bzw. parallel in anderen Stimmen auftritt?

Natürlich!

Zwei grundsätzliche Möglichkeiten:

1. Innerhalb der Stimme, indem man den context präzisiert: \override Score.Slur #'(details extra-object-collision-penalty) = #'45
Jetzt gilt der Befehl für den gesamten Score ab dem Zeitpunkt an dem er gesetzt ist.

2. In einem layout-Block und dort in einen Score-context (Staff- und Voice-context geht auch, kannst ja mal drüber nachdenken warum. ;) ):

   \layout {
           \context {
              \Score
              \override Slur #'(details extra-object-collision-penalty) = #'45
           }
   }

Jetzt gilt der Befehl für den gesamten Score von Anfang an.

Im Code unten sind beide Befehlsmöglichkeiten auskommentiert. Du kannst sie wahlweise anknipsen.

\version "2.14.1"
\include "deutsch.ly"

MelodieI = \relative f' {
\key c \major
\time 2/2
\partial 4 c4
des4 f g c |
  %\override Score.Slur #'(details extra-object-collision-penalty) = #'45
\times 2/3 { b4( f4) g4 } es2( |
f4) r2. |
\times 2/3 { b4( f4) g4 } es2( |
f4) r2. |
}

MelodieII = \relative f' {
\partial 4 c4
des4 f g c |
\times 2/3 { b4( f4) g4 } es2( |
f4) r2. |
\times 2/3 { b4( f4) g4 } es2( |
f4) r2. |
}

\score {
<<
\new Staff {
\clef treble
\new Voice = "Voice1" \MelodieI
}
\new Staff {
\clef treble
\new Voice = "Voice2" \MelodieII
}
>>
\layout {
        \context {
        \Score
        %\override Slur #'(details extra-object-collision-penalty) = #'45
        }
}
}

Gruß,
  Harm
Titel: Re: Triolen mit Bindebögen drin
Beitrag von: friedemann_bach am Mittwoch, 14. September 2011, 23:38
Hallo Harm,

klasse, vielen Dank! Ich lerne sehr viel dadurch.

In der Tat brauche ich genau solche übergreifenden Einstellungen häufger, da ich viel polyphone Musik notiere und sich vieles in allen Stimmen wiederholt. Dieses Prinzip werde ich dann mal auf andere Dinge zu übertragen versuchen.

Beste Grüße :)
Titel: Re: Triolen mit Bindebögen drin
Beitrag von: harm6 am Freitag, 16. September 2011, 01:50
Hallo friedemann,

noch eine Anmerkung:
Der Befehl \override Slur #'(details extra-object-collision-penalty) = #'45 ist die sehr spezielle Lösung für ein spezielles Problem. Ich habe ihn tatsächlich noch nie vorher angewendet gesehen. In den meisten Fällen wird man eher den Weg über control-points oder positions gehen müssen.

Gruß,
  Harm