Autor Thema: RhythmicStaff - Ossia  (Gelesen 3516 mal)

himatt

  • Gast
RhythmicStaff - Ossia
« am: Montag, 23. November 2009, 16:22 »
Hallo,

ich habe einen Ossia-Abschnitt für eine Trommel geschrieben. Um nur eine Notenlinie zu schreiben habe ich mir mit \override StaffSymbol #'line-count = #1 geholfen. Nun zeigt es natürlich keine/bzw. zu kurze Taktstriche an.
Die ursprüngliche Variante, ein Ossia als RhythmicStaff zu erzeugen schlug fehl, da ich die richtige Darstellung nicht hinbekommen habe. Der Ossia-abschnitt wurde unter dem System angezeigt, der Befehl wirkte sic auf alle stuffs aus, ...

Wie würde die richtige Positionierung des RhythmicStaff aussehen? Wo muss ich diesen definieren?

hier mein Schnipsel:
\version "2.12.2"

Trommel = << {r1 | r4}
            \context Staff = Ossia {
            \startStaff \stemUp b8 b b4 b b | b \stopStaff }
          >>

Melodie = \relative c' {  \clef treble \key f \major \time 4/4
                           \set midiInstrument = #"clarinet"
                           { f2. g4 | a2 a4 a | bes8 a bes4 a2 | \Trommel                         
                        f4 f g | a a a a | }
                       }

Text = \lyricmode
                { Come, they told me, ba -- ra -- ba -- bam -- bam,
                  a new -- born King to see, }

\score{ <<
\new Staff = Ossia \with {
    \remove "Time_signature_engraver"
    alignAboveContext = #"Ossia"
    \override StaffSymbol #'line-count = #1
    \override Clef #'transparent = ##t
    fontSize = #-3
    \override StaffSymbol #'staff-space = #(magstep -3)
    \override StaffSymbol #'thickness = #(magstep -3)
  }
    { \stopStaff s1*3 }

\new Staff
          \new Voice = "mel" { \Melodie }
          \new Lyrics \lyricsto "mel" \Text
         
        >>
      }

Danke
Matthias

derHindemith

  • Gast
Re: RhythmicStaff - Ossia
« Antwort #1 am: Montag, 23. November 2009, 18:23 »
Sehr nah.

die alignAboveContext heisst "setze dies oberhalb von" So, die alignAboveContext = Ossia heisst dass was Lilypond gerade setzt sollte oberhalb von den "Ossia"-genannte Kontext. In diesem Fall, es gibt nur ein einziges genannte Kontext, "Ossia". Etwas kann nicht über sich selbst gesetzt werden. Du müsst beide Systeme nennen.
\new Staff = Melody \new Voice = Mel {\Melodie} \new Lyrics \lyricsto Mel \Text
\new Staff = Ossia \with {alignAboveContext = Melody } \Ossia

Es gibt noch ein Problem, oder könnte geben. die Trommel erzeugt zwei Notensysteme. Ein mit dem r1 (meinst du R1?) und ein mit dem b8 b… Ich weiss nicht ob das gewollt ist.
Letzlich, wo sollte der RhythmicStaff sein? Sollte das der Trommel sein? Dann einfach \context Staff mit \context RhythmicStaff ersetzen und es sollte klappen. (Das hab' ich nicht probiert)

Viel Glück

himatt

  • Gast
Re: RhythmicStaff - Ossia
« Antwort #2 am: Montag, 23. November 2009, 22:28 »
Danke!!

die Änderung in einen RhythmicStaff hatte ich probiert. Genau da wird eben der Trommeltakt unter die Meldie geschrieben. Deshalb hatte ich versucht, mit alignAboveContext diese Ossia-Abschnitt wieder noch oben zu holen. so, und zusätzlich mit Taktangabe steht es jetzt wieder mit dieser Änderung da. ??

Die Trommel dachte ich muss 2 Systeme erzeugen (mit r1 ist eine ganze Pause gemeint). In diesem Abschnitt sollen ja eben diese 2 systeme parallel erzeugt werden. Verstehe ich da was falsch?

Gibt es noch eine idee? Eigentlich brauche ich doch "nur" diese Trommelstimme über die Melodie setzen und die Taktangabe entfernen. Die Anweisungen stehen doch eigentlich da ...

so siehts jetzt aus:
\version "2.12.2"

Trommel = << {r1 | r4}
            \context RhythmicStaff = Ossia {
            \startStaff \stemUp b8 b b4 b b | b \stopStaff }
          >>
Melodie = \relative c' {  \clef treble \key f \major \time 4/4
                           \set midiInstrument = #"clarinet"
                           { f2. g4 | a2 a4 a | bes8 a bes4 a2 | \Trommel                         
                        f4 f g | a a a a | }
                       }
Text = \lyricmode
                { Come, they told me, ba -- ra -- ba -- bam -- bam,
                  a new -- born King to see, }

\score{ <<   
\new Staff = Ossia \with {
    \remove "Time_signature_engraver"
    alignAboveContext = Melodie
    \override Clef #'transparent = ##t
    fontSize = #-3
    \override StaffSymbol #'staff-space = #(magstep -3)
    \override StaffSymbol #'thickness = #(magstep -3)
  }
    { \stopStaff s1*3 }

\new Staff = Melody
          \new Voice = Mel { \Melodie }
          \new Lyrics \lyricsto Mel \Text         
        >>
      }

matthias

derHindemith

  • Gast
Re: RhythmicStaff - Ossia
« Antwort #3 am: Dienstag, 24. November 2009, 00:54 »
Die Staff-namen müssen übereinstimmen.
\new Staff = Melody
\context Staff = Ossia \with {alignAboveContext = Melody}

himatt

  • Gast
Re: RhythmicStaff - Ossia
« Antwort #4 am: Dienstag, 24. November 2009, 16:55 »
ohja, das hatte ich übersehen, hab das geändert. allerdings - ohne das erhoffte Ergrbnis.

Wie ich nun sehe, mein Gerüst ist irgendwie falsch angelegt. Den \new Staff = Ossia \with {...} kann ich komplett ausklammern, ohne eine veränderte Ausgabe zu erhalten. das Bild wird nur durch \new Staff = Melodie ... erzeugt. Drum steht auch der Ossia-Abschnitt unten. Er soll aber darüber! Möglichst klein und dicht über der Melodie-Pause... ???

Danke!