c't 2/2023
S. 156
Wissen
Musik programmieren
Bild: Thorsten Hübner

Programmiert komponiert

Wie man mit Python und music21 in Jupyter Musik komponiert

Musik hat eine Menge Regelmäßigkeiten: Terzen- und Quinten-Sprünge, Dur-Moll-Symmetrien und transponierte Tonarten. Die Bibliothek music21 überträgt all das in die Python-Welt, sodass man mit Programmcode Musikstücke komponieren kann.

Von Jaqueline Fette und Pina Merkert

Musik erzählt Emotionen: Die Schwere der Moll-Akkorde, die Leichtigkeit von Dur; das Spiel mit dem Wechsel, mit spannungsbildenden Disharmonien und Kadenzen, die zurück in den Grundakkord der Tonart führen. Menschen sind seit Jahrhunderten fasziniert von dieser Sprache ohne Worte. Die Musiktheorie fasst die Gefühle in ein System, macht sie ein Stück weit berechenbar.

An dieser Stelle kommt der Rechner ins Spiel: Für so ziemlich alles, was berechenbar ist, gibt es ein Python-Modul und für Musik macht music21 einen sehr guten Job. music21 modelliert Noten, Akkorde, Harmonien, Sequenzen und so weiter als Objekte, die sich mit Funktionen modifizieren lassen. Das ist auch für analog komponierende Musiker interessant, da music21 automatisch mit der Methode show() die Programme MuseScore oder LilyPond einspannt, um Melodien in korrekter Notation auszugeben. Das klappt direkt im Jupyter-Notebook, sodass man im Browser sehr flott mit Musik experimentieren kann. Aber es wird noch besser: show('midi') aktiviert die MIDI-Schnittstelle, sodass der Rechner die Komposition ebenfalls direkt in Jupyter mit Soundfonts vorspielt. Dazu gibt es Analysetools, Importer für diverse Notationsformate und unproblematischen Zugriff auf die Werke klassischer Komponisten.

Kommentare lesen (1 Beitrag)