Kurs:Lilypond für Wikis: Arbeiten im RAW-Modus

Aus Wikiversity


Arbeiten mit Variablen[Bearbeiten]

Code-Schnipsel, die über eine Variable vordefiniert werden sollen, funktioniert nur im raw-Modus.

Variablennamen dürfen nur Buchstaben des Alphabets enthalten, keine Zahlen oder Striche.

Variable müssen vor dem eigentlichen musikalischen Ausdruck definiert werden. Sie können dann aber beliebig oft verwendet werden, nachdem sie einmal definiert worden sind.

<score raw=1>

myMusic = \relative {
  c''4 b8. a16 g4. f8 e4 d c2
}

myLyrics = \lyricmode {
  Joy to the world, the Lord is come.
}

\score {
  <<
    \new Voice = "one" {
      \time 2/4
      \myMusic
    }
    \new Lyrics \lyricsto "one" {
      \myLyrics
    }
  >>
}
</score>

Die Fehlermeldungen verschwinden, wenn man <score raw=1> setzt. Dafür bekommt man unerwarteter Weise eine DinA4-Seite, die für kleine Notenbeispiele überdimensioniert ist. Dies lässt sich mit einem Paper-Block beheben.


musicOne = \relative {
  c''4 b8. a16 g4. f8 e4 d c2
}
verseOne = \lyricmode {
  Joy to the world, the Lord is come.
}
\score {
  <<
    \new Voice = "one" {
      \time 2/4
      \musicOne
    }
    \new Lyrics \lyricsto "one" {
      \verseOne
    }
  >>
}
\paper{
  indent=0\mm
  line-width=180\mm
  oddFooterMarkup=##f
  oddHeaderMarkup=##f
  bookTitleMarkup = ##f
  scoreTitleMarkup = ##f
}


\paper{
  indent=0\mm
  line-width=180\mm
  oddFooterMarkup=##f
  oddHeaderMarkup=##f
  bookTitleMarkup = ##f
  scoreTitleMarkup = ##f
}

Farbige Noten und stille Akkorde[Bearbeiten]

<score sound="1" raw="1">
\version "2.20.0"
\header {
  title = " Op. 31 Etude No.1 Andante "
  % subtitle = " ... "
  % piece = " ... "
  composer = "Ferdinand Sor (*1778-†1839)"
  % opus = "Op.31"
  % source = "using different sources"
    arranger = "ccbysa Wikibooks (Mjchael)"
  copyright = "ccbysa de.wikibooks.org/wiki/Gitarre"
  % footer = " ... "
}
Akkorde = \chordmode {
  % \germanChords
  % \set Staff.midiInstrument = #"acoustic guitar (nylon)"
  %% Akkorde nur beim Wechsel Notieren
  % \set chordChanges = ##t
  \repeat volta 4 { 
    s4 |
    c2. | c | g:7 | g:7/f | c | c4 g c | 
    g2.:/b | g:/b |
    c | c | g4 g:maj7 g:7 | g2.:7/f | c | 
    d2:m7 g4 |  c2. c2
    s4 |
    g2.:7 | c | g:7/f | c | g:7/b | c | 
    g:/b | g:/b |
    c | c | g4 g:maj7 g:7 | g2.:7/f | c |
    d2:m7 g4 |  c2. c2
  }
}

