Möglicherweise gibt es diese Funktion schon irgendwo. Ich habe eine Scheme-Funktion geschrieben, bin aber noch nicht ganz zufrieden, das muss doch eleganter gehen?
\version "2.25.7"
\language "deutsch"
highlow =
#(define-music-function (mus)(ly:music?)
(let*
(
(alle-pitches
(let loop ((mus mus) (pitches '()))
(let ((p (ly:music-property mus 'pitch)))
(if (ly:pitch? p)
(cons p pitches)
(let ((elt (ly:music-property mus 'element)))
(fold loop
(if (ly:music? elt)
(loop elt pitches)
pitches)
(ly:music-property mus 'elements)))))))
(alle-sortiert (sort alle-pitches ly:pitch<?))
(tief (car alle-sortiert))
(hoch (car (reverse alle-sortiert)))
)
(make-music
'SequentialMusic
'elements
(list
(make-music
'NoteEvent
'duration
(ly:make-duration 2)
'pitch
tief)
(make-music
'NoteEvent
'pitch
hoch
'duration
(ly:make-duration 2))))
))
mus = { c, d' e' f' a d, }
{
\clef bass
\highlow \mus
}
Hallo
suchst du den Ambitus, bzw den ambitus_engraver?
Gruß
Rudi
Danke für die Antwort. Genau wegen dieses Ambitus-Engravers brauche ich diese Funktion, weil bei einem Auszug aus der Musik (https://lilypondforum.de/index.php/topic,1219.msg6436.html) der Ambitus nicht korrekt angezeigt wird (klarerweise). Den Ambitus händisch umsetzen (https://lilypondforum.de/index.php/topic,1237.msg6466.html) ist auch mühsam auf Dauer.