Zitat von: Rudi Guggt am Montag, 27. Mai 2024, 11:58Hallo,Im Anfängerunterricht auf dem Streichinstrument gibt es meistens erstmal eine eindeutige Zuordnung Ton zu Finger. Später, wenn verschiedene Lagen gelernt werden und Töne je nach enharmonischer Verwechslung und umgebenden Tönen verschieden gegriffen werden, wird das sehr schnell sehr komplex und uneindeutig, aber darum ging es ja oben nicht, wenn ich das richtig sehe.
ich glaube, dass hier ein Automatismus/Algorithmus nicht nur sehr komplex oder gar unmöglich wäre, sondern auch kontraproduktiv für das Erlernen des Instrumentes wäre. Am Anfang gibt sicher die Lehrkraft die Fingersätze vor, aber selbstständig die Finger sinnvoll zu setzen zu können ist auch Ziel der Übung...
Gruß
Rudi
\version "2.24.3"
pitchFingerList =
#`((,#{ c'' #} . 2)
(,#{ d'' #} . 3)
(,#{ e'' #} . 0)
(,#{ f'' #} . 1)
;; to be continued ...
)
%% NB does not work inside \relative !!
autoFingering =
#(define-music-function (music)(ly:music?)
(map-some-music
(lambda (m)
(and
(music-is-of-type? m 'note-event)
(let* ((pitch (ly:music-property m 'pitch))
(finger (assoc-get pitch pitchFingerList #f)))
(when finger
(set! (ly:music-property m 'articulations)
(cons
(make-music 'FingeringEvent 'digit finger)
(ly:music-deep-copy (ly:music-property m 'articulations))))))
m))
music))
\relative { c''4-2 d-3 f-1 e-0 }
\autoFingering
\relative { c''4 d f e }
ZitatHabe ich da etwas falsch verstanden?Eher ist die deutsche Übersetzung des manuals missverständlich (und generell veraltet).
ZitatA staff is considered empty when it contains only multi-measure rests, rests, skips, or a combination of these elements.Noten unsichtbar zu machen ist nicht hinreichend, denn dann existiert das note-event ja immer noch.
\version "2.24.1"
\language "deutsch"
silence =
#(define-music-function (arg) (ly:music?)
(map-some-music
(lambda (m)
(and (music-is-of-type? m 'rhythmic-event)
(music-clone (make-music 'SkipEvent m) 'articulations '())))
arg))
\layout {
\context {
\Staff \RemoveAllEmptyStaves
}
}
\score {
<<
\new Staff \relative c' {
c d e f g a h c c, d e f g a h c c, d e f g a h c c, d e f g a h c
c, d e f g a h c c, d e f g a h c c, d e f g a h c c, d e f g a h c
}
\silence
\new Staff \relative c {
\clef bass
c h a g f e d c c' h a g f e d c c' h a g f e d c c' h a g f e d c
c' h a g f e d c c' h a g f e d c c' h a g f e d c c' h a g f e d c
}
\new Staff \relative c {
\clef bass
r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1
}
>>
}
\version "2.24.1"
\language "deutsch"
\layout {
\context {
\Staff \RemoveAllEmptyStaves
}
}
\score {
<<
\new Staff \relative c' {
c d e f g a h c c, d e f g a h c c, d e f g a h c c, d e f g a h c
c, d e f g a h c c, d e f g a h c c, d e f g a h c c, d e f g a h c
}
\new Staff \relative c {
\clef bass \hideNotes
c h a g f e d c c' h a g f e d c c' h a g f e d c c' h a g f e d c
c' h a g f e d c c' h a g f e d c c' h a g f e d c c' h a g f e d c
}
\new Staff \relative c {
\clef bass \hideNotes
r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1
}
>>
}
\relative { c''4-2 d-3 f-1 e-0 }
\relative { c''4 d f e }
automatisiert generiert zu bekommen. Würde viel Arbeit beim Schreiben sparen. Vllt. hat das Problem ja schon mal jemand programmiert?tst =
#(define-music-function (parser location music) (ly:music?)
(music-map
(lambda (m) (if (music-is-of-type? m 'note-event) m))
music))
\tst { b-2 }
da die procedure die music-map über music laufen lässt, unspecified zurückgibt sobald kein note-event vorliegt.