Moin,
nachdem ich nun schön meine Partituren incl. Einzelstimmen über script als pdf exportieren kann, möchte ich noch den Export der Partitur als midi automatisiert einbinden.
Ich finde in dem Python-Handbuch hierüber gar nix. geht das nicht (Capella10)?
Antworten
midi-export.mp4
Wirf dein Anliegen.mid
Vielen Dank! Wie das händisch geht ist mir klar.
Ich habe in meinem Post gefragt, wie das über ein Skript zu lösen ist
hier findest Du all Skripte
https://wiki.sins942.ch/index.php?title=Skript_Handbuch
Danke, Wolf Dieter. Die Seite ist mir bekannt.
Evtl. kennst Du Dich ja besser aus als ich und kannst mir helfen, welches Skript mir bei meinem Problem weiterhilft?
Es könnte vielleicht auf folgende Art funktionieren.
Mit Capella kommt ein Skript "CapToMusic", mit dem die Capella-Datei in eine MusicXML-Datei konvertiert wird.
Hier GitHub - ianberman/MusicXML-to-MIDI-Converter: convert musicxml fil...
findet man ein Python-Skript, mit dem die MusicXML-Datei in eine Midi-Datei umgewandelt wird.
Ein bißchen "von hinten durch die Brust ins Knie". Besser und einfacher wäre es, wenn ein Befehl "SaveAsMidi" über die Python-Schnittstelle bereitgestellt würde.
Na, das ist enttäuschend. Vielen Dank! Ich gehe davon aus, dass Du weißt, wovon Du sprichst.
Das ist wirklich schade dass/wenn dieser Export nicht vorgesehen ist in der API...
Ich könnte mir vorstellen, dass das für die Entwickler keine große Sache wäre, ein entsprechendes Objekt mit entsprechenden Methoden bereitzustellen.
Ich habe ein bißchen im Internet gesucht und bin auf "Music21" gestoßen.
Music21 kann Capella-Dateien lesen und als Midi-Dateien ausgegeben.
Es gibt nur zwei Probleme:
1. Der Konverter beim Einlesen ist in einer Beta-Version und kann nicht alles verarbeiten. music21.capella.fromCapellaXML — music21 Documentation
2. Music21 läuft unter Python 3.
chapeau!
Bei mir gibts das Problem, dass ich 2 python-Versionen hier hab, eine 27x (ich geh davon aus, dass capella die braucht) und 31x, die braucht Music21.
Nach dem installieren von music21 bekomme ich (wohl daher) in Capella den fehler ImportError: No module named music21 (If the system cannot find music21 then you may have more than one version of Python on your system. Try uninstalling all of them along with music21 and then restarting from scratch).
(Visual studio code kann den Import durchführen, wenn ich dort mit python 31x arbeite)
Ich denke die unterschiedlichen python-Versionen sind schuld. Wie machst Du das? Kommt denn Capella auch klar, wenn nur 31x installiert ist?
Ich habe das Skript von Visual Studio Code unter Python 3.14 laufen lassen. Von Capella aus wird es wohl nicht gehen, weil Capella noch mit Python 2.7 läuft. (Dieses Jahr war Python 2.7 25 Jahre tot.)
Vermutlich ist Music21 auch nicht die richtige Lösung. Es ist geschrieben für Musikforschung und da interessiert nicht, welches Instrument spielt. Daher wird diese Information nicht übertragen. Auch eine Transposition wird wohl nicht übertragen.
Man müsste einen Konverter von capx zu mid schreiben. Die Programmiersprache müsste dann nicht Python sein. Das sollte nicht so schwer sein. Aber etwas zu programmieren für ein Plugin, das im eigentlichen Programm enthalten ist, sieht etwas lächerlich aus, denn die Schnittstelle bereitzustellen ist sicherlich weniger Aufwand.
Capella auf Python 3 umzustellen, wäre vermutlich kein großes Problem, aber viele Plugins könnten dann nicht mehr laufen und das gäbe einen Shitstorm.
Das Einfachste ist doch der Export von Capella als Midi
-
1
-
2
von 2 Weiter