Diskant =  \relative c' {
  \set Staff.midiInstrument = "acoustic guitar (nylon)"
  %Part 1
  \override NoteHead #'color = #red       
  \partial 4 
  \repeat volta 2 { g4 
    e'2 c4 | g c e | g-4 f-1 d-4 | b2 g4 | 
    g2 c4 | c b c |
    %% kurzfristig zweistimmig
    <<
      {
        d2.-4~ | d
      }
      \new Bottom = "middle" {
        \override NoteHead #'color = #green
        \voiceThree
        %% g4\rest =   1/4 Pause in Höhe g
        g,4\rest g4 g | g4 g g
      }
    >> \break
    %% wieder einstimmigen
    \override NoteHead #'color = #red
    e'2 c4 | g c e | g-3 fis-2 f-1 | d-4 b g | c2 e4 |
    a,-2 d-4 b | c2 e4 | c r4 
  } \break
  %Part 2
  \partial 4 
  \repeat volta 2 { g |
    f' g, f' | e g, e' | d g, d' | c g c | 
    b g d' | c g e' | 
    %% kurzfristig zweistimmig
    <<
      {
        d2.~ | d
      }
      \new Bottom = "middle" {
        \override NoteHead #'color = #green
        \voiceThree
        %% g4\rest =   1/4 Pause in Höhe g
        g,4\rest g4 g | g4 g g
      }
    >> \break
    %% wieder einstimmigen
    \override NoteHead #'color = #red
    e'2 c4 | g c e | g fis f | d-4 b g | c e c |
    a d-4 b | c2.~ | c4 r4
  }
}

Bass =  \relative c' {
  \override NoteHead #'color = #blue
  \partial 4
  \repeat volta 2 { s4 | 
    c,2. | e | d | f-3 | e | e4 d c | b2.-2~ |
    b | c2. | e | d | f-4 | e4 g c, | f2-3 g4 | 
    c, e g | <c, e> s4
  }
  \partial 4
  \repeat volta 2 { s4 | 
    d2. | c | f-3 | e | d2 f4 | e2 c4 | b2.~ | b |
    c | e | d | f | e4 c e | f2 g4 | c, e g | 
    c, s4
  }
}

Gitarre = << \Diskant \\ \Bass >>
       
\score {
  <<
    \new ChordNames { \Akkorde }
    \new Voice  { 
      \clef "treble_8" \time 3/4  
      \tempo 4 = 120 \key c \major 
      \set Score.tempoHideNote = ##t
      \Gitarre 
    }
    \new TabStaff {
        \Gitarre
    }
  >>
  \layout { }
}
\score {
  <<
    \new Voice  { 
      \clef "treble_8" \time 3/4  
      \tempo 4 = 120 \key c \major 
      \unfoldRepeats \Gitarre 
    }
  >>
  \midi { }
}

\paper {
  indent=0\mm
  line-width=180\mm
  oddFooterMarkup=##f
  oddHeaderMarkup=##f
  % bookTitleMarkup=##f
  scoreTitleMarkup=##f
}
</score>
Ergibt

\version "2.20.0"
\header {
  title = " Op. 31 Etude No.1 Andante "
  % subtitle = " ... "
  % piece = " ... "
  composer = "Ferdinand Sor (*1778-†1839)"
  % opus = "Op.31"
  % source = "using different sources"
    arranger = "ccbysa Wikibooks (Mjchael)"
  copyright = "ccbysa de.wikibooks.org/wiki/Gitarre"
  % footer = " ... "
}
Akkorde = \chordmode {
  % \germanChords
  % \set Staff.midiInstrument = #"acoustic guitar (nylon)"
  %% Akkorde nur beim Wechsel Notieren
  \set chordChanges = ##t
  \repeat volta 4 { 
    s4 |
    c2. | c | g:7 | g:7/f | c | c4 g c | 
    g2.:/b | g:/b |
    c | c | g4 g:maj7 g:7 | g2.:7/f | c | 
    d2:m7 g4 |  c2. c2
    s4 |
    g2.:7 | c | g:7/f | c | g:7/b | c | 
    g:/b | g:/b |
    c | c | g4 g:maj7 g:7 | g2.:7/f | c |
    d2:m7 g4 |  c2. c2
  }
}

