![]() |
Töne (wave-rohdaten) mischen
Hallo,
ich möchte zwei wave-Dateien mischen. Die Dateien haben das gleiche Waveformat (Samplerate etc.) und ich weiß das man letztendlich nur die Samples addieren muss um einen gemischten Ton zu erhalten. Anfangs hab ich versucht den Mittelwert von 2 Samples zu bilden was natürlich unschön klingt weil die Stille mit verstärkt wird wenn man Stille mit Gesang mischt. Wenn man einfach nur die Samples addiert und nicht durch die Anzahl der addierten Samples teilt klingt das ganze auch ordentlich. Allerdings habe ich meine Bedenken das dies auch gut klingt wenn ich 20 Dateien mische denn dann wird der Samplewert irgendwann so hoch das er nicht mehr in den 16bit wert passt (bei 16bit sound). Und wenn ich dann den wert einfach abschneide müsste es ja übersteuert klingen. Wie macht man das also richtig? |
Re: Töne (wave-rohdaten) mischen
Zitat:
Zitat:
Zitat:
Zitat:
1. Der Zielpuffer besteht aus 32-Bit Integer-Werten 2. Jeder Kanal (jede Wave-Datei) bekommt eine Lautstärke von 0-256, und der Sample-Wert multipliziert mit der Lautstärke wird jeweils zum Zielpuffer addiert 3. Die Werte im Zielpuffer dividiert durch 256 (also um 8 Bit nach Rechts geschoben) ergeben dann das Ergebnis. Hier musst du auf Überlauf prüfen (-32767 <= Samplewert <= 32767). Liegt der Wert außerhalb dann musst du Clippen, d.h. auf den Minimal- oder Maximalwert abschneiden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz