Ich benutze LilyPond, um Übungswerte und Etüden zu erstellen. Ich habe herausgefunden, wie man Noteneingabe in Moveable Do Solfege Notation erlaubt und eine Vorlage (siehe unten), die die Anzeige der Solfege Symbole als Liedtext unter den Noten unterstützt. Zur Zeit muss ich den Text manuell aus der Notation plus Markup extrahieren, die die Musik erzeugt. Ich konnte das mit einigen Python- und Vim-Code teilweise automatisieren (hier nicht gezeigt), aber es ist immer noch etwas unbefriedigend.LilyPond: Extrahieren von Tonhöhenamen aus Musik
Es scheint mir, dass die beste Lösung darin besteht, den integrierten Scheme-Interpreter von LilyPond zu verwenden, um die Tonhöhen-Namen zu extrahieren, während die Datei verarbeitet wird. Ich habe einige Versuche gemacht, map mit ly zu verwenden: note-pitchname, aber bisher kein Erfolg. Wahrscheinlich, weil ich weiß, dass es sich um Scheme handelt, vor allem, wenn es in LilyPond-Skripten verwendet wird.
% Moveable Do as lyrics example
% define some solfege pitchnames
% (in practice, the full set goes into "english.ly")
pitchnames = #`(
(do . ,(ly:make-pitch -1 0 NATURAL))
(re . ,(ly:make-pitch -1 1 NATURAL))
(mi . ,(ly:make-pitch -1 2 NATURAL))
)
#(ly:parser-set-note-names parser pitchnames)
% compose as though in C major
mynotes = \relative do' {\key do \major do2 re4(mi4) }
% transpose to desired key
melody = \transpose do mi { \mynotes }
% I WANT TO AUTOMATICALLY CREATE THE
% THE PITCHNAMES IN THIS BLOCK
% FROM THE CONTENTS OF \mynotes
solfa = \lyricmode {
\set ignoreMelismata = ##t % one syllable per note
do re mi
\unset ignoreMelismata % allow normal placement of other lyrics
}
% Produce score with solfege names as lyrics
\score {
<<
\new Voice = "myVoice" {
\melody
}
\new Lyrics \lyricsto "myVoice" \solfa
>>
}
\version "2.12.3"