Griffschrift für die Steirische Harmonika

Zur Navigation springen Zur Suche springen

Allgemeines

Die Griffschrift sieht zwar aus wie eine Notenschrift, bezeichnet jedoch keine Notenwerte. Welcher Notenwert durch eine bestimmte Note der Griffschrift dargestellt wird, hängt von der aktuellen Stimmung der Harmonika ab.

Tasächlich bedeuten die Notenköpfe, welcher Knopf in welcher Reihe zu drücken ist. Noten in der ersten Reihe liegen ausschließlich auf den Notenlinien, Noten in der zweiten Reihe in den Zwischenräumen (oder umgekehrt, was jedoch für die Notation keinen Unterschied macht). Noten in der dritten Reihe werden durch ein Kreuz (ähnlich einem Doppelkreuz) bezeichnet, Noten in einer eventuell vorhandenen vierten Reihe durch ein anderes Zeichen, beispielsweise eine Raute oder ein Kreuz in einem Kreis.

Die Platzierung eines Notenkopfes innerhalb der Notenlinien sagt aus, der wievielte Knopf in der Reihe zu drücken ist, nicht welche Höhe der dadurch erzeugte Ton hat.

Für die Erstellung einer Griffschriftnotation ist es nicht erforderlich zu wissen, welche Reihe durch welchen Ton repräsentiert wird.

- Vorzeichen sind nicht erforderlich
- Notenschlüssel sind nicht erforderlich
- die Symbole vor den Noten sollen untereinander exakt in einer Spalte stehen
- die Eingabe soll mit möglichst wenigen Zeichen erfolgen

Vorlage

Ich habe den Code aus dem LSR #784, Arrow notation and transposition for quarter tones für meine Zwecke adaptiert.

Die Bassnotation kann durch einfachen Lyric-Mode erfolgen, da eine Transponierung grundsätzlich nicht erforderlich ist. Ebenso werden die Griffschriftnoten prinzipiell nicht transponiert. Zug- und Drucknotation realisiere ich in einem Dynamic-Context mit Hairpins, deren Höhe auf 0 gesetzt wird.

Weiters habe ich sowohl »h« als auch »b« definiert, da ohnehin keine Versetzungszeichen benötigt werden.

Für die Verwendung in der Bassnotation habe ich Variablen für Pausen definiert, um die Schreibarbeit zu reduzieren.

Lilypond-Code für die Griffschrift

Die Eingabe soll so einfach wie möglich gestaltet werden.

#(allow-volta-hook "||")
#(define-public NATURAL-RAISE  2/10)
#(define-public NATURAL-LOWER -2/10)

