Version 1.6 | Datum 06/10/2009
  mediajournal
 
       
 


Ralf Gscheidle

 

Strukturierte Audiodaten im Internet

Von MIDI bis zum MPEG-4-Structured Audio Standard

Fachhochschule Stuttgart, Nobelstraße 10, 70569 Stuttgart, Germany

Audiodaten haben ein großes Datenaufkommen. Daher ist die Alternative zur Übertragung und Komprimierung 'natürlicher Musik' die Reduktion auf Steuerparameter, die den Klang als solchen erst beim Rezipienten erzeugen.
In MPEG-4 soll neben dem bisherigen MIDI-Standard zur flexibleren Beschreibung von elektronischen Klängen der sog. 'Structured Audio Standard' implementiert werden. Dieser ist von der praktischen Umsetzung durch anwenderfreundliche Software allerdings noch weit enfernt.

MIDI ist keine Musik

Seit 1982 ist MIDI (Musical Instrument Digital Interface) eine genormte digitale Schnittstelle, die es ermöglicht, elektronische Musikinstrumente miteinander zu verbinden und die zentrale Steuerbarkeit eines Systems zu ermöglichen. Hierbei ist die Aufgabe des Midi-Controllers das Versenden von Notenwerten, Toninformationen und Instrumentenbezeichnungen für bis zu 16 Kanäle (siehe Die MIDI-Spezifikation).
Seit leistungsstarke Chipsätze auch die Implementierung von einfachen Synthesizern auf Soundkarten für den Homecomputer-Bereich ermöglichen, wurde der MIDI-Standard um ein Standardset von Instrumenten erweitert - festgelegt durch die General MIDI (GM)-Spezifikation (siehe General MIDI). Dadurch wird erreicht, dass jeder GM-kompatible Tonerzeuger z.B. Instrument Nr. 1 als Klavier wiedergibt.

Wegen ihrer geringen Größe von nur wenigen Kilobytes werden MIDI-Dateien auch für den Austausch von "Musik" im Internet verwendet. In Anführungszeichen deshalb, weil es sich lediglich um die Steuerinformationen für einen willkürlichen MIDI-Tonerzeuger handelt. Und da es bei weitem noch nicht möglich ist, mehrstimmige Musik direkt in MIDI-Daten umzuwandeln, entsprechen die MIDI-Files, die ein Audio-Original nachbilden sollen, lediglich dem Können derer, die sie "nachkomponiert" haben. Außerdem sei in diesem Zusammenhang klargestellt, dass die Klänge als solche erst durch den Tonerzeuger des Rezipienten erzeugt werden und dadurch nicht in ihrer Qualität beeinflussbar sind.

Neue Wege gehen indes die Entwickler des MPEG-4-Standards, in welchem neben weiterentwickelten Algorithmen zur Komprimierung "natürlicher" Musik verschiedene Tools implementiert sind, die einkommende Daten dekodieren und ausgangsseitig als Sound ausgeben können (siehe Klangbeschreibung im MPEG-4 Format).

Die MIDI-Spezifikation

MIDI wurde von der International MIDI Association (IMA), MIDI Manufacturers Association und dem Japan MIDI Standards Commitee 1982 entwickelt, um die Kommunikation der verschiedenen Geräte untereinander zu ermöglichen. Jedes Gerät verfügt über dieselbe Schaltung und ein identisches Interface, über die es per Kabel mit den anderen Geräten verbunden werden kann. Somit können Informationen, die in der MIDI-Vorschrift festgelegt worden sind, von einem beliebigen Gerät gesendet als auch empfangen und verarbeitet werden.

Für das Verständnis eines MIDI-Systems ist zunächst wichtig, die für die Musikalität eines elektronischen Tonerzeugers entscheidenden Parameter zu kennen. Primär dreht sich Musik immer um folgende drei prinzipielle Parameter: Tonhöhe, Tondauer und Lautstärke eines Tones. Sekundär spielen Steuerinformationen, angefangen von Control-Change-Befehlen wie Haltepedal (Sustain), Pitch Bend- oder Modulation Wheels bis hin zur Manipulation einzelner Klangparameter des Tonerzeugers eine Rolle. Alle Daten können mit Hilfe einer Kanalinformation auf 16 voneinander unabhängige Kanäle übertragen werden, so, dass ein Arrangement mit mehreren Instrumenten gleichzeitig möglich ist.
Die Latenz - die Verzögerungszeit, die durch die serielle Übertragung der MIDI-Daten auftritt, kann im Normalfall ignoriert werden, da sie sich erst bei sehr großen Arrangements hörbar auswirkt. (Hier bieten professionelle Sequenzerprogramme spezielle Optionen an, um den unerwünschten Effekt auszugleichen.)

