Klicken in Wave-Stream entfernen + Nebengeräusche bei Änderung des Pitchs



  • Hab folgendes problem: in einem wave-stream befinden sich (aufgrund von samples, die wegen der länge von noten nicht komplett gespielt werden) hin und wieder klicks oder so knacken halt... meine frage, gibt es einen speziellen algorithmus, um das rauszubekommen bzw. was für einen filter brauch ich da (würde auf lowpass tippen, weil bei einem klick ja innerhalb von einem sample das signal auf 0 abfällt (bzw. von negativen wert auf 0 steigt), somit für den moment eine sehr hohe frequenz vorliegt)

    Außerdem habe ich das Problem, dass bei Änderung des Pitchs von Wave-Samples (normales lineares pitching, also herausnehmen bzw. duplizieren von einzelnen samples) immer so unschöne nebengeräusche (so mindestens 10 KHz schätze ich) entstehen... ist allerdings nicht der fall, bei gleichen tönen auf unterschiedl. oktaven (also wenn der pitch-faktor gleich 2^x ist)... was kann ich dagegen tun, außer einen LP-filter dahinter zu schalten? wie muss ich da den pitch-algo ändern?



  • so, das mit den nebengeräuschen hab ich... liegt daran, dass ich die samples noch interpolieren musste, logisch, wenn ich zwischendrinne samples rausnehme oder welche dupliziere... das mit dem klicken dürfte aber auch kein problem sein, muss halt testen, ob die differenz zwischen zwei samples einen bestimmten grenzwert übersteigt, wenn ja, dann mit mehreren samples "in der umgebung" interpolieren...



  • in einem wave-stream befinden sich (aufgrund von samples, die wegen der länge von noten nicht komplett gespielt werden) hin und wieder klicks oder so knacken halt... meine frage, gibt es einen speziellen algorithmus, um das rauszubekommen bzw.

    Jein.
    Es gibt declicking-Algorithmen, di filtern aber natürlich mehr eaus, als nur das echte Klicken. Sowas würde ich nur bei Sachen, wie knackenden Schallplatten verwenden.
    Dein Problem schein ein Designproblem zu sein. Kannst du nicht einfach deinen Sound ein paar samples länger abspielen und dabei schnell Ausfaden. Sicherlich nicht perfekt, hört aber vermutlich keiner und das Knacken dürfte weg sein.

    was für einen filter brauch ich da (würde auf lowpass tippen, weil bei einem klick ja innerhalb von einem sample das signal auf 0 abfällt (bzw. von negativen wert auf 0 steigt), somit für den moment eine sehr hohe frequenz vorliegt)

    Falsch!
    Es liegt keine Hohe Frequenz vor. Ein solcher Puls hat ein unglaublich breites Frequenzspektrum. Das kannst du nicht so einfach ausfiltern.

    Außerdem habe ich das Problem, dass bei Änderung des Pitchs von Wave-Samples (normales lineares pitching, also herausnehmen bzw. duplizieren von einzelnen samples) immer so unschöne nebengeräusche (so mindestens 10 KHz schätze ich) entstehen... ist allerdings nicht der fall, bei gleichen tönen auf unterschiedl. oktaven (also wenn der pitch-faktor gleich 2^x ist)... was kann ich dagegen tun, außer einen LP-filter dahinter zu schalten? wie muss ich da den pitch-algo ändern?

    Zum glück hast du selbst einen Ansatz gefunden, sonst wäre ich persönlich vorbeigekommen und hätte dich geschlagen.

    so, das mit den nebengeräuschen hab ich... liegt daran, dass ich die samples noch interpolieren musste, logisch, wenn ich zwischendrinne samples rausnehme oder welche dupliziere...

    Wie interpollierst du? Linear oder kubisch? kubische Interpolation steigert die Qualität enorm. Aliasing-Probleme bleiben natürlich. Dazu müsstes du beim hochpitchen vorher Filtern.

    ... das mit dem klicken dürfte aber auch kein problem sein, muss halt testen, ob die differenz zwischen zwei samples einen bestimmten grenzwert übersteigt, wenn ja, dann mit mehreren samples "in der umgebung" interpolieren...

    Und solche heftigen Änderungen kommen sonst nie vor? Jedes Hochfrequente Signal dürfte soetwas enthalten. Ich weiß nicht, wieviel du damit kaputt machen kannst.



  • ja, die idee mit den paar samples mehr und dann ausfaden hatte ich auch schon... wäre auch ganz schnell gemacht, müsste halt nur an der stelle, wo die länge der note in samples umgerechnet wird noch eine konstante dazu addieren... wollte das aber erstmal auf die lange bank schieben und sehen, wie das ganze aussieht, wenn ich dann hüllkurven drinne hab... mal sehen, aber trotzdem danke!

    Helium schrieb:

    so, das mit den nebengeräuschen hab ich... liegt daran, dass ich die samples noch interpolieren musste, logisch, wenn ich zwischendrinne samples rausnehme oder welche dupliziere...

    Wie interpollierst du? Linear oder kubisch? kubische Interpolation steigert die Qualität enorm. Aliasing-Probleme bleiben natürlich. Dazu müsstes du beim hochpitchen vorher Filtern.

    scheint wohl wirklich entscheident zu sein, denn gerade bei ganz tiefen tönen (also pitch um mehr als 2 oktaven) machen sich diese geräusche wieder stärker bemerkbar... was meinst du mit "filtern vorm pitchen"? soll ich da vorher einen filter drüber laufen lassen?? oder meinst du upsampling und dann filtern?



  • Aus deiner Antwort kann ich jetzt nicht erkennen, ob du linear oder kubisch interpolierst.

    Zum Filtern: Naja wenn du hochpitchst, dann verschiebst du die Frequenzen ja nach oben. Das heißt natürlich, dass du auch welche über die Nyquistfrequenz hinausschliebst und somit um eben diese Frequenz spiegelst. Wenn diese wieder tief genug werden, um hörbar zu sein, stören sie natürlich, da sie komplett atonal sind.
    Deswegen müsstest du theoretisch vorher die Frequenzen wegfiltern, die du oben rausschiebst.

    Irgendwo habe ich glaube ich einen Text, wo das elegant gelöst wird. ICh werde nochmal danach suchen. Sollte ich es vergessen erinnere mich nochmal dran (meine E-Mail Adresse hast du).



  • Helium schrieb:

    Aus deiner Antwort kann ich jetzt nicht erkennen, ob du linear oder kubisch interpolierst.

    momentan nur linear, werd mich aber noch an kubisch ransetzen

    Helium schrieb:

    Zum Filtern: Naja wenn du hochpitchst, dann verschiebst du die Frequenzen ja nach oben. Das heißt natürlich, dass du auch welche über die Nyquistfrequenz hinausschliebst und somit um eben diese Frequenz spiegelst. Wenn diese wieder tief genug werden, um hörbar zu sein, stören sie natürlich, da sie komplett atonal sind.
    Deswegen müsstest du theoretisch vorher die Frequenzen wegfiltern, die du oben rausschiebst.

    achso, ist klar, bei mir treten diese fehler vorallem beim runterpitchen auf, deshalb hatte ich das mit dem filtern net ganz gecheckt, da nützt das ja nichts, da vorher was zu filtern... 🙂



  • bei mir treten diese fehler vorallem beim runterpitchen auf

    Ja, da wird das kubische interpolieren besonders gut weiterhelfen.



  • war bisher alles nur ein fehler bei der linearen interpolation... jetzt klingts auch damit super... werde aber probehalber trotzdem mal kubisch probieren, obwohl hier wahrscheinlich das aufwand-nutzen-verhältnis nicht mehr ok ist... wenn das noch ein bisschen besser ist, werde ich das trotzdem einbauen und im high-quality-mode (der beim exportieren/rendern des songs eingeschaltet ist) aktivieren lassen...


Anmelden zum Antworten