SPause = \markup { \musicglyph #"rests.4" } %% Sechzehntelpause
APause = \markup { \musicglyph #"rests.3" } %% Achtelpause
VPause = \markup { \musicglyph #"rests.2" } %% Viertelpause
HPause = \markup { \musicglyph #"rests.1" } %% Halbe Pause
GPause = \markup { \musicglyph #"rests.0" } %% Ganze Pause

GriffPitchNames =  #`(
                       (ce    . ,(ly:make-pitch -1 0 NATURAL-LOWER))
                       (c     . ,(ly:make-pitch -1 0 NATURAL))
                       (ci    . ,(ly:make-pitch -1 0 NATURAL-RAISE))

                       (de    . ,(ly:make-pitch -1 1 NATURAL-LOWER))
                       (d     . ,(ly:make-pitch -1 1 NATURAL))
                       (di    . ,(ly:make-pitch -1 1 NATURAL-RAISE))

                       (ee    . ,(ly:make-pitch -1 2 NATURAL-LOWER))
                       (e     . ,(ly:make-pitch -1 2 NATURAL))
                       (ei    . ,(ly:make-pitch -1 2 NATURAL-RAISE))

                       (fe    . ,(ly:make-pitch -1 3 NATURAL-LOWER))
                       (f     . ,(ly:make-pitch -1 3 NATURAL))
                       (fi    . ,(ly:make-pitch -1 3 NATURAL-RAISE))

                       (ge    . ,(ly:make-pitch -1 4 NATURAL-LOWER))
                       (g     . ,(ly:make-pitch -1 4 NATURAL))
                       (gi    . ,(ly:make-pitch -1 4 NATURAL-RAISE))

                       (ae    . ,(ly:make-pitch -1 5 NATURAL-LOWER))
                       (a     . ,(ly:make-pitch -1 5 NATURAL))
                       (ai    . ,(ly:make-pitch -1 5 NATURAL-RAISE))

                       (be    . ,(ly:make-pitch -1 6 NATURAL-LOWER))
                       (b     . ,(ly:make-pitch -1 6 NATURAL))
                       (bi    . ,(ly:make-pitch -1 6 NATURAL-RAISE))

                       (he    . ,(ly:make-pitch -1 6 NATURAL-LOWER))
                       (h     . ,(ly:make-pitch -1 6 NATURAL))
                       (hi    . ,(ly:make-pitch -1 6 NATURAL-RAISE))
                       )

pitchnames = \GriffPitchNames
#(ly:parser-set-note-names pitchnames)

% The symbols for each alteration
GriffGlyphs = #`(
                  (,NATURAL-RAISE . "noteheads.s2cross")
                  (  0            . "accidentals.natural")
                  (,NATURAL-LOWER . "noteheads.s0harmonic")
                  )

\paper {
  line-width = 175\mm
  top-margin = 15\mm
  bottom-margin = 20\mm
  indent = #0
  tagline=##f
}

\header {
  title = "Beispiel für Griffschrift"
  poet = "Vierreihige Steirische"
  composer = \markup \override #'(baseline-skip . 2)
  \right-column {
    \line \vcenter { 3. Reihe: \musicglyph "noteheads.s2cross" }
    \line \vcenter { 4. Reihe: \musicglyph "noteheads.s0harmonic" }
    \line \vcenter {
      "kann beliebig geändert werden"
      \with-color #white \musicglyph "noteheads.s0harmonic"
    }
  }
}

\layout {
  \context {
    \Score
    \override KeySignature.glyph-name-alist = \GriffGlyphs
    \override Accidental.glyph-name-alist = \GriffGlyphs
    \override AccidentalCautionary.glyph-name-alist = \GriffGlyphs
    \override TrillPitchAccidental.glyph-name-alist = \GriffGlyphs
    \override AmbitusAccidental.glyph-name-alist = \GriffGlyphs
    %% Abstand zwischen Nicht-Noten Kontexten untereinander, Lyrics, Dynamics etwa
    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.basic-distance = #4
    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.minimum-distance = #3
    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.padding = #1
  }
  \context {
    \Staff
  }
  \context {
    \Voice
    \override Accidental.X-offset = -1.5
  }
  \context {
    \Dynamics
    \override Hairpin.height = #0
    \override Hairpin.thickness = #3
    % Abstand der Zug/Druck-Linie zur darüber liegenden Notenzeile
    \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.minimum-distance = #5
  }
}

Anwendungsbeispiel

notes = \relative c'' {
  < ei ci >8. be16
  q8 < ci bi, >16 q
}

ZugDruck = \new Dynamics {
  \repeat unfold 3 { s2\< s\!  }
}

Bass = \new Lyrics \lyricmode {
  C8 c8 B c c4 c
  C8 \APause % eine Achtelpause
  F B
  c4 B C8 c B c
  C8 c B c
}

%% untere Bassreihe
Bassu =  \new Lyrics \lyricmode {
  \skip 2
  C4 C
  \skip 2
  C2
}
\score {
  <<
    \new Staff
    <<
      \new Voice=melodie   {
        \key c \major
        \time 2/4
        \accidentalStyle forget
        \omit Staff.Clef
        \repeat unfold 6 \notes
      }
    >>
    \new Dynamics \ZugDruck
    \new Lyrics \Bass
    \new Lyrics \Bassu
  >>
}
\version "2.22.0"

#(allow-volta-hook "||")
SPause = \markup { \musicglyph "rests.4" } %% Sechzehntelpause
APause = \markup { \musicglyph "rests.3" } %% Achtelpause
VPause = \markup { \musicglyph "rests.2" } %% Viertelpause
HPause = \markup { \musicglyph "rests.1" } %% Halbe Pause
GPause = \markup { \musicglyph "rests.0" } %% Ganze Pause


%% http://lsr.di.unimi.it/LSR/Item?id=784
%% war die Vorlage
%% ich habe überflüssige Definitionen entfernt, um die Sachlage übersichtlicher
%% zu gestalten

#(define-public NATURAL-RAISE  2/10)
#(define-public NATURAL-LOWER -2/10)

% Note names can now be defined to represent these pitches in our
% Lilypond input.
% Das Ziel ist, die Eingabe so einfach wie möglich zu gestalten

GriffPitchNames =  #`(
                       (ce    . ,(ly:make-pitch -1 0 NATURAL-LOWER))
                       (c     . ,(ly:make-pitch -1 0 NATURAL))
                       (ci    . ,(ly:make-pitch -1 0 NATURAL-RAISE))

                       (de    . ,(ly:make-pitch -1 1 NATURAL-LOWER))
                       (d     . ,(ly:make-pitch -1 1 NATURAL))
                       (di    . ,(ly:make-pitch -1 1 NATURAL-RAISE))

                       (ee    . ,(ly:make-pitch -1 2 NATURAL-LOWER))
                       (e     . ,(ly:make-pitch -1 2 NATURAL))
                       (ei    . ,(ly:make-pitch -1 2 NATURAL-RAISE))

                       (fe    . ,(ly:make-pitch -1 3 NATURAL-LOWER))
                       (f     . ,(ly:make-pitch -1 3 NATURAL))
                       (fi    . ,(ly:make-pitch -1 3 NATURAL-RAISE))

                       (ge    . ,(ly:make-pitch -1 4 NATURAL-LOWER))
                       (g     . ,(ly:make-pitch -1 4 NATURAL))
                       (gi    . ,(ly:make-pitch -1 4 NATURAL-RAISE))

                       (ae    . ,(ly:make-pitch -1 5 NATURAL-LOWER))
                       (a     . ,(ly:make-pitch -1 5 NATURAL))
                       (ai    . ,(ly:make-pitch -1 5 NATURAL-RAISE))

                       (be    . ,(ly:make-pitch -1 6 NATURAL-LOWER))
                       (b     . ,(ly:make-pitch -1 6 NATURAL))
                       (bi    . ,(ly:make-pitch -1 6 NATURAL-RAISE))

                       (he    . ,(ly:make-pitch -1 6 NATURAL-LOWER))
                       (h     . ,(ly:make-pitch -1 6 NATURAL))
                       (hi    . ,(ly:make-pitch -1 6 NATURAL-RAISE))
                       )

pitchnames = \GriffPitchNames
#(ly:parser-set-note-names pitchnames)

% The symbols for each alteration
GriffGlyphs = #`(
                  (,NATURAL-RAISE . "noteheads.s2cross")
                  (  0            . "accidentals.natural")
                  (,NATURAL-LOWER . "noteheads.s0harmonic")
                  )

\paper {
  line-width = 175\mm
  top-margin = 15\mm
  bottom-margin = 20\mm
  indent = #0
  tagline=##f
}

\header {
  title = "Beispiel für Griffschrift"
  subtitle = ##f %"sempre staccato"
  subsubtitle = ##f
  poet = "Vierreihige Steirische"
  composer = \markup \override #'(baseline-skip . 2)
  \right-column {
    \line \vcenter { 3. Reihe: \musicglyph "noteheads.s2cross" }
    \line \vcenter { 4. Reihe: \musicglyph "noteheads.s0harmonic" }
    \line \vcenter {
      "kann beliebig geändert werden"
      \with-color #white \musicglyph "noteheads.s0harmonic"
    }
  }
  piece = ##f
  opus = ##f
}

\layout {
  \context {
    \Score
    \override KeySignature.glyph-name-alist = \GriffGlyphs
    \override Accidental.glyph-name-alist = \GriffGlyphs
    \override AccidentalCautionary.glyph-name-alist = \GriffGlyphs
    \override TrillPitchAccidental.glyph-name-alist = \GriffGlyphs
    \override AmbitusAccidental.glyph-name-alist = \GriffGlyphs
    %% Abstand zwischen Nicht-Noten Kontexten untereinander, Lyrics, Dynamics etwa
    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.basic-distance = #4
    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.minimum-distance = #3
    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.padding = #1
  }
  \context {
    \Staff
  }
  \context {
    \Voice
    \override Accidental.X-offset = -1.5
  }
  \context {
    \Dynamics
    \override Hairpin.height = #0
    \override Hairpin.thickness = #3
    % Abstand der Zug/Druck-Linie zur darüber liegenden Notenzeile
    \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.minimum-distance = #5
  }
}

notes = \relative c'' {
  < ei ci >8. be16
  q8 < ci bi, >16 q
}

ZugDruck = \new Dynamics {
  \repeat unfold 3 { s2\< s\!  }
}

Bass = \new Lyrics \lyricmode {
  C8 c8 B c c4 c
  C8 \APause % eine Achtelpause
  F B
  c4 B C8 c B c
  C8 c B c
}

%% untere Bassreihe
Bassu =  \new Lyrics \lyricmode {
  \skip 2
  C4 C
  \skip 2
  C2
}

\score {
  <<
    \new Staff
    <<
      \new Voice=melodie   {
        \key c \major
        \time 2/4
        \accidentalStyle forget
        \omit Staff.Clef
        \repeat unfold 6 \notes
      }
    >>
    \new Dynamics \ZugDruck
    \new Lyrics \Bass
    \new Lyrics \Bassu
  >>
}