Das MIDI-Protokoll besteht aus Datenwörtern mit jeweils 8 Bit (=1 Byte). Um einen Ton zu spielen, sind im MIDI-System zwei Informationseinheiten nötig: ein Noten-Einschaltbefehl (Note-On) und ein Noten-Ausschaltbefehl (Note-Off). Beide Befehle bestehen aus drei Bytes: [1]

Das erste - das Status-Byte, dessen höchstwertiges Bit (MSB - Most Significant Bit) immer eine 1 ist, leitet das MIDI-Ereignis ein:

1001xxxx - Note-On-Befehl
1000xxxx - Note-Off-Befehl, wobei xxxx die Kanalnummer (1-16) darstellt.

Das zweite Byte übermittelt die Information, welcher von 128 möglichen Tönen ein- bzw. ausgeschaltet werden soll und das dritte Byte die dazugehörige Lautstärkeinformation (Velocity). Es handelt sich hier um Daten-Bytes, deren MSB immer 0 ist:

0xxxxxxx - Daten-Byte mit 128 möglichen Werten.

Neben den einfachen Spielbefehlen kann MIDI auch hardwarespezifische Daten wie Programmwechselbefehle (Program Change) oder systemexklusive Daten (SysEx) übermitteln, die das Speichern, Aufrufen oder Verändern einzelner oder kompletter Instrumenten-Setups eines MIDI-Tonerzeugers ermöglichen.
Dazu gibt es 128 zum Teil festgelegte als auch frei programmierbare Controller, mit denen man alle klangspezifischen Parameter manipulieren kann. Hier liegt vor allem der Reiz und auch der große Vorteil des MIDI-Protokolles im Studiobereich.

1011xxxx - Status-Byte für Controller-Änderung (Control Change),
0xxxxxxx - Daten-Byte für Controller-Nummer 0-127
0xxxxxxx - Daten-Byte für Controller-Wert 0-127

General MIDI

Um Kompatibilität bei der Instrumentenwahl zwischen einer Vielzahl unterschiedlicher Hersteller von MIDI-Tonerzeugern zu erreichen, wurde der MIDI-Standard 1991 erweitert: die General MIDI-Spezifikation (GM) gibt ein Instrumentenset von 128 verschiedenen Klängen vor, die mit dem Program-Change-Befehl erreichbar sind. (Die genaue Zuordnung der Programmnummern zu den Instrumenten findet sich im Anhang [siehe].)

Auf MIDI-Kanalnummer 10 normiert die GM-Spezifikation verschiedene Schlagzeug-Sounds, die fest mit verschiedenen MIDI-Tönen (Keys) verknüpft sind:

Key / Drum Sound Key / Drum Sound Key / Drum Sound

     

  1. Acoustic Bass Drum
  2. Bass Drum 1
  3. Side Stick
  4. Acoustic Snare
  5. Hand Clap
  6. Electric Snare
  7. Low Floor Tom
  8. Closed Hi Hat
  9. High Floor Tom
  10. Pedal Hi-Hat
  11. Low Tom
  12. Open Hi-Hat
  13. Low-Mid Tom
  14. Hi Mid Tom
  15. Crash Cymbal 1
  16. High Tom

     

  1. Ride Cymbal 1
  2. Chinese Cymbal
  3. Ride Bell
  4. Tambourine
  5. Splash Cymbal
  6. Cowbell
  7. Crash Cymbal 2
  8. Vibraslap
  9. Ride Cymbal 2
  10. Hi Bongo
  11. Low Bongo
  12. Mute Hi Conga
  13. Open Hi Conga
  14. Low Conga
  15. High Timbale
  16. Low Timbale

     

  1. High Agogo
  2. Low Agogo
  3. Cabasa
  4. Maracas
  5. Short Whistle
  6. Long Whistle
  7. Short Guiro
  8. Long Guiro
  9. Claves
  10. Hi Wood Block
  11. Low Wood Block
  12. Mute Cuica
  13. Open Cuica
  14. Mute Triangle
  15. Open Triangle

