Hallo,
ich setze gerade die Fuge BWV 998 von Bach und frage mich ob es bessere Einstellungen fuer mehrstimmigen Satz gibt, die mir die manuelle Nacharbeit reduzieren.
Ein Takt als Beispiel:
\version "2.22"
keytime = { \time 4/4 \key d \major }
melody = \absolute {
\keytime
d'8-2 e'-0 fis'-1 gis'-3 a'-2 e'-0 d'-4\3 cis'-2\3 | %7
}
upper =\absolute {
\keytime
s1 |
}
lower = \absolute {
\keytime
fis4-3 r4 r8 cis'-4\3 b-0 a-3\4 | % 7
}
bass = \absolute {
\keytime
r4 d-0 cis-1 d-1\5 | %7
}
\score {
\new StaffGroup
<<
\new Staff = "guitar" <<
\context Voice = "melody" { \clef "G_8" \voiceOne \melody }
\context Voice = "upper" { \clef "G_8" \voiceThree \upper }
\context Voice = "lower" { \clef "G_8" \voiceFour \lower }
\context Voice = "bass" { \clef "G_8" \voiceTwo \bass }
>>
\new TabStaff = "tab" <<
\set Staff.stringTunings = #guitar-drop-d-tuning
\context TabVoice = "melody tab " { \clef "moderntab" \voiceOne \melody }
\context TabVoice = "upper tab" { \clef "moderntab" \voiceThree \upper }
\context TabVoice = "lower tab" { \clef "moderntab" \voiceFour \lower }
\context TabVoice = "bass tab" { \clef "moderntab" \voiceTwo \bass }
>>
>>
\layout {
\context {
\Staff
\hide StringNumber
}}
}
}
Vorschau siehe angehaengtes Bild.
Mir ist bewusst dass ich fuer jeden Takt einzeln tweaken kann, aber bevor ich das fuer alle 77 mache moechte ich gerne sicher sein dass es keine generische Loesung gibt :)
Folgendes moechte ich generell verbessern:
- Lange Notenhaelse in voice lower und Umschliessung der Viertel im voice bass vermeiden. Bisher loese ich das im Einzelfall mit \once \override Beam.positions = #'(-1 . -1) und angepassten Werten. Gibt es eine Einstellung die kuerzere Haelse favorisiert? Quasi so etwas wie \shiftOn fuer die Vertikale?
- Bezug von Fingersaetzen zur Note verbessern. Im voice lower haengen die Fingerangaben unter den langen Achteln, dabei waere rechts von den Notenkoepfen Platz. Ich habe keinen override dazu gefunden. Angeschaut habe ich Fingering.direction, scheint aber nur oben/unten zu setzen und fingeringOrientations bzw. Fingering.staff-padding ist nur fuer Akkordkonstrukte in <>. Mit \override Fingering.add-stem-support = ##f wird es ganz wild, dann ueberlappen Notenkoepfe und Haelse sich mit den Angaben.
- "Schichtung" der Pausen bei mehreren Stimmen. Die Pausen in den voices bass/lower sind vertikal kaum zu unterscheiden bzw suggerieren eine andere Stimmenschichtung. Dabei waere fuer den Satz der Pausen zwischen melody und bass Platz. Bisher loese ich das mit einem \override Rest.staff-position = -1. Koennte man die Position der Pausen dynamisch dem verfuegbaren Platz zwischen den Stimmen anpassen?
Freue mich auf eure Ideen!
VG,
Achim
Zunächst einige Details:
ZitatBezug von Fingersaetzen zur Note verbessern. Im voice lower haengen die Fingerangaben unter den langen Achteln, dabei waere rechts von den Notenkoepfen Platz. Ich habe keinen override dazu gefunden. Angeschaut habe ich Fingering.direction, scheint aber nur oben/unten zu setzen und fingeringOrientations bzw. Fingering.staff-padding ist nur fuer Akkordkonstrukte in <>. Mit \override Fingering.add-stem-support = ##f wird es ganz wild, dann ueberlappen Notenkoepfe und Haelse sich mit den Angaben.
In LilyPond wird ein Akkord z.B. so geschrieben: <c e g>. Das ist ein
event-chord mit drei
note-events.
Du kannst genauso einen
event-chord mit nur einem
note-event schreiben. Dann klappt es auch mit
fingeringOrientationsZitat
"Schichtung" der Pausen bei mehreren Stimmen. Die Pausen in den voices bass/lower sind vertikal kaum zu unterscheiden bzw suggerieren eine andere Stimmenschichtung. Dabei waere fuer den Satz der Pausen zwischen melody und bass Platz. Bisher loese ich das mit einem \override Rest.staff-position = -1. Koennte man die Position der Pausen dynamisch dem verfuegbaren Platz zwischen den Stimmen anpassen?
Hier kenne ich keine vereinfachende Methode. Ich nehme auch immer
Rest.staff-positionZitatLange Notenhaelse in voice lower und Umschliessung der Viertel im voice bass vermeiden. Bisher loese ich das im Einzelfall mit \once \override Beam.positions = #'(-1 . -1) und angepassten Werten. Gibt es eine Einstellung die kuerzere Haelse favorisiert? Quasi so etwas wie \shiftOn fuer die Vertikale?
Du kannst
Beam.collision-interfaces bzw
Stem.details verändern. Beispiele siehe unten.
Ganz generell ist ein polyphones Werk wie diese Fuge sehr schwierig zu setzen.
Unten habe ich mal die Ausgaben von Ricordi bzw Universal Edition nachempfunden. Sie unterscheiden sich deutlich in der Behandlung des Balkens in der Mittelstimme. (Fingersätze entsprechen den genannten Ausgaben, rechte Hand und Saitenangaben habe ich weg gelassen)
Und hätte ich die anderen Ausgaben aus meinem Notenschrank durchgesehen wären bestimmt noch andere Ansätze zu finden gewesen.
Aber egal, an
zahlreichen manuellen Eingriffen wird man nicht vorbei kommen ganz gleich welchen Ansatz man verfolgt. Wenn man genau hinschaut sieht man doch einige Sachen, die noch verbesserungsfähig sind, aber ich krieg ja kein Geld dafür lol...
Der Code braucht allerdings 2.23.0
\version "2.23.0"
%% RICORDI
beam-coll =
\override Beam.collision-interfaces =
#'(beam-interface
clef-interface
clef-modifier-interface
flag-interface
inline-accidental-interface
key-signature-interface
note-head-interface
;stem-interface
time-signature-interface)
keytime = { \clef "G_8" \time 4/4 \key d \major }
melody = \absolute {
\keytime
<d'-2>8 <e'-0> <fis'-1> <gis'\glide-3> <a'-3>
\once \override FingerGlideSpanner.rotation = #'(20 1 0)
<e'-2-\glide-\tweak transparent ##t -4>
<d'-4>8 <cis'-2> | %7
}
upper =\absolute {
\keytime
s1 |
}
lower = \absolute {
\keytime
\beam-coll
<fis-3>4
\override Rest.staff-position = -1
r4
\override Rest.staff-position = 0
r8
<cis'-4>
\shiftOff
<b-0> <a-3> | % 7
}
bass = \absolute {
\keytime
r4 <d> <cis\glide-1>
\once \override NoteColumn.force-hshift = 1
<d-\tweak padding #0.2 -1> | %7
}
\score {
\new StaffGroup
<<
\new Staff = "guitar"
\with { instrumentName = "RICORDI" }
<<
\context Voice = "melody" { \voiceOne \melody }
\context Voice = "upper" { \voiceThree \upper }
\context Voice = "lower" { \voiceFour \lower }
\context Voice = "bass" { \voiceTwo \bass }
>>
>>
\layout {
line-width = 90
ragged-right = ##f
\context {
\Voice
fingeringOrientations = #'(left)
\override FingerGlideSpanner.style = #'stub-right
\override FingerGlideSpanner.minimum-length = 5.5
}
\context {
\Staff
\hide StringNumber
}
}
}
%% UE
keytime = { \clef "G_8" \time 4/4 \key d \major }
melody = \absolute {
\keytime
<d'>8 <e'> <fis'-1>
\once \override FingerGlideSpanner.minimum-length = 5.5
<gis'\glide-3> <a'-3>
\once \override FingerGlideSpanner.minimum-length = 4
<e'\glide-2>
<d'-2>
\set Staff.connectArpeggios = ##t
\once \override Staff.Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket
<cis'>\arpeggio | %7
}
upper =\absolute {
\keytime
s1 |
}
lower = \absolute {
\keytime
<fis-3>4
\override Rest.staff-position = -1
r4
\override Rest.staff-position = 0
r8
\override Stem.details.beamed-extreme-minimum-free-lengths = #'(0.8)
<cis'-4>
\once \shiftOff
<b-3> <a>\arpeggio | % 7
}
bass = \absolute {
\keytime
r4 <d> <cis-1> <d> | %7
}
\score {
\new StaffGroup
<<
\new Staff = "guitar"
\with { instrumentName = "UE" }
<<
\context Voice = "melody" { \voiceOne \melody }
\context Voice = "upper" { \voiceThree \upper }
\context Voice = "lower" { \voiceFour \lower }
\context Voice = "bass" { \voiceTwo \bass }
>>
>>
\layout {
\context {
\Staff
\consists "Span_arpeggio_engraver"
}
\context {
\Voice
fingeringOrientations = #'(left)
\override FingerGlideSpanner.style = #'stub-right
}
\context {
\Staff
\hide StringNumber
}
}
}
Gruß,
Harm