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