Um also auf einem "Hi Bongo" zu spielen, müsste man auf einem MIDI-Keyboard mit eingestelltem Kanal 10 die Taste 60 (das mittlere C3) drücken, damit der Sound erklingt.

Das MIDI-Protokoll sähe dann wie folgt aus:

1001 0101 - Note-On-Befehl auf Kanal 10
0001 1110 - Ton Nummer 60 (=C3)
0100 0000 - Lautstärke 127

1000 0101 - Note-Off-Befehl auf Kanal 10
0001 1110 - Ton Nummer 60 (=C3)
0100 0000 - Lautstärke 127

General MIDI Level 2

Die "General MIDI Level 2 Spezifikation" (1999, www.midi.org) normiert neben den Instrumenten-Setups Parameter wie MIDI Tuning, verschiedene Controller (=cc), RPNs (Registered Parameter Numbers) und Universal System Exclusive Messages.
(Eine detaillierte Auflistung der normierten Parameter findet sich im Anhang dieses Artikels [siehe].)

 

Klangbeschreibung im MPEG-4 Format

Ende der 80er Jahre formierte sich die "Moving Pictures Expert Group" (www.cselt.it/mpeg), um die Entwicklung eines Standards für Videokomprimierung voranzutreiben. 1993 wurde der Videostandard MPEG-1 veröffentlicht. Ziel von MPEG-1 war, ein mit der Qualität von VHS vergleichbares Format zu schaffen. 1995 folgte der MPEG-2 Standard, der mit einigen Verbesserungen ausgestattet war. MPEG-2 wird derzeit in vielen Bereichen benutzt, z. B. für DVDs oder Kompression von Video und Audio für Digitalfernsehen.
Das MPEG-4-Format (offzielle Bezeichnung: ISO/IEC 14496) wird seit 1998 entwickelt und bietet eine breite Auswahl an Funktionen, die sich längst nicht mehr nur auf den Bereich Videokompression beschränken. Die beiden wohl wichtigsten Paradigmen von MPEG-4 sind Flexibilität und Kompression. [2]

Neben dem MIDI-Protokoll und weiterentwickelten Algorithmen zur Komprimierung "natürlicher" Musik (z.B. GA - General Audio Coder), bietet MPEG-4 mit dem "Structured Audio"-Format (ISO 14496-3 Section 5) verschiedene Tools, die einkommende Daten dekodieren und ausgangsseitig als Sound ausgeben können. Genauso wie mit MIDI werden hier mit einer dazu angepassten Programmiersprache lediglich Algorithmen anstelle der Klänge selbst übertragen. Der Unterschied jedoch liegt darin, dass der Sound-Designer absolute Kontrolle über die Client-seitige Rekonstruktion des Sounds hat, da alle nötigen Parameter, die für den Klang entscheidend sind, im Datenstrom enthalten sein können.

Die wichtigsten Tools, die für die Beschreibung der Klangparameter in diesem Zusammenhang entscheidend sind, sind die Structured Audio Orchestra Language (SAOL), die Structured Audio Score Language (SASL) und das Structured Audio Sample Bank Format (SASBF).

Structured Audio Orchestra Language

SAOL ist eine Sprache, mit der alle Informationen, die zum Abspielen eines Instruments benötigt werden, beschrieben werden: Der Header des einkommenden Datenstromes enthält ein Datenpaket (Orchestra), in dem verschiedene Instrumente (Instruments) definiert sind. [3]
Diese Instrumente beschreiben einen Klangsynthese-Algorithmus: Das bedeutet, es wird kein realer Klang übertragen, sondern lediglich ein physikalisches Modell eines Tongenerators, welches einen Sound synthetisch erzeugen kann. Zusätzlich können in der Datei auch Parameter enthalten sein, die den Klang näher beschreiben oder aufzeigen, wie er verändert werden kann. Der Umfang der angewendeten, klangbeschreibenden Algorithmen ist letztlich entscheidend für die Qualität des Sounds.

