Einzelnen Beitrag anzeigen

Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Wave Dateien in eine mixen

  Alt 5. Apr 2007, 09:24
Zitat von Boz:
Ich gehe mal von normalen Stereo-Waves in 44.1 kHz und 16 Bit aus.
Dann ist es eigentlich doch recht einfach.


1. WAV-Dateien liegen im sog. RIFF-Format vor - Daniel hat in diesem Beitrag einen RIFF-Parser vorgestellt. Damit kannst du die zusätzlichen Informationen von den eigentlichen Sample-Daten trennen.

2. Mit den reinen Samples (Sample = Messwert) kannst du mehr oder weniger einfach rechnen: die Sample-Werte sind vorzeichenbehaftete 16-Bit Integer-Werte (SmallInt). Wenn du dir einmal die normale Anzeige in Audio-Programmen vorstellst (z.B. Wellenform: /\_/\_/\_/), dann entsprechen die Werte der Samples der Y-Koordinate dieser Darstellung. Die Werte für Links und Rechts stehen immer abwechselnd in den Daten.

Das heißt
a) du kannst die Lautstärke verändern, indem du alle Sample-Werte mit einem festen Wert multiplizierst;
b) du kannst zwei Aufnahmen mischen (= überlagern), indem du die entsprechenden Sample-Werte addierst.

Beim Rechnen solltest du nur aufpassen, dass es nicht zu Überläufen kommt (Endwert >32767 bzw. <-32768), sonst verzerrt das Ganze und du bekommst sog. "Digital Distortion".
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat