Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: quadronado am Samstag, 15. Mai 2010, 16:58

Titel: D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag 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
Zitat
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.

Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: RobUr am Samstag, 15. Mai 2010, 17:29
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
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: RobUr am Samstag, 15. Mai 2010, 17:38
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 }
}
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: quadronado am Sonntag, 16. Mai 2010, 09:38
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.

 

Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: kilgore am Sonntag, 16. Mai 2010, 09:49
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?
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: quadronado am Sonntag, 16. Mai 2010, 10:43
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 auf
und 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 auf
ergeben. 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 ...  :-[
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: kilgore am Sonntag, 16. Mai 2010, 21:14
das \once \override muss DIREKT vor \mark kommen!  du hast "s128" dazwischen....
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: quadronado am Sonntag, 16. Mai 2010, 22:07
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?
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: kilgore am Montag, 17. Mai 2010, 08:34
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
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: ding-dong am Montag, 17. Mai 2010, 15:17
Zitat von: kilgore
\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!
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: quadronado am Montag, 17. Mai 2010, 19:41
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.
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: himatt am Montag, 17. Mai 2010, 19:54
"s" ... NR1.2.2 Unsichtbare-Pausen (http://lilypond.org/doc/v2.13/Documentation/notation-big-page.de.html#Unsichtbare-Pausen) ;)
matthias
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: quadronado am Montag, 17. Mai 2010, 20:18
"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?
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: ding-dong am Montag, 17. Mai 2010, 23:05
Zitat von: quadronado
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)!
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: quadronado am Montag, 17. Mai 2010, 23:18

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.
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: ding-dong am Montag, 17. Mai 2010, 23:52
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!
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: RobUr am Dienstag, 18. Mai 2010, 05:54
Zitat
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
Titel: Re:D. S. al Coda am Ende einer Zeile und Coda am Beginn der nächsten Zeile.
Beitrag von: quadronado am Dienstag, 18. Mai 2010, 08:16
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.