Hallo quadronado,
ich habe da mal etwas gemacht, was Dir vielleicht gefallen könnte.
Im einzelnen:
Ich habe die Beschriftung in zwei unterschiedlichen Höhen vorgenommen weil ich dachte, dass ich so das ganze etwas zusammenschieben könnte, um Platz zu sparen. Aber leider gelingt mir das Zusammenschieben nicht. Wenn ich den Befehl "\textLengthOn" weglasse, sieht das ganze total chaotisch aus.
Um das Problem zu umgehen habe ich zwei Stimmen benutzt.
Außerdem dachte ich, ich könnte eine Linie zwischen Text und Notenkopf einfügen, damit deutlich wird, auf welche Note sich die Beschriftung bezieht. Ich bekomme den Strich aber nicht mittig unter den Notenkopf sondern nur linksbündig. Außerdem habe ich es nicht geschafft, die Höhe auszurichten. Die Linie bleibt immer unterhalb des Systems.
1. Der Befehl
\center-column zentriert die markup-Zeilen im markup und das gesamte markup über den linken Rand der Note. Aber für Ganze Noten etc. ist das nichts. Insoweit habe ich das markup-command
center-column-h geschrieben, um eine leichte Verschiebung einzubauen.
2. Um ein markup in das Notensystem zu bekommen braucht man:
\override [DrumVoice.]TextScript #'padding = #0
\override [DrumVoice.]TextScript #'staff-padding = #'()
\override [DrumVoice.]TextScript #'outside-staff-priority = ##f Den padding-Wert muß man dann noch anpassen.
(Oder man benutzt \override TextScript #'extra-offset = #'(a . b))
Ich habe versucht, den Drum-Key und die eigentlich Noten dadurch zu trennen, dass ich zwei mal einen \score gesetzt habe. Ich habe keine Ahnung, ob dies die korrekte Vorgehensweise ist. Jedenfalls scheint mir der Abstand zwischen Drum-Key und Stück etwas gering zu sein.
Grundsätzlich würde ich auch zwei scores setzen, um die Legende vom Stück zu trennen.
Zu den Abständen: Man kann im paper-Block eine ganze Reihe von Einstellungen vornehmen. Du nutzt allerdings noch version 2.12.3 und da ich auf der neuesten stable (2.14.2 mit grundlegend geändertem Abstands-Verfahren) bin, habe ich Dir da keine Vorschläge gemacht (außer: mach das upgrade). Stattdessen habe ich eine Definition von Nicolas Sceaux für
\vspace eingefügt, nicht nur um die Abstände der Scores zu regeln, sondern auch, weil ich sie für das Einregeln der Linien im markup brauchte.(In 2.14.2 ist sie "eingebaut")
Vielleicht bin ich auf der völlig falschen Fährte und es gibt eine viel einfachere Möglichkeit, einen Drum-Key zu erstellen.
Ansonsten fällt mir nur noch das Verfahren aus
NR 2.5.1 (suche nach
drum-style) ein.
Aber hier mein Code:
\version "2.12.3"
\header {
title = "Drum-Übung mit Drum-Key"
}
\paper {
ragged-right = ##f
}
#(define-markup-command (vspace layout props amount) (number?)
"This produces a invisible object taking vertical space."
(let ((amount (* amount 3.0)))
(if (> amount 0)
(ly:make-stencil "" (cons -1 1) (cons 0 amount))
(ly:make-stencil "" (cons -1 1) (cons amount amount)))))
#(define-markup-command (center-column-h layout props args) (markup-list?)
(define (general-column align-dir baseline mols)
(let* ((aligned-mols (map (lambda (x) (ly:stencil-aligned-to x X align-dir)) mols)))
(stack-lines -1 0.0 baseline aligned-mols)))
(ly:stencil-translate-axis (general-column CENTER 3 (interpret-markup-list layout props args)) 0.65 X))
one = \drummode {
\override DrumVoice.TextScript #'padding = #-1
\override DrumVoice.TextScript #'staff-padding = #'()
\override DrumVoice.TextScript #'outside-staff-priority = ##f
bd_\markup { \center-column-h { \vspace #0.9 \draw-line #'(0 . 2) "Bass Drum" } }
s
tommh_\markup { \center-column-h { \vspace #0.55 \draw-line #'(0 . 4) "High Tom" } }
s
tomfh_\markup { \center-column-h { \vspace #0.9 \draw-line #'(0 . 2.5) "Low Tom" } }
s
hh_\markup { \center-column-h { \vspace #0.2 \draw-line #'(0 . 5) "Hi-Hat (closed)" } }
s
cymr_\markup { \center-column-h { \vspace #0.2 \draw-line #'(0 . 5) "Ride Cymbal" } }
s
}
two = \drummode {
\override Script #'direction = #UP
\override DrumVoice.TextScript #'padding = #0
\override DrumVoice.TextScript #'staff-padding = #'()
\override DrumVoice.TextScript #'outside-staff-priority = ##f
s
sn_\markup { \center-column-h { \vspace #0.2 \draw-line #'(0 . 7.9) "Snare Drum" } }
s
tomml_\markup { \center-column-h { \vspace #0.5 \draw-line #'(0 . 7) "Mid Tom" } }
s
hhp_\markup { \center-column-h { \vspace #1.2 \draw-line #'(0 . 5) "Hi-Hat (w/foot)" } }
s
hho_\markup { \center-column-h { \draw-line #'(0 . 8.6) "Hi-Hat (open)" } }
s
cymc_\markup { \center-column-h { \draw-line #'(0 . 8.6) "Crash Cymbal" } }
}
drh = \drummode {
cymc4 hh8 hh hh hh hh hh \repeat unfold 2 { hho8 hh hh hh hh hh hh hh }
tommh tommh tomml tomml tomfh tomfh cymc4 \bar ":|"
}
drl = \drummode {
\repeat unfold 3 { bd4 sn bd sn8 bd }
}
\markup \vspace #2
\score {
<< \new DrumStaff \with {
\remove Bar_engraver
\remove Time_signature_engraver
\override Stem #'transparent = ##t
}
<<
\new DrumVoice { \one }
\new DrumVoice { \two }
>>
>>
\layout {
indent = 0
%line-width = 160
}
}
\markup \vspace #5
\score {
<<
\new DrumStaff
<<
\set Staff.instrumentName = #"drums"
\new DrumVoice { \stemUp \drh }
\new DrumVoice { \stemDown \drl }
>>
>>
}
Gruß,
Harm
P.S. Das Bild und das sonstige Testen habe ich mit 2.14.2 gemacht, ich hoffe da gibts keine Überraschungen auf 2.12.3.