Hi,
ich habe ebenfalls nach einer Möglichkeit gesucht, mit Python Code für Lilypond zu erzeugen, und bin daher auf diesen alten Thread gestoßen.
1)
Nach einigem Probieren funktioniert bei mir der folgende Code, der in "test.py" eine Datei "test.ly" erzeugt, die von Lilypond wieder eingelesen wird. (Den Code führe ich in Frescobaldi aus.)
Lilyponds Parser wartet dabei auf die Ausführung des Pythoncodes, was man auch sieht, wenn man dem Systemaufruf kein Argument mitgibt. Also: "(system "C:\\Python34\\python.exe")
Dann nämlich öffnet sich die Pythonkonsole und erst wenn die wieder geschlossen wird, führt Lilypond weiteren Code aus.
\version "2.18.2"
pyMx =
#(define-void-function (parser location)()
(system "C:\\Python34\\python.exe C:\\Users\\Homer\\Desktop\\Lilypond\\Droste\\test.py")
)
\pyMx
\include "test.ly"
Mit "C:\\Python34\\python.exe" kann ich auch meine eigene Pythoninstallation ansprechen. Gebe ich nur "python" an, wird die Pythoninstallation von Lilypond oder Frescobaldi geöffnet. (Version 2.4.5 - ziemlich veraltet)
2)
Abjad habe ich ebenfalls ausprobiert, es läuft bei mir allerdings nicht. (Lilypond 2.18.2, Python 2.7.11 oder 3.4 oder 3.5, Abjad 2.16, win7 und win10)
Abjad läuft, nachdem ich es gerade nochmal probiert habe, nun plötzlich doch. Leider weiß ich nicht mehr, was ich alles geändert habe.
Der Befehl "systemtools.open_last_ly()" muss bei mir allerdings lauten: "systemtools.IOManager.open_last_ly()" und erzeugt weiterhin einen Fehler:
"Der Befehl "edit" ist entweder falsch geschrieben oder
konnte nicht gefunden werden."
Grüße,
Xaver