Autor Thema: Linke Hand soll im oberen Notationssystem mit erscheinen  (Gelesen 4303 mal)

alegria

  • Gast
Linke Hand soll im oberen Notationssystem mit erscheinen
« am: Samstag, 6. Juni 2015, 18:10 »
Also Bilder sagen ja bekanntlich mehr als Worte, daher bitte mal den Anhang angucken (wie binde ich sowas eigentlich direkt hier ein?) oder einfach den code hier ausführen.

\version "2.16.2"

upper = \relative c' {
  \clef treble
  << {s2 e'^\markup{\italic "(m.g.)"}-^ } \\ {r8 c, e g c g e c} >>
}

lower = \relative c {
  \clef bass
  c2 s2
}

\score {
  \new PianoStaff <<
    \set PianoStaff.instrumentName = #"Piano  "
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
  >>
  \layout { }
}

Was ich abgebildet haben möchte ist:
1) Das hohe e soll von der linken Hand gespielt werden. Meines Wissens nach schreibt man daher den Hinweis m.g. für main gauche = linke Hand. Nun sieht das mit dem markup nicht so hübsch aus weil zuweit entfernt von der Note. Wie kann ich so ein markup positionieren oder gibt es gar prinzipiell eine bessere Lösung für mein Anliegen?
2) Das hohe c im Violinschlüssel soll eigentlich eine halbe Note sein - weil es gehalten werden soll wenn trotzdem die restlichen Achtel (g e c) gespielt werden. Normalerweise würde ich das mittels Mehrstimmigkeit, als <<{} \\ {}>> auch lösen können, nur spielt da ja die linke hand mit dem e dazwischen (siehe 1). Wie kann ich das also lösen?

Hoffe es versteht mich jemand und kann mir bei hoffentlich beiden Punkten helfen. Danke vorab!

fugenkomponist

  • Gast
Re: Linke Hand soll im oberen Notationssystem mit erscheinen
« Antwort #1 am: Samstag, 6. Juni 2015, 18:45 »
Hallo alegria,

zu 1): „main gauche“ ist französisch, bei vielen Komponisten sieht man eher italienisch „mano sinistra“, also „m. s.“; in beiden Sprachen heißt die rechte Hand „m. d.“ (destra/droite). Beides liest man öfter, bei neuerer Musik aber auch englisch oder deutsch („l. h.“ bzw. „l. H.“). Ich würde den Hinweis per X-offset nach links versetzen, dann passiert die vertikale Ausrichtung automatisch (auch besser als nach rechts, weil der Hinweis dann rechtzeitig gesehen wird).

zu 2): es kommt sehr darauf an, ob
a) nur der Notenkopf eine Halbe sein soll oder
b) das c nen zusätzlichen Hals haben soll
c) zwei Notenköpfe (ein halber und ein achtel) dastehen sollen oder nur einer
d) das e seitlich verschoben sein soll
Einen Vorschlag (nur ein anderer Notenkopf, keine Verschiebungen) hab ich mal umgesetzt. Erklärung dazu:
• \mergeDifferentlyHeadedOn erlaubt das Verschmelzen von Achtel- und Halben-Notenkopf.
• \shiftOnn verschiebt das e so weit, dass die beiden cs auch tatsächlich verschmelzen.
• \once \omit Stem lässt die Halbe ihren Hals verlieren.
• …force-hshift holt das e zurück auf seine angestammte Position.

Das ist jetzt die Version, die die meisten Änderungen enthält, wie ist es denn im Original?

Edit: ich glaube, meine bevorzugte Version wäre die mit …force-hshift = -0.5 statt 0 und mit Hals (also ohne \once \omit Stem), falls der Komponist da keine sinnvolle und eindeutige Schreibweise hat, die nachzubilden ist; siehe zweites angehängtes Bild.

\version "2.16.2"

upper = \relative c' {
  \clef treble
  <<
    {
      s2
      \once \override TextScript.X-offset = -6
      \shiftOnn
      \once \override NoteColumn.force-hshift = 0
      e'^\markup{\italic "(m.g.)"}-^
    }
    \\
    {
      r8 c, e g
      \mergeDifferentlyHeadedOn
      c g e c
    }
    \\
    {
      s2
      \once \omit Stem
      c'
    }
  >>
}

