Liedtext Bindestrich bei Variablen

Begonnen von Hilflos-im-Code, Freitag, 22. September 2017, 09:29

« vorheriges - nächstes »

Hilflos-im-Code

\version "2.19.65"
cha = \lyricmode {
  cha -- ka -- ti -- ki
 
}

\new DrumStaff { \override Staff.StaffSymbol.line-positions = #'(0 ) \repeat unfold 7 { a16 } a32 a }
    \addlyrics { \cha \cha  ba   }


Ich hätte gerne vor dem "ba" einen Bindestrich. Aber das übliche " -- " funktioniert nicht.

harm6

Nicht so hastig ;)
Es funktioniert sehr wohl. Wenn Du ragged-right = ##f setzt, siehst Du das LyricHyphen. Wie es allgemeinen Gepflogenheiten entspricht wird, entfällt es jedoch sobald der zur Verfügung stehende Platz nicht mehr ausreicht.
Falls Du es aber auf jeden Fall haben willst, sorge für den dafür notwendigen Raum. Hier mit LyricHyphen.minimum-distance:


\version "2.19.65"
cha = \lyricmode {
  cha -- ka -- ti -- ki

}

\new DrumStaff {
\override Staff.StaffSymbol.line-positions = #'(0 )
\repeat unfold 7 { a16 } a32 a
}
    \addlyrics {
    \override LyricHyphen.minimum-distance = 1 %% defualt ist 0.1
    \cha \cha  -- ba   
    }


Gruß,
  Harm

Malte

#2
Zitat von: harm6 am Freitag, 22. September 2017, 10:50
Nicht so hastig ;)
Es funktioniert sehr wohl.
Selber nicht so hastig ;) Bist du grad mal wieder auf dem aktuellen master unterwegs statt auf 2.19.65? 2.19.65 sagt nämlich ,,syntax error, unexpected --".

Edit: Ja, daran liegts, ,,2.21.0" kommt damit klar.

harm6

Zitat
Selber nicht so hastig ;) Bist du grad mal wieder auf dem aktuellen master unterwegs statt auf 2.19.65? 2.19.65 sagt nämlich ,,syntax error, unexpected --".
Touché.
Es wird wirklich Zeit für 2.20.0 oder zumindest die nächste devel-release.

Gruß,
  Harm

harm6

Ok, das in 2.19.65 eben noch nicht erhältliche feature ist
5181 Integrate lone post-events into surrounding expressions. .
Mir war vorher nicht bewußt, daß LyricHyphen ja ein post-event ist, wieder was gelernt ;)

Aber man kann scheme bemühen:


\version "2.19.65"

add-hyphen-to-last-lyric =
  \applyMusic
#(lambda (mus)
  (let* ((last-lyr-evt (last (extract-typed-music mus 'lyric-event)))
         (last-arts (ly:music-property last-lyr-evt 'articulations))
         (last-has-no-hyphen?
           (not
             (any
               (lambda (l) (music-is-of-type? l 'hyphen-event))
               last-arts))))
  (if last-has-no-hyphen?
      (ly:music-set-property!
        last-lyr-evt
        'articulations
        (cons (make-music 'HyphenEvent) last-arts)))
  mus))
  \etc

cha = \lyricmode {
  cha -- ka -- ti -- ki
}

\new DrumStaff {
  \override Staff.StaffSymbol.line-positions = #'(0)
  \repeat unfold 7 { a16 } a32 a
}
\addlyrics {
\override LyricHyphen.minimum-distance = 1 %% default ist 0.1
\cha
\add-hyphen-to-last-lyric
\cha 
ba   
}


Gruß,
  Harm

Hilflos-im-Code

Danke.

Ich erlaube mir wegen https://lilypondforum.de/index.php/topic,135.msg947.html, dies als klassisches Beispiel für unfunktionalen Code zu kennzeichnen. Wegen einem Bindestrich so einen Aufwasch.

harm6

ZitatDanke.
Gern geschehen.

Zitat
Ich erlaube mir wegen https://lilypondforum.de/index.php/topic,135.msg947.html, dies als klassisches Beispiel für unfunktionalen Code zu kennzeichnen.
Du bist an eine der Grenzen des Programs gestoßen. Allerdings ist eine Erweiterung des Programs, die diese Grenze weiter hinausschiebt bereits upstream vorhanden. Du hast einen workaround.

Grenzen wird es immer geben. Aktive Weiterentwicklung findet statt. Aktiver user-support findet statt.
Was willst Du mehr? Eine perfekte Welt?

Tut mir leid Dich zu desillusionieren. Gibts nicht.

Was das Ganze allerdings mit dem von Dir verlinkten post zu tun hat? Ich habe nicht den leisesten Hauch eines Schimmers.

ZitatWegen einem Bindestrich so einen Aufwasch.
Diese Äußerung läßt darauf schließen, daß Dir sowohl das Problem als auch die Lösung in ihrer voll umfassenden Tragweite nicht bewußt ist.

Vielleicht kann das ja jemand anderer erklären. Ich hab' keine Lust dazu.


-Harm