Top Banner
Synthetisierung von Audio und MIDI Referent Sebastian Frielitz
51

Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Apr 06, 2016

Download

Documents

Käthe Schwarz
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Synthetisierung von Audio und MIDI

Referent Sebastian Frielitz

Page 2: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Themen Überblick

Synthetisieren von Musik MIDI Beispiel

Page 3: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Synthetisieren von Musik

Stückbasierte Soundformate

Notenbasierte Soundformate

Page 4: 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)

Page 5: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Musik ProgrammierenWas wird benötigt?

Instrumente

Noten

Page 6: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

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

Page 7: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Instrumente Synthetisieren

Ansatz 1 Ein existierendes Instrument duplizieren

Ansatz 2 Sound mit musikalischer Qualität kreieren

Page 8: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

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

Page 9: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

AmplitudensteuerungADSR - Envelope

Attack, Decay, Sustain, Release

Page 10: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

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

Page 11: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

MIDIMusical Instrument Digital Interface

MIDI Manufacturer‘s Association MMA spezifiziert Speicherung von MIDI

Für Kompatibilität General MIDI mit 175 Standard Instrumenten

Page 12: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

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

Page 13: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

MIDI Datei Typen

Typ Null Datei enthält nur einen Track

Typ Eins Mehrere Tracks, simultan abgespielt

Typ Zwei Mehrere Tracks, ohne Zusammenhang

Page 14: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.
Page 15: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Header Chunk- MIDI Standard

Page 16: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Header Chunk

Page 17: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Track Chunk- MIDI Standard

Page 18: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Track Chunk

Page 19: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

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

Page 20: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

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)

Page 21: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Ton spielen- MIDI Standard

Page 22: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Ton spielen

Page 23: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Ton spielen- MIDI Standard

Page 24: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Ton spielen

Page 25: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Ton spielen- MIDI Standard

Page 26: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Ton spielen

Page 27: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

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

Page 28: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

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

Page 29: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

MIDI – Events verwalten

Events sind zeitlich sortiert

Bei Typ Eins MIDI Dateien Vor abspielen Events aller Tracks in gemeinsamen Speicher

Page 30: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Running Status

Zur Effizienssteigerung von MIDI wire protocol

Auf Daten eines Events folgen wieder Daten Wire protocol benutzt dann den vorherigen Status weiter

Page 31: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

MIDI - Events Standard MIDI Events

Noten spielen

Sysex Events System exclusive Message

Meta Events Key signatures Copyright notices

Page 32: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

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

Page 33: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Track Chunk

Page 34: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Track Chunk- MIDI Standard

Page 35: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Track Chunk

Page 36: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Zwei Arten von MIDI

General MIDI Standard Format

MIDI wire protocol Zur Übertragung von MIDI Daten über

langsame Netze

Page 37: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

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

Page 38: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

MIDI - Timing

Delta time tick counts festelegen

Zwei Techniken: SMPTE Musical Tempo

Page 39: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

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

Page 40: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

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)

Page 41: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

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

Page 42: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

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

Page 43: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Track Chunk

Page 44: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Track Chunk

Page 45: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Track Chunk

Page 46: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Track Chunk- MIDI Standard

Page 47: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Track Chunk

Page 48: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Track Chunk- MIDI Standard

Page 49: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Track Chunk

Page 50: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Track Chunk- MIDI Standard

Page 51: Synthetisierung von Audio und MIDI Referent Sebastian Frielitz.

Track Chunk