SAOL ist flexibel genug, um jedes bereits bestehende oder auch künftige Syntheseverfahren zu nutzen. So setzt z.B. die "Granularsynthese" einen Klang aus vielen kleinen "Körnchen" zusammen, während das die "Additive Synthese" durch Mischen von einzelnen Teilschwingungen (Harmonischen) erreicht. Der einzige Nachteil hierbei ist ein hoher Rechenaufwand.

Von der Syntax her orientiert sich SAOL an Sprachen wie C. Das folgende Beispiel gibt einen simplen Ton (beep) mit Hüllkurve (envelope) über einen Sinustongenerator aus: [4]

instr beep(pitch,amp) {
table wave(harm,2048,1);
asig sound;
ksig env;
env = kline(0,0.1,1,dur-0.1,0);
sound = oscil(wave, pitch) * amp * env;
output(sound);
}
// make a beep
// sinusoidal wave function
// ‘asig’ denotes audio signal
// ‘ksig’ denotes control signal
// make envelope
// create sound by enveloping an oscillator
// play that sound
 

Mit Hilfe der Structured Audio Orchestra Language ist es möglich, eine relativ natürlich klingende Tonkulisse künstlich und bei entsprechend niedriger Bandbreite zu erschaffen.

Structured Audio Score Language

SASL ist ähnlich konzipiert wie MIDI und stellt eine seperate, in einem einfachen Textformat gehaltene Sprache dar, die eine flexible Kontrolle der Musik und der Soundsynthese ermöglicht. Mit den SASL-Kontrolldaten (Scores) werden die in SAOL definierten Instrumente gesteuert. Genauso besteht aber auch die Möglichkeit, die Instrumente einfacher per MIDI oder interaktiven Elementen von MPEG-4 anzuwählen.

In der SASL-Syntax wird zwischen Instrument Lines und Control Lines unterschieden:

In den Instrument Lines besitzt jede Zeile ein optionales Label (hier: n1, n2, n3), über welches Controller-Informationen mit den Tönen verknüpft werden können. Dann folgt für jedes Event eine Zeitangabe, der Instrumentenname (hier: beep2), die Tondauer (wobei -1 unbegrenzte Tondauer bedeutet) und die Kontrollparameter, die in der Instrumentendefinition in SAOL beschrieben sind. (Ist das Instrument dort als "instr beep2 (pitch)" definiert, steuert der Kontrollparameter die Tonhöhe.)
Die Control Lines beginnen immer mit dem control-Tag, spezifizieren dann ein Label, einen Variablennamen, der auch in SAOL definiert sein muss (hier: amp, off) und einen neuen Wert. [4]

n1:
 
 
n2:
n2:
n3:
 
 
 
 
 
 
 
0.0  beep2   1  440
0.5  beep2   1  480
 
1.0  beep2 –1  220
1.0  beep2 –1  440
1.0  beep2 –1  660
 
2.0  control n2 amp
2.5  control n2 amp 0.5
3.0  control n3 amp 0.2
3.0  control n2 amp 0.2
4.0  control n2 off 1
4.0  control n3 off 1
// first note
// second note
 
// third note – unbounded initial duration
// fourth note
// fifth note
 
// applies to third and fourth notes
 
// applies to fifth note
 
 
 

Structured Audio Sample Bank Format

Das SASBF wurde in Zusammenarbeit von MPEG und der MIDI Manufacturers Association (MMA) entwickelt. Das Format beschreibt Sampledaten für die Wavetable-Synthese (die einem der Sampling-Technologie ähnlichen Prinzip folgt) und enthält einzelne Audiosamples, Filter, Hüllkurven und diverse Effekteinstellungen [5]. Die einzelnen Parameter werden über SASL (s.o.) oder MIDI angesteuert.

 

Fazit

