240 likes | 398 Views
Symbolische Kodierung von Musik. Musikwissenschaftliches Institut Hamburg WS 2005/06 Klaus Frieler. Symbolische Kodierung von Musik Inhalt. Einführung EsAC (Essener Assoziativ Code) Humdrum und **kern MelodyCSV Das MIDI-Dateiformat. Symbolische Kodierung von Musik Einführung.
E N D
Symbolische Kodierung von Musik Musikwissenschaftliches Institut Hamburg WS 2005/06 Klaus Frieler
Symbolische Kodierung von Musik Inhalt • 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: • 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: • 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 • Dauern • 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.ohio-state.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: • 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 • !!!OTL: Well Sold the Cow -------- Titel • **kern -------- **kern Interpretation • *clefG2 -------- Violinschlüssel • *k[b-e-a-] -------- Vorzeichen(3b‘s) • *B-: -------- Tonart: Bb-Dur • *M6/8 -------- 6/8-Takt • *MM120 -------- Tempo 120bpm • {8b- -------- Achtelnote Bb,Phrasenbeginn • =1 -------- Hier beginnt Takt 1 • 4.b- -------- Punktierte Viertel Bb • 4f -------- Viertel F • . -------- Nichts (Nulltoken) • =2 -------- Takt 2 (etc.etc.) • 4.a- • 4g • 8f • *- -------- 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: • 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 6400 00 0006 00 0100 020C 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: • 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>: • 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 0-127, 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 6BMTrk 00 00 0044 0x000044 = 44 Bytes 0090 43500 Ticks, NoteOn, Pitch 67 (G4), Vel: 80 8C00 43 00 3072 Ticks, NoteOn, Pitch 67 (G4), Vel: 0 00 45 50 0 Ticks, NoteOn, Pitch 69 (A4), Vel: 80 8C 00 45 00 3072 Ticks, NoteOn, Pitch 69 (A4), Vel: 0 usw...
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