View Full Version : [Frage] audio übersteuern
Hallo
Ich habe ein Problem beim erhöhen der Lautstärke.
Wenn ich die Samples des Hauptdatenstroms (z.B. Lied) um den Faktor 2 erhöhe, dann hört man zu Beginn jeder Sekunde ein Knacken (klingt so wie wenn man den Lichtschalter zu langsam drückt, sodass ein Funken entsteht - hört man ja aus einem Lautsprecher :) )
Weiss jemand wie ich diesen Effekt verhindern kann ?
mfG karl
Hi
ich hab noch ein kleines Problem :)
mitlerweile kann ich schon ein EffektSample (Dauer 1 sec) über den Hauptdatenstrom legen - nur wird das Sample um die Hälfte zu langsam abgespielt. (Das Sample hole ich mir mit einer Pulldatasource; es hat genau das gleiche Format wie der Hauptdatenstrom).
weiss jemand einen Rat ?
majorkoenig
18-01-2003, 15:16
hmmm..
ich hatte mir das überhaupt etwas anders vorgestellt (Bin aber noch nicht soweit) ;p. Du legst eine Pulldatasource darüber? Wie soll das gehen?
Weil die Buffer muss man ja in der process() mehtode des effect einzeln bearbeiten.
Für die Verarbeitung der Buffer in der process() methode darf man nur FragMichBitteNichtWieviel ms oder welche Zeiteinheit auch immer brauchen. Liegt es vielleicht daran?
Sollte es nich irgendwie so funktionieren?
Ich hatte mir das irgendwie so gedacht
Ich wende meinen Effekt auf mein EffektSample an dann merke ich mir (wie auch immer das muss ich mir noch überlegen) meine Inbuffers in der process Methode
Danach kommt erst mein Hauptdatenstrom dran.
Den jage ich durch meinen Effect und dort in der Process() metode muss ich dann die beiden irgendwie Zusammenführen.
Geht das auch irgendwie einfacher ?
Ich glaub nicht aber ich würde mich sehr gerne eines besseren belehren lassen
Original geschrieben von karl
es hat genau das gleiche Format wie der Hauptdatenstrom).
weiss jemand einen Rat ?
bezweifle ich: normalerweise kommen solche Effekte durch ein Sampleraten mismatch zustande -> ansonsten ist es ein programmierfehler, sodass z.b. nur über jedes zweite Sample pro Kanal gemischt wird (das menschliche Ohr täte die kurzen Aussetzer nicht hören, vgl. MP3 codierung).
Ad Knacken: wenn du um einen Faktor größer 1 skalierst, musst du aufpassen, dass die Samples nicht größer als ihre maximale Höhe werden i.e. kein Overflow bei den 16bit passiert... Überhaupt: wennst du das Gain auf über ein gewisses Maß erhöhst, zerrt es auf jeden Fall an, weil du eben gewisse "Spitzen" weg. Overflow verlierst...
aber wenn z.B. nur jedes 2te Sample abgespielt werden würde, dann wäre ja der Effekt trotzdem nur 1 Sekunde zu hören, oder ?
Bei mir wird das File aber 2 Sekunden abgespielt - woraus folgt, dass alle vorhandenen Samples verarbeitet werden.
Ich habe auch mal probiert, als Effektfile das Hauptfile zu verwenden - es wird aber trotzdem das File, das ich mit der PullDataSource aufrufe um genau die Hälfte langsamer abgespielt.
vBulletin® v3.7.1, Copyright ©2000-2008, Jelsoft Enterprises Ltd.