Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.
-
Upload
kaethe-schwarz -
Category
Documents
-
view
228 -
download
2
Transcript of Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.
Notenbasierte Soundformate
Bedeutet: das Musikstück wird Notenweise gespeichert
Motivation: Leichter zu editieren, da Instrumente isolieren
möglich Leicht auf Computerspielverlauf abzustimmen Schmaleres Datenformat (weniger Speicher nötig)
Objektorientierter Ansatz
Abstrakte Klasse Instrument Methode NewNote()
Abstrakte Klasse Note Nur von Instrument aus zu instanziieren Kann sich selber in Puffer spielen Restart() – Ton halten Pitch(x) – Frequenz des Tones (Pitch(440) = 440 Hz) Volume(x) – Lautstärke
Instrumente Synthetisieren
Ansatz 1 Ein existierendes Instrument duplizieren
Ansatz 2 Sound mit musikalischer Qualität kreieren
Instrument duplizieren Mehrere Samples von original Instrument erstellen
Ein Sample pro Oktave
Pitch shifting Ton mit Pitch(x) Methode variieren
Amplitudensteuerung Ton eines physischen Instruments ist nicht gleichbleibend
Envelope Umsetzung z.B. durch Synthesizer Hardware mit
eigenem Volumecontrol für Noten
Andere Envelope Control Formen Trompeten, Violinen halten den Ton oft länger Geigen spielen einen Tremolo oder Vibrato
MIDIMusical Instrument Digital Interface
MIDI Manufacturer‘s Association MMA spezifiziert Speicherung von MIDI
Für Kompatibilität General MIDI mit 175 Standard Instrumenten
Organisation von MIDI Files Besteht aus Reihe von Chunks (RIFF Format) Chunk beginnt mit 4 Char
MIDI Header Chunk 2 Byte Datei Typ 2 Byte Anzahl der Tracks 2 Byte Zeit Format
MIDI Track Chunk Track Daten Pro Track ein Instrument
MIDI Datei Typen
Typ Null Datei enthält nur einen Track
Typ Eins Mehrere Tracks, simultan abgespielt
Typ Zwei Mehrere Tracks, ohne Zusammenhang
MIDI - Tracks
Liste von MIDI Events vorangestellt ein Zeitintervall (delta time)
Delta Time: Zeit bis Eventauslösung
Einlesen der Track Chunks: Chunklänge lesen und beachten Events in in-Memory-Eventliste einfügen
General MIDI - Events Erste Byte: Status Byte, gibt Eventtyp an
Zweites Byte: Channel Byte
Folgende Bytes: Daten Bytes Status Bytes beginnen immer mit high Bit =1 Daten Bytes beginnen immer mit high Bit = 0
Channels von 1 bis 16 (Code 0-15) Instrumente von 1 bis 128 (Code 0-127)
Integer variabler Länge
Kleine Zahlen passen in ein Byte
Jedes Byte 7 Bit
Msb 1 – es folgen noch Bytes
Msb 0 – letztes Byte des Integer
Integer variabler Länge88 00
8
1 0 0 0
8
1 0 0 0
0
0 0 0 0
0
0 0 0 0
msb msb
X000 1000 X000 0000 = 2^10 = 1024
MIDI – Events verwalten
Events sind zeitlich sortiert
Bei Typ Eins MIDI Dateien Vor abspielen Events aller Tracks in gemeinsamen Speicher
Running Status
Zur Effizienssteigerung von MIDI wire protocol
Auf Daten eines Events folgen wieder Daten Wire protocol benutzt dann den vorherigen Status weiter
MIDI - Events Standard MIDI Events
Noten spielen
Sysex Events System exclusive Message
Meta Events Key signatures Copyright notices
Meta Event – Time Signature Typ 88 (Hex 58)
4 Bytes Daten
Ersten 2 Byte: ¾ Takt = 3 und 2
Drittes Byte: MIDI Ticks pro Metronom Klick
Viertes Byte: Anzahl 32stel Noten in einer MIDI viertel Note
Zwei Arten von MIDI
General MIDI Standard Format
MIDI wire protocol Zur Übertragung von MIDI Daten über
langsame Netze
Real Time Events Verwendet bei MIDI wire protocol Unterteilung in real-time Events und non real-time
Events
Real-time Events Müssen an bestimmter stelle erscheinen um gewünschten
Effekt zu haben Synchronisations Events: start, continue
Non real-time Events Nicht zeitkritisch, werden geladen und später interpretiert Instrument change
MIDI Timing - SMPTE Society of Motion Picture and Television Engineers Time format Code im Header negativ Video und Audio synchronisation Teile von Stunden, Minuten, Sekunden und Frames
Kinoqualität 24 Frames pro Sekunde PAL, SECAM Fernsehen 25 Frames pro Sekunde NTSC schwarz-weiß Fernsehen 30 Frames pro Sekunde
MIDI Timing – Tempo-Based Time Format Kode im Header positiv Beats per minute (bpm) Im Header als Ticks pro Beat
80 bpm – 200 bpm (MIDI Standard: 120 bpm)
General MIDI Channels 1 – 9 und 11-16 melody channels Channel 10 rhythm channel (47
Rhythmusinstrumente) 16 simultane Noten auf melody channel 8 simultane Noten auf rhythm channel 175 Instrumente Unterstützt werden: unter anderem
Kontroller für Modulation, Lautstärke, Sustain, Reset all Parameter: Pitch Bend, Sensitivity
Base / Extended MIDI Base Multitimbral Synthesizer
Base MIDI 6 simultane Melodie Noten auf 3 Instrumenten 3 simultane Rhythmus Noten auf 3 Instrumenten
Extended Multitimbral Synthesizer Extended MIDI 16 simultane Melodie Noten auf 9 Instrumenten 16 simultane Rhythmus Noten auf 9 Instrumenten