Autor Thema: Akkordnamen über Klavierstaff, nur wie?  (Gelesen 3170 mal)

Inxman

  • Member
Akkordnamen über Klavierstaff, nur wie?
« am: Sonntag, 4. Januar 2009, 17:17 »
Hallo Leute,

gesundes neues Jahr.

Ich habe folgendes script:

\version "2.12.0"

\header {
title = "Testsong"
}

\include "deutsch.ly"

#(set-global-staff-size 20)

upper = \relative c'' {
\clef treble
\key c \major
\time 3/4
c,4 g' g g c8 [c] c [c] c4 a a a2.
\bar "|."
}
lower = \relative c {
\clef bass
\key c \major
\time 3/4
<c e g>2. <c e g>2. <c f a>2. <c f a>2.
\bar "|."
}

textmitte = \lyricmode {
Tra- la Tra- la la la la la
}

harmonies =  \new ChordNames \chordmode {
\germanChords
\set chordChanges = ##t
c2 c4 c2 c4 f2 f4 f2 f4
}

\score {
\new GrandStaff <<
  \harmonies
\new Staff = upper {
\new Voice = "singer1" \upper
}
\new Lyrics \lyricsto "singer1" \textmitte
\new Staff = lower { \lower }
>>
\layout {
#(layout-set-staff-size 20)
\context {
\GrandStaff
\accepts "Lyrics"
\accepts "Chordnames"
}
\context {
\Lyrics
\consists "Bar_engraver"
}
}
\midi { }
}
\paper {}

Ich verstehe nicht, warum er die Akkordnamen UNTER dem Staff notiert, es steht doch noch
vor dem "\new Staff upper" oder geht dies nicht nach Reihenfolge?

Wie muss ich tun, damit es darüber geschrieben wird?

Viele Grüße,
Ingo

derHindemith

  • Member
Re: Akkordnamen über Klavierstaff, nur wie?
« Antwort #1 am: Sonntag, 4. Januar 2009, 17:39 »
Versuch's mal mit dem \harmonies ausserhalb vom GrandStaff
\version "2.11.65"

global = {
   \key c \major
   \time 3/4
}
upper = \relative c'' {
   c,4 g' g
}
lower = \relative c {
   \clef bass
   <c e g>2.
}
harmonies = \chords {
   \germanChords
   c2 c4
}

\score {
   <<
      \harmonies
      \new PianoStaff <<
         \context Staff = upper <<
            \global
            \context Voice = "singer1" \upper
         >>
         \context Staff = lower <<
            \global
            \lower
         >>
      >>
   >>
}

Inxman

  • Member
Re: Akkordnamen über Klavierstaff, nur wie?
« Antwort #2 am: Sonntag, 4. Januar 2009, 20:23 »
Ah gut, danke.

Jetzt ist nur noch mein Text in der Mitte weg. Wie krieg ich den hier wieder mit rein? ;-)
So wie es hatte mit new und \layout-Umgebung blicke ich nicht durch, wie ich dies in dein Beispiel
reinbekomme.

Ach so, noch eine Frage nebenbei: Wovon ist es abhängig, ob ein Phrasierungsbogen oben oder unterhalb des Systems angeordnet wird? Kann ich es auch erzwingen, das er nur oben angeordnet werden soll?

Gruß,
Ingo

derHindemith

  • Member
Re: Akkordnamen über Klavierstaff, nur wie?
« Antwort #3 am: Sonntag, 4. Januar 2009, 21:44 »
Ich hatte das Gefühl diese Frage kommt zunächst. Suche in den Schnipsel für "Piano template with centered lyrics"

derHindemith

  • Member
Re: Akkordnamen über Klavierstaff, nur wie?
« Antwort #4 am: Sonntag, 4. Januar 2009, 21:50 »
Und, zum Thema Phrasierungsbogen, \override PhrasingSlur #'direction kontrolliert sowas.
LM 4 spricht mehr über wie diese Sachen verändert werden können.

etilli33

  • Member
Re: Akkordnamen über Klavierstaff, nur wie?
« Antwort #5 am: Dienstag, 6. Januar 2009, 19:10 »
Phrasierungsbögen: hier ist das relevante Kapitel: http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Curves#Phrasing-slurs

es geht auch direkt mit Befehlen wie \PhrasingSlurUp usw.

Die Ausrichtung von Kontexten (also auch den Akkorden) kann mit alignAboveContext erreicht werden, siehe Beispiel:

global = {
   \key c \major
   \time 3/4
}
upper = \relative c'' {
   c,4 g' g
}
lower = \relative c {
   \clef bass
   <c e g>2.
}
harmonies = \chordmode {
   \germanChords
   c2 c4
}

\score {
   <<
      \new ChordNames
      \with {
      alignAboveContext = #"piano"
        }{
      \harmonies }
      \new PianoStaff = "piano" <<
         \context Staff = upper <<
            \global
            \context Voice = "singer1" \upper
         >>
         \context Staff = lower <<
            \global
            \lower
         >>
      >>
   >>
}

Ich habe das Beispiel von unten genommen und verändert: in der Variable harmonies habe ich \chords durch chordmode ersetzt und dann explizit weiter unten eine ChordNames erstellt, dem mit \with dieses Align über dem PIano-Kontext zugewiesen wird. Wichtig dabei, dass der Piano-Kontext einen Namen kriegt (hier piano), der dann in beiden Fällen verwendet wird.

Gruß
Till