Musik ist hier Programm! (1)

(Alternativer Titel: „Musik machen mit Embee“ bzw.  „Komponieren durch Programmieren“  bzw. „Hilfe! Mein Computer will Musiker werden!“ bzw. „Harmonielehre am Computer“ bzw. „Vom Personal Computer zum Personal Composer“.  Sucht euch einen aus.)

Dies ist der Beginn einer Serie, in der ich mit euch Musik machen will.  Beziehungsweise: Eigentlich will ich, dass mein (bzw. euer) Computer die Musik macht — und wir bringen ihm bei, wie. Er soll lernen, was Töne, Tonleitern, Akkorde und Akkordverbindungen sind und er soll dieses Wissen nutzen um Musikstücke in Noten zu setzen, sie zu verändern, sie zu begleiten und — als Krönung — sie selbst zu komponieren.  Ob das mehr wird als Kakophonie, wird sich zeigen!

Bevor es losgeht, will ich ein paar Fragen beantworten (die mir natürlich niemand gestellt, sondern die ich mir selbst ausgedacht habe):

Für wen ist das hier gedacht?

Die Reihe richtet sich an alle, die sich für Musik und für Programmierung interessieren. Auf beiden Gebieten setze ich Grundkenntnisse voraus; weder soll das eine Einführung in die Musiktheorie noch ein Programmierkurs werden.  Ich gehe aber kleinschrittig und hoffentlich so anschaulich vor, dass es Spaß macht, mitzulesen, mitzudenken, die Musikbeispiele anzuhören, die Notenbeispiele anzusehen, v. a. aber die Programme selbst auszuprobieren und mit ihnen zu spielen.  Links zu ein- und weiterführenden Informationen versuche ich, wo immer möglich, einzubinden.

Warum sollte man sowas überhaupt wollen, ein Computerprogramm das Musik macht?

Mir persönlich würde als Antwort auf diese Frage ja schon ausreichen: Aus Neugierde! Um zu sehen, ob es möglich ist!  Um etwas zu lernen über Musik und über Programmierung!

Aber viele Leute fühlen sich von der Idee, mit dem Computer irgendeine Form von Kunst zu machen, richtiggehend abgestoßen.  Das äußert sich dann ungefähr so:

„Oh nein, was soll den der Mist? Ist Musik (und eigentlich alle Kunst) nicht in erster Linie Intuition, Emotion, Kreativität — und damit einem Computer gar nicht zugänglich?  Muss man denn alles Schöne durch Analyse, durch Automatisierung, durch Maschinen seines Zaubers berauben? Ich fand schon Gedichtinterpretationen in der Schule immer irgendwie pervers…“

Ich halte die Sache für etwas komplexer — und dadurch für viel spannender.  Aber den langen Beitrag, den ich dazu in der Schublade habe, lasse ich erstmal liegen.  Vielleicht können wir das ja in einiger Zeit diskutieren, wenn wir sehen, was wir überhaupt zustande bekommen.

Wird das etwas für die Schule?

Wohl eher nicht.  Die Programme, die wir entwickeln, werden nicht besonders umfangreich, aber doch anspruchsvoll werden. Für meine Schüler wäre das Niveau definitiv zu hoch; sie haben leider viel zu wenig Informatikunterricht.  Aber wer weiß? Vielleicht kann man mit Anpassungen in anderen Bundesländern, wo mehr Informatik möglich ist, durchaus was machen…  Fächerübergreifend… Ein Traum…

Welche Programmiersprache und Tools verwendest du?

Programmiert wird in Python.  Output unserer Programme werden Dateien sein, die die freie Notensatzsoftware LilyPond dann für uns in wunderschöne Noten übersetzt.  Weil Musik aber in erster Linie zum Hören da ist, erzeugen wir auch MIDI-Dateien (am Anfang lassen wir das einfach LilyPond für uns machen; später brauchen wir ein bisschen mehr Freiheit und machen es selbst).

Warum Python?

Python ist toll! Python-Code sieht aus wie Pseudocode und ist deshalb selbst für Leute nachvollziehbar, die selbst nicht in Python programmieren.  Python ist einfach, wenn etwas Einfaches ausgedrückt werden soll (im Gegensatz zu, sagen wir, Java) und macht einem auch bei komplexeren Aufgaben das Leben nicht unnötig schwer.

Wichtig für mich in diesem Projekt ist v. a. auch, dass Python eine funktionalen Programmierstil unterstützt: Funktionen können Parameter oder auch Rückgabewert anderer Funktionen sein — und das macht beim Beschreiben musikalischer Zusammenhänge sehr viel Sinn.  Z.B. werden wir die Tonika der Es-Moll-Tonleiter (es, ges, b) als Verknüpfung dreier Funktionen (Tonika, Es, Moll) beschreiben können.  Das wird sehr elegant, glaubt mir.  Im Vergleich zu ausschließlich funktionalen Sprachen (Lisp, Haskell, ML, …) bleiben wir mit Python aber immer im für Normalsterbliche nachvollziehbaren Rahmen.

Übrigens werden wir Python 3 verwenden.  Es gibt keinen zwingenden Grund dafür und die Codebeispiele sollten größtenteils auch unter Python 2 funktionieren bzw. sich leicht anpassen lassen.  Für mich war dieses Projekt aber der Anlass, endlich zu Python 3 zu wechseln.

Warum LilyPond?

Weil man Musik für LilyPond in einem textbasierten Format beschreibt, das relativ leicht programmatisch zu erzeugen ist.  (Aber auch als Mensch finde ich LilyPond zur Noteneingabe super.)

Geht’s jetzt mal endlich los?

Jawoll. Aber in einem neuen Eintrag.  Viel Spaß! Ich freue mich sehr über Kommentare, Fragen, Vorschläge…

Advertisements

Ein Gedanke zu „Musik ist hier Programm! (1)

  1. Pingback: Musik ist hier Programm! (2) | Zurück in die Schule

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s