Kodierung von Musik

Werbung
Symbolische Kodierung
von Musik
Musikwissenschaftliches
Institut Hamburg
WS 2005/06
Klaus Frieler
Symbolische Kodierung von Musik
Inhalt
1.
2.
3.
4.
5.
Einführung
EsAC (Essener Assoziativ
Code)
Humdrum und **kern
MelodyCSV
Das MIDI-Dateiformat
Symbolische Kodierung von Musik
Einführung




Symbolisch bedeutet: Musik wird kodiert auf
Abstraktionsebene des Notentextes
Zentrale Elemente stets: Tonhöhen-, Dauern-,
und Metrische Information
Unterschiedlichste Formate mit verschiedenen
Schwerpunkten (Analytisch-, Grafisch-,
Klangorientiert)
Jedes Format hat seine Vor- und Nachteile
Symbolische Kodierung von Musik
Einführung

Auszug aus dem Inhaltsverzeichnis „Beyond MIDI“








MIDI (NotaMIDI, Expressive MIDI, MIDIPlus, Augmented MIDI)
Csound, Music Macro Langanuage, NeXT ScoreFile, Radio Baton Conductor
Score File
DARMS (Noteprocessor, A-R), Common Music Notation, MuTeX, MusicTeX,
MusiXTeX, Guido
Philip‘s Music Scribe, SCORE, LIME Tilia, Nightingale,
EsAC, Plaine and Easie Code,
Humdrum and **kern, MuseData
Hytime, SMDL, NIFF
Und dann noch




MusicXML, Finale prop.
MSCV I/II
Melisma‘s Notes
U.e.m
Symbolische Kodierung von Musik
Essener Assoziativ Code (EsAC)
Ende der 70er von Helmut Schaffrath in Essen zur
Kodierung von Volksmusik entwickelt.
Es gibt derzeit etwa 6000 Volkslieder im EsAC
Format. Link: http://www.esac-data.org
Feature:



