Ja, sofern du den Prozess nur ab und zu machst.Bedeutet aber doch eigentlich nur, dass ich temporäre spektrale Abweichungen haben werde.
Ja, sofern du den Prozess nur ab und zu machst.Bedeutet aber doch eigentlich nur, dass ich temporäre spektrale Abweichungen haben werde.
Ich arbeite komplett Block-basiert. Da dürfte das etwas schwierig werden.
Gestern hatte ich mal zwei Stunden Zeit und habe zwei Ansätze für die Verkürzung getestet:Berichte mal nachher, ob du damit zufrieden bist.
size_t fadeLen = 10 * DSP::SAMPLERATE_MS; // 10 ms cross fade zeit fix
signal target = buffer[0]; // erstes sample im puffer
signal start = buffer[newSize - 1]; //letztes sample nach verkürzung
signal phaseInc = 1.0f / static_cast<signal>(fadeLen);
signal fade = 0.0f;
for (size_t i = 0; i < fadeLen; ++i)
{
buffer[i] = start * (1.0f - fade) + target * fade;
fade += phaseInc;
}
Nachtrag: Allerdings frage ich mich, ob die Phase wirklich ein Problem sein kann, das zu Knacksern führen kann.
Nicht nur ein Sprung im Zeitsignal wird zu einem Knack, sondern auch eine Diskontinuität in der 1. Ableitung (z.B. wenn ein Sinus stufenartig seine Frequenz ändert).
Nee, haste nicht. In meinem Beispiel wechsle ich den Grain-Pitch von Quinte auf Oktave (glaube ich). Da hätte man es hören können, allerdings war da der Puffer durchs Herumspielen wahrscheinlich schon angepasst.Habe ich ein Audio-Beispiel des Knacksens übersehen?
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.