Hallo,
hier ein Vorschalg für die Baß-Zeile (manuell eingegeben) der Steirischen. Es gibt noch einiges Verbesserungspotential.
\version "2.18.0"
% All dies ist ein vorläufiger Stand für die manuelle Eingabe.
% Nur die Funktionalität der Bass-Zeile wird hier näher untersucht.
% Bisher ist kein Übersetzungs-Automatismus vorgesehen, das Beispiel
% dient eher als Untersuchung, welche "Ausgaben" müßte solch ein
% Übersetzungsautomatismus herausbringen, damit die Grafik
% ordentlich aussieht.
% Die Bass-Tasten-Bezeichner:
AA = ^\markup { "A" }
aa = ^\markup { "a" }
BB = ^\markup { "B" }
bb = ^\markup { "b" }
CC = ^\markup { "C" }
cc = ^\markup { "c" }
DD = ^\markup { "D" }
dd = ^\markup { "d" }
EE = ^\markup { "E" }
ee = ^\markup { "e" }
FF = ^\markup { "F" }
% nicht 'f =' definieren, sonst geht das 'forte' flöten!
ff = ^\markup { "f" }
GG = ^\markup { "G" }
gg = ^\markup { "g" }
XX = ^\markup { "X" }
% Zug und Druck - nur für die Bass-Zeile:
steirisch-compress = {
\stopStaff
\override Staff.StaffSymbol.transparent = ##f
\startStaff
}
steirisch-expand = {
\stopStaff
\override Staff.StaffSymbol.transparent = ##t
\startStaff
}
% Y-position der Rhythmus-Noten und -Pausen in der Bass-Zeile berechnen:
#(define (steirisch-simple-bass-Y grob)
(let ((grob-type (ly:assoc-get 'name (ly:grob-property grob 'meta))))
(if (eq? grob-type 'NoteHead)
(begin
;;debug: (display "\n It's a NoteHead! ")
-0.8)
(if (eq? grob-type 'Rest)
(let ((dura (ly:grob-property grob 'duration-log)))
;;debug: (for-each display (list "\n It's a Rest with duration-log = " dura "! "))
(if (> dura 2)
(- 0.8 (floor (* (1+ dura) 0.5)))
(if (= dura 2)
-1.9
-1.3)))
0.0))))
% Sonstige Anmerkungen:
% * Die Noten und Pausen in der Bass-Zeile, welche nur einen von der Diskant-
% zeile abweichenden Rhythmus angeben, sollten wohl noch etwas kleiner ausfallen,
% und kürzere Notenhälse haben.
% * Die Druck-Linie beginnt in der Notenzeile ganz vorne, nicht erst nach der
% Taktangabe und gegebenenfalls Schlüssel und Tonart, welche eventuell von anderen
% Zeilen des Systems stammen, z. Bsp. Transkription für Piano-Akkordeon.
% * Die senkrechte Linie, welche die Diskant- mit der Bass-Zeile verbindet, ist (nur)
% global unterdrückt.
\score {
<<
\new Staff \with {
\override Clef #'stencil = ##f
clefGlyph = #"clefs.C"
clefPosition = #0
middleCPosition = #0
middleCClefPosition = #0
} {
d4 f a c'
e'4 g' b' d''
f''4 d''8 b' g' e' c' a
f4. d8 b,4. g,8
<b, d f>2. r4
\bar "|."
}
\new Staff \with {
\remove Clef_engraver
\override TimeSignature #'stencil = ##f
} {
\stopStaff
\override Staff.StaffSymbol.line-positions = #'(-0.25 -0.20 -0.15 -0.10 -0.05 0 0.05 0.10 0.15 0.20 0.25)
\hide Staff.BarLine
\stemDown \slurDown
\override NoteHead.Y-offset = #steirisch-simple-bass-Y
\override Rest.Y-offset = #steirisch-simple-bass-Y
\override Score.SystemStartBar.stencil = ##f
\steirisch-compress
s4\BB s\bb s\AA s\bb
s4\BB s\bb s\AA s\bb
\steirisch-expand
s4\AA s\bb s\BB s\bb
c4\AA c\bb c\BB c\bb
\steirisch-compress
c4\BB c\bb c\BB\bb r
%Test only: r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128
}
>>
}
Arnold