Autor Thema: Automatischer Ossia-Staff  (Gelesen 1355 mal)

iugin

  • Member
Automatischer Ossia-Staff
« am: Freitag, 15. Mai 2015, 17:56 »
Liebe alle

ich versuche das Ossia irgendwie zu automatisieren.
Folgender Beispiel funktioniert eingentlich nicht schlecht...
\version "2.18.2"


ossiaStaff = {
  \new Staff = ossiaStaff \with {
    \remove "Time_signature_engraver"
    \hide Clef
    fontSize = #-3
    \override StaffSymbol.staff-space = #(magstep -3)
    \override StaffSymbol.thickness = #(magstep -3)
  } { \stopStaff s1*6 }
}

ossia = #(define-music-function (parser location m)(ly:music?)
           #{
             \context Staff = ossiaStaff {
               \startStaff $m \stopStaff
             }
           #}
           )

<<
  \ossiaStaff
  \new Staff \relative c' {
   
    c4 b c2
    <<
      { e4 f e2 }
      \ossia {e4 e4 d2 }
    >>
    g4 a g2 \break
    c4 b c2
    g4 a g2
     g4 e8 f g2
    e4 d c2 \break
    g4 a g2
     g4 e8 f g2
    e4 d c2
  }
>>
... aber wie ihr seht, ist nicht perfekt.
Wie kann ich das unsichtbare System entfernen (übrigens, passier nur in der 2. Zeile), ohne dass ich diese \layout-Block
\layout {
  \context {
    \Staff \RemoveEmptyStaves
    \override VerticalAxisGroup.remove-first = ##t
  }
}
setzten muss?

Besten dank für eure Antworte und einen schönen Abend

Eugenio

harm6

  • Member
Re: Automatischer Ossia-Staff
« Antwort #1 am: Freitag, 15. Mai 2015, 23:39 »
Hi Eugenio,

meinst Du:

\version "2.18.2"

ossiaStaff = {
  \new Staff = ossiaStaff \with {
    \remove "Time_signature_engraver"
    \hide Clef
    fontSize = #-3
    \override StaffSymbol.staff-space = #(magstep -3)
    \override StaffSymbol.thickness = #(magstep -3)
    \RemoveEmptyStaves
    \override VerticalAxisGroup.remove-first = ##t
  } { \stopStaff s1*6 }
}

ossia = #(define-music-function (parser location m)(ly:music?)
           #{
             \context Staff = ossiaStaff {
               \startStaff $m \stopStaff
             }
           #}
           )

<<
  \ossiaStaff
  \new Staff \relative c' {
   
    c4 b c2
    <<
      { e4 f e2 }
      \ossia {e4 e4 d2 }
    >>
    g4 a g2 \break
    c4 b c2
    g4 a g2
     g4 e8 f g2
    e4 d c2 \break
    g4 a g2
     g4 e8 f g2
    e4 d c2
  }
>>
?

Gruß,
  Harm

iugin

  • Member
Re: Automatischer Ossia-Staff
« Antwort #2 am: Samstag, 16. Mai 2015, 08:28 »
Lieber Harm

ich werde alt... In einem früheren Versuch habe ich es genau so gemacht wie du. Dann habe ich was geändert, keine Ahnung was, wieder etwas versucht, und irgendwie die Zeilen
\RemoveEmptyStaves
\override VerticalAxisGroup.remove-first = ##t
gelöscht. Und irgendwie habe ich es nicht gecheckt...
Naja..........
Trotzdem danke :)

Einen lieben Gruss

Eugenio