Haltebogen in ein Parallel-System notieren

Begonnen von jonas, Mittwoch, 11. Oktober 2017, 13:12

« vorheriges - nächstes »

jonas

Hallo zusammen,
ich möchte folgende Takte setzen:


Da die Viertel im Takt Stichnoten sein sollen, habe ich an ein Parallel-System gedacht. Mein bisheriger Code:

\version "2.18.2"
\score{
    \relative c'{\time 2/4
        r^\markup\musicglyph # "pedal.*"
        \once \override Tie.control-points = #'((5 . 0) (3 . 0.6) (12.5 . 0.6) (0 . 0)) d'4~
   
        % Stichnoten im selben Takt wie Stimme 1
        << { d2\repeatTie} \\ 
           { \new CueVoice { << { \once \override NoteColumn.force-hshift = #4.7 g4\tenuto a\tenuto } {\once \override NoteColumn.force-hshift = #4.7 g, a } >> } }
        >>
}
}

Ich hatte schon versucht, einen manuellen Haltebogen einzusetzen (Zeile 4), aber der wurde noch nicht angezeigt. Da stimmt was mit den Koordinaten nicht denke ich. Kann mir jemand erklären, wie man die Koordinaten in Verbindung mit einem Parallel-System richtig setzt?

Problem 2:
Außerdem wird der Stem von d2 nach oben angezeigt (Vermutung: Stimme 1 im Parallel-System), der sollte aber nach unten zeigen. Wenn ich \stemDown anwende, geht das Parallel-System kaputt. Bei \override Stem.neutral-direction = #down passiert gar nichts.

Zu Hülf!

Gruß
Jonas

Malte

#1
Hallo Jonas,

was genau meinst du mit einem ,,Parallel-System"? Ein zusätzliches Notensystem oder ,,nur" eine zusätzliche Stimme wie in dem von dir eingefügten Bild? (Man kann hier im Forum übrigens auch Bilder hochladen ;) )
Zitat von: jonas am Mittwoch, 11. Oktober 2017, 13:12
Ich hatte schon versucht, einen manuellen Haltebogen einzusetzen (Zeile 4), aber der wurde noch nicht angezeigt. Da stimmt was mit den Koordinaten nicht denke ich. Kann mir jemand erklären, wie man die Koordinaten in Verbindung mit einem Parallel-System richtig setzt?
Hierzu solltest du wissen, daß das Konstrukt << A \\ B >> zwei neue Stimmen anlegt und automatisch \voiceOne für A und \voiceTwo für B setzt. Nun ist es (noch) nicht möglich, in LilyPond einen Bogen von einer Stimme zu einer anderen zu setzen, weshalb dein Bogen bei d'4~ nicht angezeigt und deshalb natürlich auch nicht geformt wird.

Die Lösung ist ganz einfach (und erspart dir sowohl \repeatTie als auch Gebastel mit control-points: Du kannst zwei (oder mehr) Musikausdrücke auch mit << A B >> ohne die Backslashes zusammenfügen. Dadurch werden keine neuen Stimmen erstellt. Wenn jetzt A dein zweites d ist, wird also der Bogen richtig gesetzt. Und damit du ne anständige Polyphonie hast, ist B halt dann ein \new Voice ... bzw. in deinem Fall ein \new CueVoice ... ;)
Zitat
Problem 2:
Außerdem wird der Stem von d2 nach oben angezeigt (Vermutung: Stimme 1 im Parallel-System), der sollte aber nach unten zeigen. Wenn ich \stemDown anwende, geht das Parallel-System kaputt. Bei \override Stem.neutral-direction = #down passiert gar nichts.
Oh, ich glaub, ich weiß jetzt, was du mit Parallelsystem meinst ;)  Ja, wie gesagt, es wird implizit \voiceOne für die obere Stimme gesetzt, was unter anderem (aber nicht nur) die Halsrichtung ändert. Dieses Problem hast du mit der oben genannten und hier jetzt auch ausgeschriebenen Lösung nicht:\version "2.18.2"

\score{
  \relative {
    \time 2/4
    r^\markup\musicglyph # "pedal.*"
    d''4~
    <<
      {
        d2
      }
      \new CueVoice {
        <g g,>4\tenuto <a a,>\tenuto
      }
    >>
  }
}
Das Ergebnis dieses Codes siehst du unten im ersten angehängten Bild.

Diese Lösung hat jetzt noch das Problem, daß sowohl die ursprüngliche Stimme, die mit dem d2 weitergeführt wird, als auch die neue CueVoice implizit \oneVoice sind. Und wenn ich mir die Bogen- und Artikulationsrichtungen in deinem Beispiel anschaue, soll das auch so bleiben. Damit die Stimmen sich automatisch horizontal verschieben, ohne \voiceOne & Co. zu setzen, kannst du jetzt in eine der beiden Stimmen \shiftOn schreiben, z. B. so:\version "2.18.2"

\score{
  \relative {
    \time 2/4
    r^\markup\musicglyph # "pedal.*"
    d''4~
    <<
      {
        d2
      }
      \new CueVoice {
        \shiftOn
        <g g,>4\tenuto <a a,>\tenuto
      }
    >>
  }
}
Ergebnis ist das zweite Bild im Anhang.

Paßt dir das so? Ich würde ehrlich gesagt eher zu Hälsen in verschiedenen Richtungen plädieren, z. B.\version "2.18.2"

\score{
  \relative {
    \time 2/4
    r^\markup\musicglyph # "pedal.*"
    d''4~
    <<
      {
        \voiceTwo
        d2
      }
      \new CueVoice {
        \voiceOne
        % Weil LilyPond anscheinend mit den kleineren
        % Notenköpfen die Abstände falsch berechnet,
        % fügen wir diesen \override noch ein:
        \once \override NoteColumn.force-hshift = 0.5
        <g g,>4\tenuto <a a,>\tenuto
      }
    >>
  }
}

Bei dieser letzten Lösung muß man leider mit force-hshift noch etwas nachhelfen, das ist ein Bug; ich schau mal, ob der schon bekannt ist.

Edit: Bei der Lösung mit \shiftOn kannst du übrigens ebenfalls mit force-hshift nachhelfen, z. B. auf den Wert 1.2 setzen.

jonas

#2
Danke Malte, das hat mir schonmal vieles einfacher gemacht.
Die Bilderhochladefunktion hab ich sogar schon benutzt, aber das hatte ich eben irgendwie nicht mehr im Kopf. Das "Parallel-System" ist auch in meinem Kopf entstanden, ich hatte mir vorher http://lilypond.org/doc/v2.18/Documentation/notation/multiple-voices durchgelesen und mehrere Begriffe miteinander verknüpft.
Es ist dann Variante 3 mit größerem Shift geworden. Nachher habe ich noch \oneVoice ausgeführt, weil sonst im Rest des Stücks alle Notenhälse nach unten orientiert gewesen wären. Jetzt siehts so aus, wie es sein soll. Danke nochmal für die ausführliche und erklärende Antwort. ;-)