Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: quadronado am Samstag, 15. Mai 2010, 16:58
-
Hallo,
Ich suche Hilfe beim schreiben eigentlich gängiger Wiederholungszeichen. Ich möchte, dass am Ende einer Zeile "D. S. al Coda" steht und dann gleich in der nächsten Zeile zu Beginn das Coda-Zeichen.
Mir ist es zwar gelungen, "D. S. al Coda" an das Ende einer Zeile zu schreiben:
\once \override Score.RehearsalMark #'break-visibility = #begin-of-line-invisible
\once \override Score.RehearsalMark #'self-alignment-X = #RIGHT
\mark "D. S. al Coda"Aber wie kann ich den Befehl rückgängig machen, damit das folgende Zeichen am Beginn der nächsten Zeile steht? Wenn ich gleich danach
\mark \markup { \musicglyph #"scripts.coda" }eingebe, bekomme ich nur eine Fehlermeldung
Warnung: Zwei gleichzeitige mark-Ereignisse, dieses wird verworfen
Leider habe ich in der Hilfe keine Lösung gefunden. Müsste doch eigentlich ganz einfach sein, vielleicht kann mir hier jemand helfen. Vielen Dank.
-
Hallo und herzlich willkommen im Forum!
Die einfachste und schnellste Lösung ist wohl, das Coda-Zeichen nicht als \mark, sondern als normales TextScript zu verankern:
c^\markup { \musicglyph #"scripts.coda" }
Grüße, Robert
-
Alternativ könntest du auch mit Kadenz und Spacer tricksen:
\relative {
\repeat unfold 16 { c4 }
\once \override Score.RehearsalMark #'break-visibility = #begin-of-line-invisible
\once \override Score.RehearsalMark #'self-alignment-X = #RIGHT
\mark "D.S. al Coda"
\break
\cadenzaOn %% unterbricht Taktnummerierung
s128 \mark \markup { \musicglyph #"scripts.coda" }
\cadenzaOff %% nimmt Taktnummerierung wieder auf
\repeat unfold 16 { c4 } \break
\repeat unfold 16 { c4 }
}
-
Vielen Dank für die schnelle Antwort. :)
Als Notlösung funktionieren beide Vorschläge ganz gut. Gibt es denn keine Lösung, bei der es richtig aussieht?
Bei der ersten Lösung ist das Zeichen zu klein. Bei der zweiten Lösung stimmt die Größe, aber das Zeichen steht zu weit rechts. Ich hätte es gerne genau über dem Notenschlüssel - da, wo es auch erscheint, wenn ich kein D. S. al Coda in der vorherigen Zeile schreibe.
Was bedeutetet eigentlich "s128"?
Edit: Neue Threads für weitere Anfragen erstellt.
-
Immer besser für andere Probleme ein neue Thread zu starten...sonst gibts verwirrung! ;)
Aber zur grösse und platzierung...
c^\markup { \magnify #2 \musicglyph #"scripts.coda" }
versuch mal das um das Symbol grösser zu machen. Du kannst auch #2.5 oder #3 usw probieren.
\once \override Score.RehearsalMark #'extra-offset = #'( -2 . 0 )
\mark \markup { \musicglyph #"scripts.coda" }
die erste Zahl (-2) bringt den Zeichen etwas weiter nach links (positive Zahl wäre nach rechts). Kannst du beliebig weiter verschieben. die zweite Zahl ist für vertikale Ausrichtung, auch mit positive oder negative Zahlen zu steuern.
hilfts?
-
Immer besser für andere Probleme ein neue Thread zu starten...sonst gibts verwirrung! ;)
OK, mache ich dann später.
\once \override Score.RehearsalMark #'extra-offset = #'( -2 . 0 )
\mark \markup { \musicglyph #"scripts.coda" }
die erste Zahl (-2) bringt den Zeichen etwas weiter nach links (positive Zahl wäre nach rechts). Kannst du beliebig weiter verschieben. die zweite Zahl ist für vertikale Ausrichtung, auch mit positive oder negative Zahlen zu steuern.
hilfts?
Vielen Dank. Ich habe das jetzt wie folgt eingebaut
\cadenzaOn %% unterbricht Taktnummerierung
\once \override Score.RehearsalMark #'extra-offset = #'( -2 . 0 )
s128 \mark \markup { \musicglyph #"scripts.coda" }
\cadenzaOff %% nimmt Taktnummerierung wieder aufund das hat leider überhaupt keinen Effekt.
Dafür hat sich ein weiteres Problem mit
\cadenzaOn %% unterbricht Taktnummerierung
s128 \mark \markup { \musicglyph #"scripts.coda" }
\cadenzaOff %% nimmt Taktnummerierung wieder aufergeben. Durch diesen Befehl werden alle Akkordsymbole einige Millimeter nach links verschoben, sodass die Akkordsymbole am Anfang jeder Zeile jetzt am Ende der vorherigen Zeile stehen. :o
Dabei wollte ich doch nur ein einfaches Leadsheet setzen. Komplizierter als ich dachte ... :-[
-
das \once \override muss DIREKT vor \mark kommen! du hast "s128" dazwischen....
-
das \once \override muss DIREKT vor \mark kommen! du hast "s128" dazwischen....
Wenn ich "s128" lösche, ist das Coda-Zeichen ganz verschwunden. ???
Was bewirkt das "s128" denn eigentlich?
-
nicht löschen, einfach vor den anderen Befehlen tippen:
\cadenzaOn %% unterbricht Taktnummerierung
s128
\once \override Score.RehearsalMark #'extra-offset = #'( -2 . 0 )
\mark \markup { \musicglyph #"scripts.coda" }
\cadenzaOff %% nimmt Taktnummerierung wieder auf
-
\once \override Score.RehearsalMark #'extra-offset = #'( -2 . 0 )
oder verwende einen minimalen wert in der form s 1*1/1000
der spacer nimmt dann praktisch keinen platz mehr weg und du vermeidest das mühsame nachkorrigieren, wenn die noten mal dichter mal lockerer stehen!
-
Jungs, danke für die Hilfe, aber es wird einfach nicht besser. Egal was ich hinter dem s (dessen Funktion ihr mir offensichtlich nicht verraten wollt) eingebe, die Verschiebung der Akkordsymbole ist jedes Mal verheerend. Gibt es denn keine richtige Lösung? Sowas sollte doch jedes Programm standardmäßig ohne großes gefrickel können. ??? Notfalls nehme ich auch eine Lösung mit dem Coda-Zeichen an der falschen Stelle, dafür aber mit Akkordsymbolen an der richtigen Stelle.
-
"s" ... NR1.2.2 Unsichtbare-Pausen (http://lilypond.org/doc/v2.13/Documentation/notation-big-page.de.html#Unsichtbare-Pausen) ;)
matthias
-
"s" ... NR1.2.2 Unsichtbare-Pausen (http://lilypond.org/doc/v2.13/Documentation/notation-big-page.de.html#Unsichtbare-Pausen) ;)
matthias
Ah, das s steht für skip. Kein Wunder, dass der Befehl das ganze darauf folgende Layout zerschießt bzw. verschiebt.
:'( Weiß denn nieman, wie man es richtig macht?
-
Jungs, danke für die Hilfe, aber es wird einfach nicht besser. Egal was ich hinter dem s (dessen Funktion ihr mir offensichtlich nicht verraten wollt) eingebe, die Verschiebung der Akkordsymbole ist jedes Mal verheerend. Gibt es denn keine richtige Lösung?
gib doch mal ein kleines beispiel durch, damit wir es an einem reellen objekt durchüben können (oder sollen wir das selbst konstruieren?)
ich habe s den spacer oder spacer rest schon beim namen genannt und du hast ja den hinweis erhalten, wo sich das in der dok befindet!
und pass weiter auf: s ist kein \skip (obwohl dieser an dieser stelle auch verwendet werden kann)!
-
gib doch mal ein kleines beispiel durch, damit wir es an einem reellen objekt durchüben können (oder sollen wir das selbst konstruieren?)
Was meinst du damit genau? Ich habe doch schon im ersten Beitrag den entsprechenden Ausschnitt aus meinen Noten gepostet, das dann modifiziert wurde. Ich bin noch sehr unerfahren mit dem Programm, deshalb verstehe ich leider nicht, was du schreibst.
-
einfach ein minimales beispiel, wo das problem auftaucht - bis jetzt hatte ich geglaubt es gehe um die 2 \mark commands, jetzt kommt aber die verschiebung der akkorde/akkordzeichen dazu.
ich würde also die ersten 2-3 takte oder zeilen lilypond code schicken, wenn nötig sogar mit bild, aber das können wir dann selbst kompilieren. (deshalb solltest du auch sicherstellen, dass der code, den du schickst wirklich kompiliert - nur so können wir auf das echte problem eingehen!)
das wird dann sofort konkreter!
-
Egal was ich hinter dem s (dessen Funktion ihr mir offensichtlich nicht verraten wollt) eingebe, die Verschiebung der Akkordsymbole ist jedes Mal verheerend. Gibt es denn keine richtige Lösung? Sowas sollte doch jedes Programm standardmäßig ohne großes gefrickel können. Notfalls nehme ich auch eine Lösung mit dem Coda-Zeichen an der falschen Stelle, dafür aber mit Akkordsymbolen an der richtigen Stelle.
Immer mit der Ruhe 8) Es gibt eben nicht die einzig richtige Lösung. In Lily finden sich häufig mehrere Wege.
Ich habe dir einen Weg gezeigt, zwei \mark-Ereignisse auszugeben. Lily akzeptiert nur eine \mark zur gleichen Zeit. Das ist nunmal so. Der Trick ist nun, das zweite \mark-Ereignis minimal später zu notieren, also nach einem Platzhalter s (wie spacer) mit der Dauer einer 128tel → s128!
Das Konstrukt mit \cadenzaOn/Off kann man auch weglassen, wenn s128 als Vorschlag notiert wird: \grace s128
Dies hat den Vorteil, dass die Vorschlagsnote im zeitlichen Ablauf keinen Wert erhält, wodurch deine Akkordsymbole wieder an der richtigen Stelle sitzen.
noten = \relative {
\repeat unfold 16 { c4 }
\once \override Score.RehearsalMark #'break-visibility = #begin-of-line-invisible
\once \override Score.RehearsalMark #'self-alignment-X = #RIGHT
\mark "D.S. al Coda"
\break
\grace s128 \mark \markup { \musicglyph #"scripts.coda" }
\repeat unfold 16 { c4 } \break
\repeat unfold 16 { c4 }
}
akkorde = \chordmode {
\repeat unfold 12 { c2 f }
}
\score {
<<
\context ChordNames { \akkorde }
\context Staff { \noten }
>>
}
Was ein Programm können sollte oder nicht, muss man schon den Programmierern überlassen. Sie sind vorwiegend in der englischen Liste anzutreffen und haben sicher ein offenes Ohr für Verbesserungsvorschläge.
Grüße, Robert
-
Großartig, vielen Dank! Die Lösung mit \grace s128 hat funktionert. Jetzt wird das Coda-Zeichen an der richtigen Stelle angezeigt und die Akkordsymbole bleiben auch an der richtigen Stelle.
\grace s128
\once \override Score.RehearsalMark #'extra-offset = #'( -6.5 . -4 )
\mark \markup { \musicglyph #"scripts.coda" }RobUr und allen anderen vielen Dank für eure Hilfe! Für das nächste Mal weiß ich dann auch, das ich ein minimales Beispiel posten muss und nicht nur den Ausschnitt, der Probleme verursacht.
Gruß,
quadronado.