In der Tonstudiotechnik haben virtuelle Instrumente längst Einzug gehalten. Die VST-Schnittstelle (Virtual Studio Technology) der Firma Steinberg ist in diesem Bereich zum Standard geworden und ermöglicht zum Beispiel die vollständige Steuerung von Effekt-Plugins und virtuellen Instrumenten per MIDI.
Zum Thema "Structured Audio" jedoch sind bis heute nur sehr wenige ausreichend dokumentierte Publikationen verfügbar. Entsprechend dazu gibt es noch keine anwenderfreundlichen Tools, die einen ausgiebigen Test ermöglichen könnten. Alles, was bisher vorliegt, ist ein interessantes, zukunftsweisendes Konzept für eine reproduzierbare, datenreduzierte Übertragung hochwertiger Audiosignale. Daher wird man abwarten müssen, ob sich MPEG-4 auf dem Markt durchsetzen kann. Wenn Hard- und Softwarehersteller das Format dann in ihren Produkten implementieren, wird man sich auch praktisch mit der Funktionsweise von "Structured Audio" vertraut machen können.

 

Literaturliste

[1]:  Aicher, Richard, 1987
"Das MIDI Praxisbuch"

2.Auflage, Signum Medien Verlag GmbH, München

[2]:  Köller, Florian /Droste-Franke, Marc, 2000/01
"MPEG-4 Ausarbeitung"
,
URL: http://www.uni-paderborn.de/cs/ag-monien/LEHRE/ WS00_01/PG_PVMS/seminar/MPEG4.pdf

[3]:  Koenen, Rob, 2002
"MPEG-4 Overview - (V.21 – Jeju Version)"

URL: http://mpeg.telecomitalialab.com/standards/mpeg-4/mpeg-4.htm

[4]:  Scheirer, Eric D., 1998b
"MPEG-4 Audio Orchestra Language"

URL: http://citeseer.nj.nec.com/scheirer99generalized.html

[5]: 

Scheirer, Eric D., 1999
"Structured audio and effectts processing in the MPEG-4 multimedia standard "
URL: http://citeseer.nj.nec.com/scheirer99generalized.html

 

Liste externer Links

MIDI Manufacturers Association (MMA)
http://www.midi.org
The MPEG Homepage
http://www.cselt.it/mpeg
The MPEG Audio Web Page
http://www.tnt.uni-hannover.de/project/mpeg/audio
David Mellor, MPEG-4 Audio (deutsch)
http://www.audiomedia.com/archive/features/amg_050601/amg-0601-mpeg/amg-0601-mpeg.htm

 

Anhang

General MIDI Instruments:

Program-Nr. / Instrument Program-Nr. / Instrument

 

 Pianos

  1. Acoustic Grand Piano
  2. Bright Acoustic Piano
  3. Electric Grand Piano
  4. Honky-tonk Piano
  5. Electric Piano 1
  6. Electric Piano 2
  7. Harpsichord
  8. Clavi

Chromatic Percussion

  1. Celesta
  2. Glockenspiel
  3. Music Box
  4. Vibraphone
  5. Marimba
  6. Xylophone
  7. Tubular Bells
  8. Dulcimer

Organs

  1. Drawbar Organ
  2. Percussive Organ
  3. Rock Organ
  4. Church Organ
  5. Reed Organ
  6. Accordion
  7. Harmonica
  8. Tango Accordion

Guitars

  1. Acoust.Guitar (nylon)
  2. Acoust.Guitar (steel)
  3. Electr. Guitar (jazz)
  4. Electr. Guitar (clean)
  5. Electr. Guitar (muted)
  6. Overdriven Guitar
  7. Distortion Guitar
  8. Guitar harmonics

Bass

  1. Acoustic Bass
  2. Electric Bass (finger)
  3. Electric Bass (pick)
  4. Fretless Bass
  5. Slap Bass 1
  6. Slap Bass 2
  7. Synth Bass 1
  8. Synth Bass 2

Strings

  1. Violin
  2. Viola
  3. Cello
  4. Contrabass
  5. Tremolo Strings
  6. Pizzicato Strings
  7. Orchestral Harp
  8. Timpani

 Ensembles

  1. String Ensemble 1
  2. String Ensemble 2
  3. SynthStrings 1
  4. SynthStrings 2
  5. Choir Aahs
  6. Voice Oohs
  7. Synth Voice
  8. Orchestra Hit

Brass

  1. Trumpet
  2. Trombone
  3. Tuba
  4. Muted Trumpet
  5. French Horn
  6. Brass Section
  7. SynthBrass 1
  8. SynthBrass 2

 

