Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: himatt am Donnerstag, 2. Dezember 2010, 00:59

Titel: Ossia - Taktstrichlänge
Beitrag von: himatt am Donnerstag, 2. Dezember 2010, 00:59
Liebe LilyFreunde,
irgendwo klemmt der Wurm.
\version "2.12.3"

<<
\new Staff = Ossia \with {
\remove "Time_signature_engraver"
alignAboveContext = #"Ossia"
\override StaffSymbol #'line-count = #1
\override Clef #'transparent = ##t
\override BarLine #'bar-size = #2
  }
\relative c'' {
\stopStaff s1*1 \startStaff \stemUp b4 b b b b \stopStaff}

\new Staff {
<<
\new Voice = "mel" \relative c' {
f2 f f f f f f
}
% \context Staff = Ossia \relative c'' {
% \stopStaff s1*2 \startStaff \stemUp b4 b b b b \stopStaff
% }
>>
}
 >>
Ossia soll aber erst im 2. Takt beginnen. Dann sind die Linien in der Melodie unsichtbar. Entferne ich \override BarLine #'bar-size = #2 ist der Fehler weg, jedoch keine Taktstriche im Ossia. Wo habe ich meinen Fehler?

Danke für Euren aufmerksamen Blick!
Matthias
Titel: Re:Ossia - Taktstrichlänge
Beitrag von: RobUr am Donnerstag, 2. Dezember 2010, 03:00
Hi Matthias,

ich kann nicht ganz nachvollziehen, was genau du meinst, da deine Ossia ja im 2. Takt beginnt! Das offensichtliche Problem ist wohl, dass du eine(n) Staff mit der Bezeichnung „Ossia“ erzeugst und gleichzeitig versuchst, die Zeile an sich selbst (alignAboveContext = #"Ossia") oberhalb auszurichten. Kommentiere diese Zeile (alignAbove…) aus – und alles sollte schick sein.

Grüße, Robert
Titel: Re:Ossia - Taktstrichlänge
Beitrag von: himatt am Donnerstag, 2. Dezember 2010, 20:28
ohman ... das war schon spät gestern ... Danke Robert!! (und für dich ist es ja eh nie zu spät ;))

Ich möchte die Ossia z.B. im 3. Takt beginnen. Wenn ich bei diesem Quelltext (auch mit abgeschaltetem  alignAboveContext) die Pause mit >1 multipliziere entsteht Chaos (keine Notenlinien mehr für "mel").
Schalte ich bei mehr als 2 Takten Pausen in der Ossia das \override BarLine #'bar-size = #2 ab ist alles wieder gut. Nur habe ich dann keine Taktstriche mehr in der Ossia ... ???
Matthias
Titel: Re:Ossia - Taktstrichlänge
Beitrag von: himatt am Montag, 6. Dezember 2010, 11:00
ich probiere schon wieder. alles läuft gut bis zum \override BarLine #'bar-size = #2 :( gibts keine Lösung?
Matthias
Titel: Re:Ossia - Taktstrichlänge
Beitrag von: RobUr am Montag, 6. Dezember 2010, 18:53
Hallo Matthias,

die \start[stop]Staff-Geschichte brauchts eigentlich nicht. *ups, falscher Button erwischt*
Das Prinzip ist, die Ossia-Takte nicht die ganze Zeit parallel laufen zu lassen, sondern nur an der entsprechenden Stelle innerhalb des laufenden Staff zu notieren:
\version "2.12.3"

\new Staff = main \relative c' {
f2 f f f
<<
{ f2 f f f }
\new Staff \with {
\remove "Time_signature_engraver"
alignAboveContext = #"main"
fontSize = #-3
\override StaffSymbol #'staff-space = #(magstep -3)
\override StaffSymbol #'thickness = #(magstep -3)
\override StaffSymbol #'line-count = #1
\override BarLine #'bar-size = #1
firstClef = ##f
}
{ \stemUp b4 b b b b }
>>
f2 f
}

Grüße, Robert
Titel: Re:Ossia - Taktstrichlänge
Beitrag von: himatt am Montag, 6. Dezember 2010, 19:20
Hallo Robert, danke!
Wenn ich genau das Beispiel aus der NR nehme ...

... ah du hast grad noch ergänzt ... danke dir!!

Da der Rhythmus immer wieder erscheint, wollte ich nach Beispiel aus NR einen
Zitat
leeren Staff-Kontext mit einer spezifischen Kontextidentifikation ... erstellen
und mit Start/Stop sichtbar machen. Mir erschien das für den Zweck besser.
Und da habe ich mit der Zeile \override BarLine #'bar-size = #2 eben immer diesen mir unerklärlichen Fehler. Und \override StaffSymbol #'line-count = #1 bringt den Fehler nicht ???
Gut, nun "kürze" ich das so ab. Danke!
wünsch' dir schöne Weihnachtskonzerte
Matthias

Titel: Re:Ossia - Taktstrichlänge
Beitrag von: himatt am Montag, 6. Dezember 2010, 19:33
Lieber Robert,
es wird ja nun immer ein neuer Staff geschrieben, also jedes Mal eine andere Höhe der Ossia. Das will ich natürlich nicht. Also muss wohl doch eine Variante mit Start/Stop als Lösung gehen?
M.
Titel: Re:Ossia - Taktstrichlänge
Beitrag von: RobUr am Dienstag, 7. Dezember 2010, 02:13
Hallo Matthias,

das Beispiel aus der NR funktioniert wohl nur, solange man an den Staff-Eigenschaften nichts wesentliches ändert (es wirkt sich auf das Elternelement aus, und Lily ist verwirrt), wobei die Linienanzahl eine wesentliche Eigenschaft sein muss. Es ist außerdem offenbar nicht möglich, innerhalb eines Staff-Typs einen anderen Typ zu definieren (ich hatte es bereits mit RhythmicStaff versucht).

Was meinst du mit „andere Höhe der Ossia“? Die vertikale Position vielleicht? Hier greifen die üblichen Abstands-(Padding-)Mechanismen von Lily.

Eine alternative Möglichkeit ist wohl, eine „Ossia-Zeile“ immer mitlaufen zu lassen und per start/stopStaff anzeigen zu lassen, wobei du natürlich mit Spacerzählen beschäftigt sein wirst.

Grüße, Robert