Practical Computer Science Faculty of Technology Bielefeld University
Education

Algorithmen und Datenstrukturen - Eine Formelsprache für Musik

Mit den Haskell-Modulen in diesem Verzeichnis ist es möglich, die aus der Vorlesung bekannten Musikformeln in MIDI-Dateien umzuwandeln. Diese können dann auf den meisten PCs abgespielt werden.

Voraussetzungen

Die Midi-Umwandlung basiert auf dem Haskore Computer Music System. Dieses ist bereits im ad.musik.2012.tar.gz Archiv integriert.

Dateien

Readme       Informationen über das Haskore-System
Docs         <Haskore - Verzeichnis>
Src          <Haskore - Verzeichnis>
ghc_add      <Haskore - Verzeichnis>

MIL.lhs      Glue-Code (wahrscheinlich nicht Teil von Haskore)
MPlay.lhs    Glue-Code (wahrscheinlich nicht Teil von Haskore)


MusikHelper.lhs     grundlegende Definitionen aus der Vorlesung
Musik.lhs           Die Datentypen Musik und Instrument aus der Vorlesung
MusikMain.lhs       Anbindung an das Haskore-System

....                einige Haskell-Module des Haskore-Systems

Test

Archiv ad.musik.2012.tar.gz entpacken (z.B. via Kommando "tar xzvf ad.musik.2012.tar.gz") und in das erzeugte Verzeichnis wechseln.

hugs MusikMain.lhs
MusikMain> genMidi bruderJakob2 "bj.mid"

In einem weiteren Terminal

$ timidity -Os bj.mid

(-Os wählt die Ausgabe über das ALSA-System - weitere Möglichkeiten sind in der man-page enthalten)

Zum Testen der Midi-Wiedergabe ist im Archiv auch bruder.mid als schon erzeugte Midi-Datei enthalten.

Eigene Musik komponieren

Die Datei MusikMain.lhs kann als Ausgangspunkte verwendet werden. MusikHelper.lhs enthält einige Beispiele zum Programmieren mit den in der Vorlesung definierten Datentypen.

Linux

Falls die Abhängigkeiten auf einem Linux-System noch nicht installiert sind, kann man dies meist über den Paketmanager erledigen. Zum Beispiel unter einem Debian-artigen System via:

# apt-get install hugs timidity

Auf relativ aktuellen Systemen läuft meist der Sound-Server PulseAudio. Zur Kontrolle der Pegel und Einstellung der Wiedergabe empfiehlt sich PulseAudio Volume Control (pavucontrol).

Midi

Timidity ist eine Möglichkeit die Midi-Dateien abzuspielen. Weitere Möglichkeiten sind Midi-Hardware, Winamp oder ähnliches.

Valid HTML 4.01 Strict Valid CSS! $Date: 2013/03/11 15:57:14 $