Point-and-Click für Meta-Code

Begonnen von Kostja, Sonntag, 5. Januar 2020, 17:29

« vorheriges - nächstes »

Kostja

Hallo!

Ich schreibe meine Partituren mit Python-Skripten, die den Lilypond-Code generieren. Für größere Projekte wäre es toll, wenn die Point-und-Click-Funktion den Cursor nicht in die Lilypond-Datei sondern in den Python-Code setzt.

Mit dem Traceback in Python kann ich herausfinden welche Zeile in welcher Quell-Datei eine Note generiert hat und die Quelldatei kann ich per Kommandozeile in meinem Editor (SublimeText) aufrufen und dabei den Cursor an eine bestimmte Stelle setzten.

Jetzt müsste ich noch die Funktion von Lilypond tweaken, die den PDF-Reader (ich nutze Safari) dazu bringt, den Lilypond-Editor aufzurufen.
lilypond.org/doc/v2.18/Documentation/usage/point-and-click
Hier wird das wahrscheinlich erklärt, aber ich verstehe es leider nicht richtig. Kann mir jemand sagen, ob ich den lilypond-evoke-Editor manipulieren kann, wo der eigentlich ist, oder wie ich das Kommando ändern kann, das durch die Hyperlinks aufgerufen wird?

Das wäre eine riesige Bereicherung für meinen kompositorischen Workflow.
Ich freue mich über Antwort! Liebe Grüße!

Arnold

Hallo Kostja,

nur ein kleiner Hinweis:

In output-ps.scm wird das Attribut 'origin (vom 'cause des GROBs, also quasi vom Musik-Event) ausgelesen und ins (temporäre) Postscript als Parameter zur Funktion mark_URI exportiert.
Aus diesem Postscript wird dann das PDF erstellt.

In der Umgebungsvariable LYEDITOR könntest Du außerdem dein eigenes »Editor-Popup-Programm« angeben.
Das war bei mir in der Vergangenheit einmal ein kompiliertes Windows-C-Programm, welches alle anhand der Titelleiste der offenen Notepad-Editorfenster die geöffnete Datei durchsucht (dieses Notepad-Fenster in den Vordergrund bringt), per Tastatureingabensimulation in die Zeile springt, und anschließend noch entsprechend der Spalte die nötige Menge an Cursor-Rechts-Tastatureingaben simuliert.
In deinem Fall müßte solch ein Programm also das Traceback durchführen (Übersetzung der Lilypond-Quellcode-Adresse in deine Phyton-Quellcode-Adresse) und dann die Kommandozeile für SublimeText ausführen — oder deine Lilypond-Ausgabe aus Phyton kann gleich das origin-Attribut überschreiben (und point-and-click muß nur noch den SublimeText-Editor-Aufruf durchführen)

Arnold