Home | Lehre | Videos | Texte | Vorträge | Software | Person | Impressum, Datenschutzerklärung | Blog
WAV-Dateien
-
Ausprägung des RIFF-Dateiformats, anderer Vertreter: AVI
-
Siehe Beispielprogramm!
-
Vorsicht mit Little Endian / Big Endian: Die Klartext-Kennzeichner wie
'RIFF' scheinen falsch herum zu stehen.
-
Demos im Beispielprogramm: reduzierte Quantisierungsauflösung (->
Quantisierungsrauschen), hartes Downsampling (-> Aliasing -> Glockenklang),
Übersteuerung (-> Verzerrung)
Pegeleffekte: Noise Gate, Limiter, Kompressor
Hüllkurve (auf einen von 1001 Wegen) bilden. Daraus einen zeitabhängigen
Faktor bilden, mit dem das Signal multipliziert wird:
-
Noise Gate: leise Stellen ganz wegdrehen (Unterdrückung von Nebengeräuschen
in Pausen)
-
Limiter: ab einem bestimmten Pegel so weit herunterregeln, dass dieser
Pegel nicht überschritten wird (Hörschutz, Übersteuerungsschutz)
-
Kompressor: Leises etwas heraufregeln, Lautes etwas herabregeln, so dass
Pegeländerungen schwächer werden (zum Hören mit Umgebungslärm;
mehr "Druck" für Plattenproduktionen; Gesang wird meist wegen des
großen Pegelumfangs komprimiert) [Gegenteil: Expander]
-
oder beliebig kombiniert über Kennlinie Eingangspegel -> Ausgangspegel
definieren
OpenAL: Open Audio Library
-
Urspünglich von Loki; Download des SDK derzeit bei Creative
Labs. Achtung: Demoprogramme setzen Creative Labs' Erweiterung EAX
voraus. Also eax.h und so weiter rausstreichen.
-
Windows, MacOS, Linux
-
analog zu OpenGL: 3D, Syntax, Renderkontext, State Machine, Funktionsbezeichnungen
-
gedacht zur Integration mit OpenGL
-
keine Audioeingabe, kein MIDI
-
Objekte pro Audio-Context: Buffers (verwalten Sounddaten), Sources (Ort,
Richtung, Buffer ,...), ein Listener
-
Pegelabfall mit Entfernung, Doppler-Effekt für bewegte Quellen und
bewegten Empfänger
-
Doppler: Positions- und Geschwindigkeitsänderungen muss man selbst
ausrechnen und laufend in Echtzeit aktualisieren
-
Source: Play, Pause, Stop, Rewind arbeiten asynchron (nebenläufig);
das Programm muss nicht warten, bis ein Sound abgespielt ist.
-
Buffers in Schlange einer Source stellen (queue), um sie automatisch nachzuladen,
siehe Demoprogramm im SDK