Reeds

  1. Soprano Sax
  2. Alto Sax
  3. Tenor Sax
  4. Baritone Sax
  5. Oboe
  6. English Horn
  7. Bassoon
  8. Clarinet

Pipes

  1. Piccolo
  2. Flute
  3. Recorder
  4. Pan Flute
  5. Blown Bottle
  6. Shakuhachi
  7. Whistle
  8. Ocarina

Synth Leads

  1. Lead 1 (square)
  2. Lead 2 (sawtooth)
  3. Lead 3 (calliope)
  4. Lead 4 (chiff)
  5. Lead 5 (charang)
  6. Lead 6 (voice)
  7. Lead 7 (fifths)
  8. Lead 8 (bass + lead)

Synth Pads

  1. Pad 1 (new age)
  2. Pad 2 (warm)
  3. Pad 3 (polysynth)
  4. Pad 4 (choir)
  5. Pad 5 (bowed)
  6. Pad 6 (metallic)
  7. Pad 7 (halo)
  8. Pad 8 (sweep)

Synth Effects

  1. FX 1 (rain)
  2. FX 2 (soundtrack)
  3. FX 3 (crystal)
  4. FX 4 (atmosphere)
  5. FX 5 (brightness)
  6. FX 6 (goblins)
  7. FX 7 (echoes)
  8. FX 8 (sci-fi)

Ethnic

  1. Sitar
  2. Banjo
  3. Shamisen
  4. Koto
  5. Kalimba
  6. Bag pipe
  7. Fiddle
  8. Shanai

Percussives

  1. Tinkle Bell
  2. Agogo
  3. Steel Drums
  4. Woodblock
  5. Taiko Drum
  6. Melodic Tom
  7. Synth Drum
  8. Reverse Cymbal

Sound Effects

  1. Guitar Fret Noise
  2. Breath Noise
  3. Seashore
  4. Bird Tweet
  5. Telephone Ring
  6. Helicopter
  7. Applause
  8. Gunshot

zurück zum Text

General MIDI Level 2:

GENERAL REQUIREMENTS

Number of Notes: 32 simultaneous notes
MIDI Channels: 16
- Simultaneous Melodic Instruments = up to 16 (all Channels)
- Simultaneous Percussion Kits = up to 2 (Channel 10/11)

SUPPORTED CONTROL CHANGE MESSAGES (Some Optional)

- Bank Select (cc#0/32)
- Modulation Depth (cc#1)
- Portamento Time (cc#5)
- Channel Volume (cc#7)
- Pan (cc#10)
- Expression (cc#11)
- Hold1 (Damper) (cc#64)
- Portamento ON/OFF (cc#65)
- Sostenuto (cc#66)
- Soft (cc#67)
- Filter Resonance (Timbre/Harmonic Intensity) (cc#71)
- Release Time (cc#72)
- Attack time (cc#73)
- Brightness (cc#74)
- Decay Time (cc#75)
- Vibrato Rate (cc#76)
- Vibrato Depth (cc#77)
- Vibrato Delay (cc#78)
- Reverb Send Level (cc#91)
- Chorus Send Level (cc#93)
- Data Entry (cc#6/38)
- RPN LSB/MSB (cc#100/101)

SUPPORTED RPNs (Registered Parameter Numbers)

- Pitch Bend Sensitivity
- Channel Fine Tune
- Channel Coarse Tune
- New! Modulation Depth Range (Vibrato Depth Range)
- RPN NULL

SUPPORTED UNIVERSAL SYSTEM EXCLUSIVE MESSAGES

- Master Volume
- New! Master Fine Tuning
- New! Master Coarse Tuning
- New! Reverb Type
- New! Reverb Time
- New! Chorus Type
- New! Chorus Mod Rate
- New! Chorus Mod Depth
- New! Chorus Feedback
- New! Chorus Send to Reverb
- New! Controller Destination Setting
- New! Scale/Octave Tuning Adjust
- New! Key-Based Instrument Controllers
- New! GM2 System On

GM 2 INSTRUMENT SOUND SET
GM 2 PERCUSSION SOUND SET

zurück zum Text