1.
2.
3.
4.
5.
Nur monophon
Tonart, metrisch basiert
Phrasen sind mitkodiert
Leicht zu lernen und zu lesen
Flexible Metainformationen
Symbolische Kodierung von Musik
EsAC – Aufbau eines Datensatzes
KOLBERG (EsAC- Sammlung)
CUT[Titel]
REG[Region]
TRD[Quelle: Sammlung, Buch, Audio etc.]
KEY[K0025t 16 A 3/4 ] ----------------------------- Signaturzeile
MEL[5_.53__1__ -7_-5_-7_2_4__ ------------ Phrase einer Melodie
6__4__2_-7_ 1_.13_+1_5__ //]
FKT[Funktion- Tanz, Wiegenlied, Liebeslieb, Ballade etc.]
BEM[Bemerkungen]
TXT[Text]
Symbolische Kodierung von Musik
EsAC – Signaturzeile
KEY[K0025t 16 A 3/4]
 „K0025t“: Signatur (EsAC-DB eindeutig!)
 „16“: Kleinste rhythmische Einheit (16tel)
 „A“: Tonart. (Nur Dur)
 „3/4“: Metrum („Frei“ auch möglich, sowie
Taktwechsel)
Symbolische Kodierung von Musik
EsAC – Kodierung von Melodien
MEL[5_.53__1__ -7_-5_-7_2_4__
6__4__2_-7_ 1_.13_+1_5__ //]

Tonhöhe:




Dauern



Tonhöhen werden als Stufe der Tonart angeben; Anhängen von „b“‘s
zur Erniedrigung, Anhängen von „#“‘s zu Erhöhung.
Voranstellen von „+“ und „-“ gibt höhere oder tiefere Oktaven an.
Übergebundene Noten werden durch das ‚^‘-Zeichen dargestellt,
Pausen durch 0
Eine einzelne Ziffer ist eine kleinste Einheit lang
Jeder Unterstrich verlängert die Dauer auf das Doppelte, jeder Punkte
um die Hälfte (oder wie in CMN?)
Form

Takte sind durch Leerzeichen, Phrasen durch Zeilenwechsel getrennt,
Ende der Melodie indiziert durch „//]“
Symbolische Kodierung von Musik
Humdrum und **kern






Ende der 80er von David Huron entwickelt.
Humdrum Syntax und Humdrum Toolkit
Alles dazu hier: http://dactyl.som.ohiostate.edu/Humdrum/
Menschenlesbare ASCII-Dateien.
Toolkit basiert auf Awk und Standard Unixtools
Toolkit sehr flexibel aber erfordert einiges an
Einarbeitungszeit, da sehr ‚Unixisch‘ im Ansatz
und nur auf der Kommandozeile (Shell)
Symbolische Kodierung von Musik
Humdrum und **kern



Zeilen repräsentieren den Fluss der Zeit.
In Tabulator-getrennte Spalten (Spines) sind
gleichzeitige Ereignisse (evtl. leer.)
Es gibt:
1.
2.
3.


Kommentarzeilen (inkl. Metainformationen)
Interpretationszeilen
Datenzeilen
Eine Interpretationen gibt die Bedeutung der
folgenden Datenzeilen in dieser Spalte an.
**kern Interpretation zur Kodierung von Musik
Symbolische Kodierung von Musik
**kern - Beispiel
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
!!!OTL: Well Sold the Cow
**kern
*clefG2
*k[b-e-a-]
*B-:
*M6/8
*MM120
{8b=1
4.b4f
.
=2
4.a4g
8f
*-
--------------------------------------------------------------------------------------------
Titel
**kern Interpretation
Violinschlüssel
Vorzeichen(3b‘s)
Tonart: Bb-Dur
6/8-Takt
Tempo 120bpm
Achtelnote Bb,Phrasenbeginn
Hier beginnt Takt 1
Punktierte Viertel Bb
Viertel F
Nichts (Nulltoken)
Takt 2 (etc.etc.)
-------- Ende des Spines
Symbolische Kodierung von Musik
Die MusicCSV 1 und 2 Formate




Entwickelt 2003-2005 von Frieler&Müllensiefen
Basiert auf dem CSV-Format (Comma-Separated
Values), lesbar mit Excel und SPSS und anderen
Standardanwendungen (und unseren eigenen…)
Konvertierung zu/von EsAC, MIDI, Melisma
Features:
1.
2.
3.
4.
Monophon (noch)
Flexibel erweiterbar
Explizite Kodierung von Onsets
Einfach
Symbolische Kodierung von Musik
MusicCSV 2 - Beispiel
#name=Das letzte Stuendlein
#esacid=A0659A
#fileid={97779DDE-7817-4327-A969-2B8C14A933BC}
#signature=4/2
#division=480
#timeunit=s
#separator=semicolon
#floatformat=comma
#polyphonic=false
##This is not a stupid commentary
onset;onsetics;bar;beat;ticks;pitch;durs;durtic;dur16;
0,0000;
0;1;1;0;65;2,0000;960;4;
2,0000; 960;1;3;0;60;1,0000;480;2;
3,0000;1440;1;4;0;62;1,0000;480;2;
4,0000;1920;2;1;0;64;1,0000;480;2;
5,0000;2400;2;2;0;65;1,0000;480;2;
6,0000;2880;2;3;0;67;1,0000;480;2;
7,0000;3360;2;4;0;69;1,0000;480;2;
Symbolische Kodierung von Musik
MIDI – Überblick

MIDI (= Musical Instrument Digital Interface) ist
vor allem 2 Dinge:






Protokoll zur Kommunikation von Rechner und
digitalen Musikinstrument.
Datenformat
Entwickelt von 1982-1988
Quasi-(Industrie)-Standard
Binäres Format (symbolisch aber nicht
textbasiert)
Ereignisbasiertes Protokoll
Symbolische Kodierung von Musik
Das Standard MIDI –Dateiformat (SMF 1.0)
Drei Typen: Formate 0, 1, 2
 Format 0: Eine Spur, monophon
 Format 1: Mehrere koordinierte Spuren,
polyphon
 Format 2: Mehrere unabhängige Spuren,
‚heteropolyphon‘


In der musikalischen Praxis meist Formate 0
und 1.
Symbolische Kodierung von Musik
Das Standard MIDI –Dateiformat (SMF 1.0)
Eine S-MIDI-Datei ist eine Folge von 8-bit
Bytes („Bytewurst“)
 Jede SMD hat zwei Typen von Chunks:
Einen Headerchunk und einen oder
mehrere Trackchunks
 Der Header hat 14 Bytes und folgenden
Aufbau:

<ChunkType><HeaderLength><Format><Ntrks><Division>
Symbolische Kodierung von Musik
SMF 1.0: Header Chunk Beispiel
4d 54 68 64 00 00 00 06 00 01 00 02 0C 00
<ChunkType>: MThd (ASCII)
 <HeaderLength>: 0x00000006 = 6 Bytes
 <Format>: 0x0001 = Format 1
 <Ntrks>: 0x0002 = 2 Tracks
 <Division>: 0x0C00 = 3072 ticks per beat

Symbolische Kodierung von Musik
SMF 1.0: Track Chunk
Track Chunks haben folgenden Aufbau:

<ChunkType><TrackLength><MTrk Events>
<ChunkType> immer MTrk,
<TrackLength> 4 Bytes (d.h. max. 4 MB pro Track)
Drei Sorten von Events:



1.
2.
3.
MIDI-Events (vor allem Notenereignisse)
Meta-Events (z.B. Taktwechsel, Trackname)
System-Exclusive Events (Spezielle Geräte- Kommunikation
herstellerabhängig!)
Symbolische Kodierung von Musik
SMF 1.0: Events

Eventformat:
<Delta Time><Statusbyte><Datenbytes>



Statusbytes haben stets das 8. Bit. (D.h. >127)
Oberes Nibble (4-bit) des Statusbytes identifiziert den
Befehl, unteres Nibble gibt den MIDI-Kanal an (16
mögliche Kanäle).
Datenbytes haben das 8. Bit nie gesetzt (d.h. Werte
<128)
Symbolische Kodierung von Musik
SMF 1.0: Typische MIDI-Nachricht
Symbolische Kodierung von Musik
SMF 1.0: Note Events

Note-Events Format:
<DeltaTime><NoteOn/Off+Channel><Pitch><Velocity>


<DeltaTime>: 1-4 Bytes, die die Ticks seit dem letzten Ereignis
angeben. Variable Länge um Speicher zu sparen. (7-bit Stream)
<NoteOnOff & Channel>:
1.
2.
3.
NoteOn (oberes Nibble) = 0x9
NoteOff (oberes Nibble) = 0x8
Channel (unteres Nibble) = 0x0 - 0xF
Symbolische Kodierung von Musik
SMF 1.0: Note Events

<Pitch>: 1 Byte, 7-bits genutzt, d.h. Werte 0127, 0x00-0x7F



Das mittlere C (‚c‘, C4) ist der Zahl 60 zugeordnet.
Dann nach oben und unten in (100 Cent)-Halbtönen.
Z.B. c‘‘ = 60 +12 = 72
Tiefster Ton: Subsubsubkontra C (=0), Höchster Ton:
g‘‘‘‘‘‘ (= 127)
<Velocity>: Anschlagstärke, (Werte 0-127,
0x00-0x7F), 1 = ppp, 64 = mp, 127 = fff, 0 =
Note off
Symbolische Kodierung von Musik
SMF 1.0: Track Chunk Beispiel
4d 54 72
00 00 00
00 90 43
8C 00 43
00 45 50
8C 00 45
usw...
6B MTrk
44 0x000044 = 44 Bytes
50 0
Ticks, NoteOn, Pitch
00 3072 Ticks, NoteOn, Pitch
0
00
67 (G4), Vel: 80
67 (G4), Vel: 0
Ticks, NoteOn, Pitch 69 (A4), Vel: 80
3072 Ticks, NoteOn, Pitch 69 (A4), Vel: 0
Symbolische Kodierung von Musik
Weiterführende Literatur






Andre Ruschkowski, „Elektronische Klänge und
musikalische Entdeckungen“, Reclam, Stuttgart, 1998
„Beyond MIDI“, E.Selfridge-Field (Hrg.); The MIT Press,
1997
Martin Supper, „Elektroakustische Musik und
Computermusik“, Wissenschaftliche Buchgesellschaft,
Darmstadt, 1997
Philipp Ackermann, „Computer und Musik“, Springer
Verlag, Wien, 1991
„Tutorial on MIDI and Music Synthesis“:
http://www.harmony-central.com/MIDI/Doc/tutorial.html
„MIDIÜbersicht“:
http://home.snafu.de/sicpaul/midi/midiy.htm
Herunterladen