Hallo Mat,
vielen Dank für Dein Interesse. Es geht um ein diatonisches Akkordeon. Für die (in meinem Umfeld) dafür üblichen Tabulaturen habe ich noch keine wirkliche Lilypond-Entsprechung gefunden. Der Fingersatz steht in extra Zeilen unter dem System mit der Melodie. Dabei gibt es eine obere Zeile, wenn der Balg gedrückt ist und eine untere Zeile, wenn der Balg gezogen wird. Die beiden Zeilen sind durch einen langen Strich (wie einzelne Notenlinie) getrennt. Die Taktstriche (inklusive Ende und Anfang der Systeme) gehen bis unter die Fingersatz-Zeilen. Ich hänge mal ein entsprechendes Beispiel an (Beispiel1.pdf). Der Strich an den Nummern bedeutet, dass auf der Diskant-Seite die innere Knopf-Reihe zu nehmen ist. Ohne Strich ist die äußere zu nehmen. Bei dreireihigen Instrumenten können dementsprechende auch zwei Striche auftreten.
Realisiert habe ich das mit drei Notenzeilen. In der ersten steht die Melodie. Die zweite ist für den Fingersatz und enthält nur vesteckte Pausen (Skips) mit dem Fingersatz als Markup. Die dritte Notenlinie sorgt nur dafür, dass Anfang und Ende der Systeme weit genug reichen und besteht aus einer Notenzeile mit nur Skips, wobei die Notenzeile durch die Farbe Weiß auch noch versteckt ist. (Über Hinweise, wie ich das besser realisiere, würde ich mich auch freuen. Insbesondere das Verstecken durch weiße Farbe gefällt mir nicht sehr gut). Der Code dazu ist folgender:
\version "2.12.1"
\include "deutsch.ly"
#(set-default-paper-size "a4")
\paper {
indent = 0\cm
line-width = 17\cm
}
notenA = \transpose c c' {
\tupletUp \times 2/3 {
h4 g8 e4 a8 fis4 g8~
g4 fis8 g4 a8 h4 c'8
}}
melodie = {
\notenA
}
harmonies = \chordmode {
{e2.:m c2.}
}
fingerA = {
% Takt 1
s4^"7"
s8^"6"
s4^"4'"
s8_"7"
s4_"6"
s8^"6"
% Takt 2
s4^"6"
s8_"6"
s4^"6"
s8_"7"
s4^"7"
s8^"6'"
}
finger = \times 2/3 {
\fingerA
}
\score { <<
\new ChordNames \with {
midiInstrument = #"accordion"
}{
\set chordChanges = ##t
\time 3/4
\harmonies
}
\new PianoStaff {
<<
\new Staff \with {
\override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
midiInstrument = #"accordion"
% \override StaffSymbol #'Y-extent = #'(0 . 0)
tupletSpannerDuration = #(ly:make-moment 1 4)
}{
\time 3/4
\key g \major
\tempo 4 = 110
\new Voice \with {
\override TupletBracket #'staff-padding = #1
}{
\melodie
}
}
\new Staff \with {
\override StaffSymbol #'line-count = #1
\override TimeSignature #'transparent = ##t
\override TimeSignature #'break-visibility = #'#(#f #f #f)
explicitKeySignatureVisibility = #all-invisible
explicitClefVisibility = #all-invisible
\override Clef #'break-visibility = #'#(#f #f #f)
\override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 3)
\override TextScript #'self-alignment-X = #CENTER
\override TextScript #'extra-spacing-width = #'(0 . 2)
}
{
\time 3/4
\finger
}
\new Staff
% dummy for size off staff group
\with {
\override StaffSymbol #'line-count = #1
\override StaffSymbol #'color = #white
\override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
\override VerticalAxisGroup #'Y-extent = #'(0 . 0)
explicitKeySignatureVisibility = #all-invisible
explicitClefVisibility = #all-invisible
\override Clef #'break-visibility = #'#(#f #f #f)
\override BarLine #'stencil = ##f
\override TimeSignature #'stencil = ##f
} {
s1 s1
}
>>
}
>>
\layout {
\context {
\Staff
\remove "Collision_engraver"
}
}
}
Für ein Stück mit einer rhythmisch gleichen zweiten Stimme habe ich für mich entschieden, die Zahlen im Fingersatz nebeneinander zu setzen, da mir der Abstand zu den Noten sonst zu groß wird. Datei: Beispiel2.pdf. Code:
\version "2.12.1"
\include "deutsch.ly"
#(set-default-paper-size "a4")
\paper {
indent = 0\cm
line-width = 17\cm
}
notenA = \transpose c c' {
e2 e4. e8
e4 c d e
}
notenB = \transpose c c' {
c2 c4. c8
c4 g, h, c
}
harmonies = \chordmode {
c1
c2 g4 c4
}
\score { <<
\new ChordNames \with {
midiInstrument = #"accordion"
}{
\set chordChanges = ##t
\harmonies
}
\new PianoStaff {
<<
\new Staff \with {
\override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
midiInstrument = #"accordion"
}{
\tempo 4 = 110
\new Voice <<
\notenA
\notenB
>>
}
\new Staff \with {
\override StaffSymbol #'line-count = #1
\override TimeSignature #'transparent = ##t
\override TimeSignature #'break-visibility = #'#(#f #f #f)
explicitKeySignatureVisibility = #all-invisible
explicitClefVisibility = #all-invisible
\override Clef #'break-visibility = #'#(#f #f #f)
\override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 3)
\override TextScript #'self-alignment-X = #CENTER
\override TextScript #'extra-spacing-width = #'(0 . 2)
}
{
% Takt 1
s2^"3' 4'"
s4.^"3' 4'"
s8^"3' 4'"
% Takt 2
s4^"3' 4'"
s4^"2' 3'"
s4_"2' 3'"
s4^"3' 4'"
}
\new Staff \with {
% dummy for size off staff group
\override TimeSignature #'transparent = ##t
\override StaffSymbol #'line-count = #1
\override StaffSymbol #'color = #white
\override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
explicitKeySignatureVisibility = #all-invisible
explicitClefVisibility = #all-invisible
\override Clef #'break-visibility = #'#(#f #f #f)
} {
s1 s1
}
>>
}
>>
\layout {
\context {
\Staff
\remove "Collision_engraver"
}
}
}
Im Prinzip kann ich das immer wieder so schreiben, aber der Aufwand ist recht groß. Deswegen denke ich darüber nach, das mit Scheme zu automatisieren. Zu einer endgültigen Entscheidung zum Vorgehen bin ich noch nicht gekommen, aber bei zwei Stimmen stehe ich vor dem Problem, wie ich den Fingersatz nebeneinander bekomme. Wenn ich voraussetze, dass die Stimmen rhythmisch gleich sind und als Akkorde geschrieben werden, ist das noch recht gut vorstellbar. Im (möglicherweise berechneten) Ergebnis für die Fingersatz-Zeile steht z.B. s^"2 3". Um als separate Stimmen schreiben zu können oder bei rhythmisch unterschiedlichen Stimmen müsste ich Lilypond dazu bekommen, den Fingersatz nebeneinander zu schreiben. Alternativ müsste mein Scheme-Code berechnen, welche Notenanfänge zusammenfallen, um den Fingersatz dann zusammenzufassen. Eine vorhandene Implementierung für diese Berechnung würde mir wahrscheinlich genauso helfen.
Viele Grüße,
Ulrich