lower = \relative c {
  \clef bass
  c2 s2
}

\score {
  \new PianoStaff <<
    \set PianoStaff.instrumentName = #"Piano  "
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
  >>
  \layout { }
}

Ach ja, noch was: In Abschnitt 4.5.3 des Learning Manuals wird eine komplexere mehrstimmige Situation mal Stück für Stück auseinandergenommen und perfektioniert, siehe http://lilypond.org/doc/v2.18/Documentation/learning-big-page#real-music-example
« Letzte Änderung: Samstag, 6. Juni 2015, 18:54 von fugenkomponist »

alegria

  • Gast
Re: Linke Hand soll im oberen Notationssystem mit erscheinen
« Antwort #2 am: Samstag, 6. Juni 2015, 19:27 »
Hi,
also das sieht ja fantastisch aus. Das zweite PNG ist genau so wie ich es mir vorstelle ("Original" gibt es nicht bzw. ist in meinem Kopf...)

Leider lässt sich Dein Beispielcode bei mir nicht kompilieren. Was mach ich falsch?
/tmp/frescobaldi-IsoUB6/tmpp4vZx1/document.ly:8:42: error: syntax error, unexpected '=', expecting SCM_FUNCTION or SCM_IDENTIFIER or SCM_TOKEN
      \once \override TextScript.X-offset
                                          = -6
/tmp/frescobaldi-IsoUB6/tmpp4vZx1/document.ly:11:6: error: syntax error, unexpected NOTENAME_PITCH, expecting '='     
      e'^\markup{\italic "(m.g.)"}-^

Und wie erreicht man
Zitat
c) zwei Notenköpfe (ein halber und ein achtel) dastehen sollen
(also das c sowohl als halbe als auch als achtel...)

alegria

  • Gast
Re: Linke Hand soll im oberen Notationssystem mit erscheinen
« Antwort #3 am: Samstag, 6. Juni 2015, 20:02 »
Also Code lässt sich nun erfolgreich kompilieren:
\version "2.16.2"

upper = \relative c' {
  \clef treble
  <<
    {
      s2
    %  \once \override TextScript.X-offset = -6
      \once \override TextScript #'X-offset = #-6
      \shiftOnn
      \once \override NoteColumn #'force-hshift = #0
%      \once \override NoteColumn.force-hshift = #0
      e'^\markup{\italic "(m.g.)"}-^
    }
    \\
    {
      r8 c, e g
      \mergeDifferentlyHeadedOn
      c g e c
    }
    \\
    {
      s2
      %\once \omit Stem
      c'
    }
  >>
}

lower = \relative c {
  \clef bass
  c2 s2
}

\score {
  \new PianoStaff <<
    \set PianoStaff.instrumentName = #"Piano  "
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
  >>
  \layout { }
}

Wenn ich den Code ohne \shiftOnn kompilieren ist das Ergebnis vermutlich die Antwort auf meine Frage aus dem letzten Post.

Nur bekomme ich nicht das so hin wie Du beim zweiten Bild. Bei dem Versuch hier überlappt/überlagert die Achtel die halbe Note:
\version "2.16.2"

upper = \relative c' {
  \clef treble
  <<
    {
      s2
      \once \override TextScript #'X-offset = #-6
      \shiftOnn
      \once \override NoteColumn #'force-hshift = #0.75
      e'^\markup{\italic "(m.g.)"}-^
    }
    \\
    {
      r8 c, e g
      \mergeDifferentlyHeadedOn
      c g e c
    }
    \\
    {
      s2
      \stemDown
      \once \override NoteColumn #'force-hshift = #0.55
      c'
    }
  >>
}

lower = \relative c {
  \clef bass
  c2 s2
}

\score {
  \new PianoStaff <<
    \set PianoStaff.instrumentName = #"Piano  "
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
  >>
  \layout { }
}

fugenkomponist

  • Gast