Diskant =  \relative c' {
  \set Staff.midiInstrument = "acoustic guitar (nylon)"
  %Part 1
  \override NoteHead #'color = #red       
  \partial 4 
  \repeat volta 2 { g4 
    e'2 c4 | g c e | g-4 f-1 d-4 | b2 g4 | 
    g2 c4 | c b c |
    %% kurzfristig zweistimmig
    <<
      {
        d2.-4~ | d
      }
      \new Bottom = "middle" {
        \override NoteHead #'color = #green
        \voiceThree
        %% g4\rest =   1/4 Pause in Höhe g
        g,4\rest g4 g | g4 g g
      }
    >> \break
    %% wieder einstimmigen
    \override NoteHead #'color = #red
    e'2 c4 | g c e | g-3 fis-2 f-1 | d-4 b g | c2 e4 |
    a,-2 d-4 b | c2 e4 | c r4 
  } \break
  %Part 2
  \partial 4 
  \repeat volta 2 { g |
    f' g, f' | e g, e' | d g, d' | c g c | 
    b g d' | c g e' | 
    %% kurzfristig zweistimmig
    <<
      {
        d2.~ | d
      }
      \new Bottom = "middle" {
        \override NoteHead #'color = #green
        \voiceThree
        %% g4\rest =   1/4 Pause in Höhe g
        g,4\rest g4 g | g4 g g
      }
    >> \break
    %% wieder einstimmigen
    \override NoteHead #'color = #red
    e'2 c4 | g c e | g fis f | d-4 b g | c e c |
    a d-4 b | c2.~ | c4 r4
  }
}

Bass =  \relative c' {
  \override NoteHead #'color = #blue
  \partial 4
  \repeat volta 2 { s4 | 
    c,2. | e | d | f-3 | e | e4 d c | b2.-2~ |
    b | c2. | e | d | f-4 | e4 g c, | f2-3 g4 | 
    c, e g | <c, e> s4
  }
  \partial 4
  \repeat volta 2 { s4 | 
    d2. | c | f-3 | e | d2 f4 | e2 c4 | b2.~ | b |
    c | e | d | f | e4 c e | f2 g4 | c, e g | 
    c, s4
  }
}

Gitarre = << \Diskant \\ \Bass >>
       
\score {
  <<
    \new ChordNames { \Akkorde }
    \new Voice  { 
      \clef "treble_8" \time 3/4  
      \tempo 4 = 120 \key c \major 
      \set Score.tempoHideNote = ##t
      \Gitarre 
    }
    \new TabStaff {
        \Gitarre
    }
  >>
  \layout { }
}
\score {
  <<
    \new Voice  { 
      \clef "treble_8" \time 3/4  
      \tempo 4 = 120 \key c \major 
      \unfoldRepeats \Gitarre 
    }
  >>
  \midi { }
}

\paper {
  indent=0\mm
  line-width=180\mm
  oddFooterMarkup=##f
  oddHeaderMarkup=##f
  % bookTitleMarkup=##f
  scoreTitleMarkup=##f
}

Erklärungen[Bearbeiten]

Akkorde = \chordmode {

Akkorde erklingen normalerweise beim Midi. Will man dieses verhindern, gibt es einen Befehl für den Midi-Block.

\midi {
  % Notennamen sollen nicht erklingen
  \context {
    \ChordNames
    \remove "Staff_performer"
  }
}

Alternativ erstellt man einen eigenen Score für Layout und einen anderen für Midi erstellen. Damit man nicht noch einmal alle Noten im Midi-Block wiederholen muss, arbeitet man besser mit Variablen. Variabeln funktionieren allerdings nur im Raw-Modus.

\repeat volta 4 { ... )

zeigt an, dass ein Block wiederholt werden soll. In Noten wird nur das Wiederholungszeichen gesetzt. Im Midi erklingt aber nur ein Durchlauf, ...

\unfoldRepeats \Gitarre

... es sei denn, man trägt den Befehl \unfoldRepeats ein. Dann werden alle Wiederholungen auch ausgeschrieben, und keine Wiederholungszeichen gesetzt. Dieses mag bei der Wiederholung von Akkordbegleitmustern durchaus sinnvoll sein, doch öfter kommt es vor, dass man die Noten kurz halten möchte, doch die Midis in voller Länge. Also taucht der Befehl für das Entfalten der Wiederholungen nur bei den Midis auf.

\override NoteHead #'color = #red

Das Umfärben der Notenköpfe funktioniert nur im raw-Modus.

\new TabStaff { \Gitarre }

Eine Tabulatur funktioniert in Lilypond mit Noten. Hier werden einfach die in \Gitarre gespeicherten Noten in das TabStaff kopiert.