Autor Thema: ossia in StaffGroup  (Gelesen 2784 mal)

chf

  • Member
ossia in StaffGroup
« am: Montag, 20. August 2012, 13:28 »
Liebe Freunde,

unschwer zu sehen, was mir Probleme macht...
Wie schwebt "ossia" frei im Raum?

Gruß
chf


kilgore

  • Member
Re: ossia in StaffGroup
« Antwort #1 am: Montag, 20. August 2012, 14:56 »
Ich verstehe nicht, sieht aus als würde alles klappen. Was willst du da genau? Kein SpanBar?

Gruß
kil

chf

  • Member
Re: ossia in StaffGroup
« Antwort #2 am: Montag, 20. August 2012, 17:40 »
Hallo kilgore,

"SpanBar"  -  danke! Der Begriff wollte mir nicht einfallen.
Allerdings wollte ich nur den Takstrich von der Mandoline zur ossia-Zeile verschwinden lassen.
In StaffGroup soll er schon bleiben...

chf
« Letzte Änderung: Montag, 20. August 2012, 18:12 von chf »

kilgore

  • Member
Re: ossia in StaffGroup
« Antwort #3 am: Montag, 20. August 2012, 19:05 »
hmm...da habe ich mal auch Probleme gehabt. Vielleicht kennt ein andere sich damit besser aus.

Meine Lösung ist unelegant und muss immer angepasst werden:

\version "2.14.2"

global = {}   
Mnd = \relative c'' {
  \time 6/4
c2 a4 bes a2
\once \set Staff.whichBar = "|"
<<{<g, g'>2^\markup {
        \postscript #"
          -1.5 -.5 translate
          1 setgray
          0 0 moveto
          0 7 lineto
          1 0 rlineto
          0 -7 rlineto
          -1 0 rlineto
          fill"
      } }
    \context Staff = ossia
       \with {
                \remove "Time_signature_engraver"

                \override Clef #'transparent = ##t
                fontSize = #-3
                alignAboveContext = "Mnd"
                \override StaffSymbol #'staff-space = #(magstep -3)
                \override StaffSymbol #'thickness = #(magstep -3)
        }
             
       { \override Voice.SpanBar #'glyph-name = #" "
g16^"ossia above" [\override Stem #'transparent = ##t b a e' dis a' e' \override Stem #'transparent = ##f b']} >> \bar "||"
 }
   
Git = \relative c' {
  \clef "treble_8"
<f, c'>2 a4 <d, bes'>2 c'4 <g, g' d'>2
}
   
dynamics = \new Dynamics { }

\score {
   \new StaffGroup
    << 
      %\tag #'score \tag #'Mnd \new Staff { << \global \Mnd >> }
          \tag #'score \tag #'Mnd \new Staff = Mnd { << \global \Mnd >> }       
          \dynamics
          \tag #'score \tag #'Git \new Staff { << \global \Git >> }       
     
    >>
}


 


(zum bearbeiten sollte man das "setgray" Wert zu 0 ändern, dann ist die Kiste schwarz...

Gruß
kil

Be-3

  • Member
Re: ossia in StaffGroup
« Antwort #4 am: Dienstag, 21. August 2012, 06:52 »
Wie schwebt "ossia" frei im Raum?

Hallo chf,

das Ossia-System gehört zur StaffGroup und erhält deshalb zunächst einmal die durchgehenden Taktstriche - ob man will oder nicht.
Nebenbei bemerkt: lustigerweise hat die Entwickler-Version 2.15.41 gerade einen Fehler im Zusammenhang mit alignAboveContext, der zu genau dem von Dir gewünschten Verhalten führt ;) - das ist aber natürlich keine Lösung...

Es gibt aber die Möglichkeit, für ein System die durchgehenden Taktstriche zum darunterliegenden System zu unterdrücken, und zwar mit
\override Staff.BarLine #'allow-span-bar = ##f
Setzt man dies rechtzeitig (also bevor das Ossia-System erzeugt wird, denn dann ist das erste Taktstrich-Kind bereits in den Brunnen gefallen), "erbt" die Ossia-Zeile diese Einstellung und schwebt wie gewünscht "frei im Raum".
Wenn danach noch weitere Takte folgen, sollstest Du allow-span-bar wieder auf ##t setzen, sonst fehlen die Verbindungs-Taktstriche zwischen Mandoline und Gitarre!
Mit \once davor gilt die Änderung wie gewohnt nur einmal für den nächsten Taktstrich.

\version "2.14.2"

global = {}   
Mnd = \relative c'' {
  \time 6/4
c2 a4 bes a2 <<{<g, g'>2}
    \override Staff.BarLine #'allow-span-bar = ##f
    \context Staff = ossia
       \with {
                \remove "Time_signature_engraver"
                %\override Score.BarLine #'transparent = ##t
                \override Clef #'stencil = ##f
                fontSize = #-3
                alignAboveContext = "Mnd"
                \override StaffSymbol #'staff-space = #(magstep -3)
                \override StaffSymbol #'thickness = #(magstep -3)
        }
             
       {g16^"ossia above" [\override Stem #'transparent = ##t b a e' dis a' e' \override Stem #'transparent = ##f b']} >> \bar "||"
 }
   
Git = \relative c' {
  \clef "treble_8"
<f, c'>2 a4 <d, bes'>2 c'4 <g, g' d'>2
}
   
dynamics = \new Dynamics { }

\score {
   \new StaffGroup
    << 
      %\tag #'score \tag #'Mnd \new Staff { << \global \Mnd >> }
          \tag #'score \tag #'Mnd \new Staff = Mnd { << \global \Mnd >> }       
          \dynamics
          \tag #'score \tag #'Git \new Staff { << \global \Git >> }       
     
    >>
}

Wenn Du nicht möchstest, daß die Notenlinien links über den ersten Taktstrich hinausstehen, kannst Du
\override Clef #'transparent = ##t durch \override Clef #'stencil = ##f oder firstClef = ##f ersetzen. Ich habe mir die Freiheit genommen, das im Coding auch noch abzuändern. Ist aber natürlich eine Frage des Geschmacks oder der Anforderungen.

Viele Grüße
Torsten
« Letzte Änderung: Dienstag, 21. August 2012, 06:55 von Be-3 »

chf

  • Member
Re: ossia in StaffGroup
« Antwort #5 am: Dienstag, 21. August 2012, 16:07 »
Hallo Torsten,

so ist's prima.Danke!

Gruß
Christa