Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: BilleBille am Freitag, 21. Januar 2011, 19:08
-
Hallo,
ich habe durch Zufall entdeckt, dass die neue Lilypond Version 2.13.46 \woodwind-Diagram implementiert.
Allerdings nur für folgende Instrumente:
Piccolo
Flöte
Oboe
Clarinette
BassClarinette
Saxophon
Fagott
Kontrafagott
Leider finde ich kein passendes Diagramm für Blockflöte.
Gibt es dafür einen Trick?
-
Hallo BilleBille, und wilkommen ins Forum!
Es gibt ein Beispiel für Blockflöte, allerdings nur Fingersätze und kein Diagramm:
http://kainhofer.com/~lilypond/Documentation/notation/common-notation-for-wind-instruments.de.html
(ganz unten)
Und diesen Thread könnte auch nutzlich sein:
http://www.mail-archive.com/lilypond-user@gnu.org/msg34610.html
Viel Glück!
kil
-
Hallo Kilgore,
vielen Dank für deine Antwort.
Diese Stellen hatte ich auch schon gefunden. Bei meiner Suche bin ich dann aber auf die Holzbläser Diagramme der Entwicklerversion gestoßen und fand sie so toll. Ich fände es schade, wenn außgerechnet für Blockflöten keine Diagramme verfügbar wären. Ich dachte ich hab eventuell etwas falsch verstanden und Blockflötendiagramme könnte man mit einem Trick z.B auch mit 'Flute' erstellen.
Gruß,
billebille
-
Hallo BilleBille,
Nicht zu schnell aufgeben! Vielleicht geht es mit selber Basteln:
\version "2.12.3"
finger = \markup {
\draw-circle #.75 #.2 ##f
\hspace #1
\center-column {
\line { \draw-circle #.75 #.2 ##t }
\line { \draw-circle #.75 #.2 ##t }
\line { \draw-circle #.75 #.2 ##t }
\line { \draw-circle #.75 #.2 ##f }
\line { \draw-circle #.75 #.2 ##f }
\line { \draw-circle #.6 #.2 ##f \draw-circle #.4 #.2 ##f }
\line { \draw-circle #.6 #.2 ##f \draw-circle #.4 #.2 ##f }
} }
\relative c' {
c1^\finger
}
Für halb-geschlossen muss man ein bisschen weiter basteln, aber erstmal kann man damit relativ leicht die Fingersätze eingeben. ##f für offen und ##t für zu.
Grüße
kil
-
Hallo Kilgore,
vielen tausend Dank! An so etwas hatte ich anfangs gedacht, hab mich dann aber nicht so richtig drangetraut.
Die halb offenen Löcher bekomme ich dann hoffentlich auch noch hin.
Gruß,
BilleBille
-
Wenn ich mich bei einfachen Zeichen nicht traue selbst zu malen, greife ich zur Zeichentabelle:
\version "2.12.3"
finger = \markup {
\magnify #1 ○
\hspace #1
\center-column {
\line { \magnify #1 ● }
\line { \magnify #1 ● }
\line { \magnify #1 ● }
\line { \magnify #1 ◐ }
\line { \magnify #1 ○ }
\line { \magnify #.75 ○ \magnify #.5 ○ }
\line { \magnify #.75 ○ \magnify #.5 ● }
} }
\relative c' {
\override TextScript #'baseline-skip = #2
c1^\finger
}
so ist es auch einfach!
-
Hallo Kilgore,
vielen Dank nochmal. Das wird ja immer einfacher. Ich hab inzwischen noch einen Rahmen drumherum gebastelt und eine Trennungslinie zwischen linker und rechter Hand. Dann hab ich versucht das Ganze über der Note mit \center-column zu zentriert (im Beispiel auskommentiert). Leider verrutscht das Loch für den Daumen dann über die Löcher für die Finger anstelle daneben zu bleiben. Hast Du eine Idee was da falsch ist? Außerdem bekomme ich das Padding am unteren Rand der Box nicht hin.
finger = \markup {
% \center-column {
\magnify #1 ○
\hspace #2
\box { \pad-to-box #' (0 . 0) #'(0 . 2)
\center-column {
\line { \magnify #1 ● }
\line { \magnify #1 ● }
\line { \magnify #1 ● }
\line { \override #'(thickness . 3) \draw-line #'(-3 . 0)}
\line { \magnify #1 ◐ }
\line { \magnify #1 ○ }
\line { \magnify #.75 ○ \magnify #.5 ○ }
\line { \magnify #.75 ○ \magnify #.5 ● }
}
}
% }
}
\relative c' {
% \override TextScript #'baseline-skip = #2
\textLengthOn
c1^\finger c4^\finger c4^\finger c4^\finger c4^\finger c1^\finger
}
Was macht eigendlich
\override TextScript #'baseline-skip = #2
das du verwendet hast?
Übrigens braucht dieses kleine Skript 15 Sekunden zum Übersetzen. Das kommt mir sehr lange vor. Kann das an den Zeichen liegen? Ich glaube deine erste Variante war schneller. Vielleicht hat aber auch mein Rechner im Moment einen Hau.
Gruß,
BilleBille
-
Also die Daumenloch krieg ich auch nicht einfach mit in die Kiste...verstehe auch nicht warum. Aber hier ist doch ne möglichkeit mit hspace:
\version "2.12.3"
finger = \markup {
% \center-column {
\hspace #1
\box { \pad-to-box #' (0 . 0) #'(0 . 2)
\center-column {
\line { \magnify #1 ○ \magnify #1 ● }
\line { \hspace #2 \magnify #1 ● }
\line { \hspace #2 \magnify #1 ● }
\line { \override #'(thickness . 3) \draw-line #'(-3 . 0)}
\line { \hspace #2 \magnify #1 ◐ }
\line { \hspace #2 \magnify #1 ○ }
\line { \hspace #2 \magnify #.75 ○ \magnify #.5 ○ }
\line { \hspace #2 \magnify #.75 ○ \magnify #.5 ● }
}
}
% }
}
\relative c' {
\override TextScript #'baseline-skip = #2
\textLengthOn
c1^\finger c4^\finger c4^\finger c4^\finger c4^\finger c1^\finger
}
Aber ausserhald der Kiste sieht auch nicht schlecht aus:
\version "2.12.3"
finger = \markup {
% \center-column {
\magnify #1 ○
\hspace #1
\box { \pad-to-box #' (0 . 0) #'(0 . 2)
\center-column {
\line { \magnify #1 ● }
\line { \magnify #1 ● }
\line { \magnify #1 ● }
\line { \override #'(thickness . 3) \draw-line #'(-3 . 0)}
\line { \magnify #1 ◐ }
\line { \magnify #1 ○ }
\line { \magnify #.75 ○ \magnify #.5 ○ }
\line { \magnify #.75 ○ \magnify #.5 ● }
}
}
% }
}
\relative c' {
\override TextScript #'baseline-skip = #2
\textLengthOn
c1^\finger c4^\finger c4^\finger c4^\finger c4^\finger c1^\finger
}
Das baseline-skip hat übrigens mit dem Abstand zwischen den Zeilen zu tun. Du kannst mal die Zahl ändern, dann siehst du was ich meine.
Was meinst du mit padding am unteren Rand? Welches denn?
Grüße
kil
-
Dann hab ich versucht das Ganze über der Note mit \center-column zu zentriert
bitte schau mal in den snippets nach: http://lsr.dsi.unimi.it/LSR/Search?q=textScriptCenterOnNote (http://lsr.dsi.unimi.it/LSR/Search?q=textScriptCenterOnNote) - vielleicht wird das mal standardmässig in Lilypond eingebaut… - im moment leider noch nicht!
dann zu \pad-to-box: hier müsste wohl die 1. zahl im zweiten teil negativ sein:
\pad-to-box #' (0 . 0) #'(-4 . 4)
die verhältnisse (oben/unten) wirken etwas irrational!
-
ich hab da mal was zusammengestellt - wobei ich als nicht-flötist nicht weiss, ob dies den wünschen entspricht!
-
tml (tut mir leid) - habe vergessen den code anzuhängen - hier ist er:
textScriptCenterOnNote = \override TextScript #'X-offset =
#(lambda (grob)
(let* ((paper-col (ly:grob-parent grob X))
(elts (ly:grob-object paper-col 'elements))
(rhythmic-head grob))
(for-each
(lambda (idx)
(let ((elt (ly:grob-array-ref elts idx)))
(if (grob::has-interface elt
'rhythmic-grob-interface)
(set! rhythmic-head elt))))
(reverse (iota (ly:grob-array-length elts))))
(+
(ly:self-alignment-interface::x-aligned-on-self grob)
(interval-center
(ly:grob-robust-relative-extent rhythmic-head rhythmic-head X)))))
%%% eof ….ly ------------------------------------------------------------------------%%%
%%% \include "textScriptCenterOnNote.ly"
finger = \markup {
\override #'(line-width . 3.8 )
\rounded-box
\pad-around #.0
{
\override #'(baseline-skip . 1.8 )
\center-column {
\fill-line { \magnify #1 ○ \magnify #1 ● }
\fill-line { \null \magnify #1 ● }
\fill-line { \null \magnify #1 ● }
\fill-line { \with-color #(x11-color 'grey70) \general-align #Y #-3.2 \override #'(thickness . 3) \draw-line #'(-3 . 0)}
\fill-line { \null \magnify #1 ◐ }
\fill-line { \null \magnify #1 ○ }
\fill-line { \null \concat {\magnify #.75 ○ \magnify #.5 ○ }}
\fill-line { \null \concat {\magnify #.75 ○ \magnify #.5 ● }}
} } }
\relative c' {
\textLengthOn
\override TextScript #' self-alignment-X = #CENTER
\textScriptCenterOnNote
c1^\finger c4^\finger c4^\finger
c4^\finger c4^\finger c1^\finger
}
-
sieht suuuper aus! Respekt! :o