Re: Linke Hand soll im oberen Notationssystem mit erscheinen
« Antwort #4 am: Samstag, 6. Juni 2015, 20:07 »
Leider lässt sich Dein Beispielcode bei mir nicht kompilieren. Was mach ich falsch?
Du machst gar nichts falsch, ich hab vergessen zu erwähnen, dass ich 2.18-Syntax verwende. In Version 2.16 hieß die \override-Syntax noch folgendermaßen:
\once \override TextScript #'X-offset = #-6Also Grob (in diesem Fall TextScript) und Eigenschaft trennen, außerdem # vor Zahlen (soweit ich weiß, bin mir bei letzterem nicht ganz sicher, obs das braucht).

Auch \omit gabs da noch nicht, da müsste es glaub ich heißen
\once \override Stem #'stencil = ##fEinfacher wärs aber vermutlich, eine aktuelle LilyPond-Version (also 2.18.2) zu installieren. (Ich verwende 2.19.20, aber das ist eine Entwicklerversion und die ist hierfür nicht nötig.)

Zitat
Und wie erreicht man
Zitat
c) zwei Notenköpfe (ein halber und ein achtel) dastehen sollen
(also das c sowohl als halbe als auch als achtel...)

Indem man all die Anpassungen weglässt:
\version "2.19.20"

upper = \relative c' {
  \clef treble
  <<
    {
      s2
      \once \override TextScript.X-offset = -6
      e'^\markup{\italic "(m.g.)"}-^
    }
    \\
    {
      r8 c, e g
      c g e c
    }
    \\
    {
      s2
      c'
    }
  >>
}

lower = \relative c {
  \clef bass
  c2 s2
}

\score {
  \new PianoStaff <<
    \set PianoStaff.instrumentName = #"Piano  "
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
  >>
  \layout { }
}
Evtl. könnte man auch hier dann aber noch mit force-hshift Feintuning betreiben ;)

fugenkomponist

  • Gast
Re: Linke Hand soll im oberen Notationssystem mit erscheinen
« Antwort #5 am: Samstag, 6. Juni 2015, 20:09 »
Wenn ich den Code ohne \shiftOnn kompilieren ist das Ergebnis vermutlich die Antwort auf meine Frage aus dem letzten Post.
Ohne \shiftOnn haben dann auch force-hshift und mergeDifferentlyusw. keinen Effekt mehr ;)

Zitat
Nur bekomme ich nicht das so hin wie Du beim zweiten Bild. Bei dem Versuch hier überlappt/überlagert die Achtel die halbe Note:
Versteh ich jetzt nicht ganz, du benutzt ja auch ganz andere force-hshift-Werte, dann wird das natürlich nichts. Ich habe nur das e verschoben, und zwar um #-0.5.

Edit: Am besten wärs wohl, wenn du dir einmal kurz überlegst, wie dein Wunschergebnis aussehen soll (wieviele Notenköpfe, wie zueinander ausgerichtet, welche Hälse) und das mit gimp/Paint/Bleistift und Scanner aufmalst, dann kann ich dir da weiterhelfen ;) (Allerdings werd ich jetzt erstmal kochen und essen, schau danach aber nochmal hier rein.)
« Letzte Änderung: Samstag, 6. Juni 2015, 20:14 von fugenkomponist »

Pierre

  • Gast
Re: Linke Hand soll im oberen Notationssystem mit erscheinen
« Antwort #6 am: Samstag, 6. Juni 2015, 20:40 »
Hallo Alegria,

Also Code lässt sich nun erfolgreich kompilieren: [...]

Es gibt noch eine einfachere Lösung:

\version "2.19.20"

upper = \relative c' {
  \clef treble
  <<
    {
      s2
      \once \override TextScript.X-offset = -6
      e'^\markup{\italic "(m.g.)"}-^
    }
    \\
    {
      r8 c, e g
      \tweak duration-log #1 c g e c
    }
  >>
}

lower = \relative c {
  \clef bass
  c2 s2
}

\score {
  \new PianoStaff <<
    \set PianoStaff.instrumentName = #"Piano  "
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
  >>
  \layout { }
}

Gruß,
~Pierre

alegria

  • Gast
Re: Linke Hand soll im oberen Notationssystem mit erscheinen
« Antwort #7 am: Samstag, 6. Juni 2015, 21:10 »
Wow! Das ist kurz und knackig.

Also ich nehm die Pierre Variante plus hshift Verschiebung von fugenkomponist und als markup noch tiny und dann sieht das Ergebnis m.E. entzückend aus! :)

Vielen Dank Euch allen...