Hallo, ich habe eine Frage zur Webseite von Elm Chan: http://elm-chan.org/works/vp/report.html Das mit dem Filtern und Echo habe ich mal realisiert, klappt echt toll. Hardware ist ein XMega64A3U mit einem SPI RAM 32KB. ADC und DAC sind on Board, alles super. Der Bursche hat echt was auf dem Kasten, ich ziehe da meinen Hut. Leider ist sein Englisch eher rudimentär, deshalb bleibt mir der Teil mit dem "Blending Buffer" für die Pitch conversion unklar. Ich lasse den Read Pointer doppelt so schnell laufen wie den Write Pointer und es klappt auch schön. Leider ist da auch der beschriebene und zu erwartende Klick im Moment wenn die Pointer sich überschneiden. Wer kann mal erklären, wie der Blending Buffer befüllt wird? Leider hakt es da bei mir. Ich wäre für eine kurze Hilfe dankbar. Gruß Thomas
Thomas S. schrieb: > Wer kann mal erklären, wie der Blending Buffer befüllt wird? Leider hakt > es da bei mir. Mit genau den alten Daten aus dem Fifo, die beim Schreiben von neuen Daten rausfallen (genauer: überschrieben werden).
Jim M. schrieb: > Thomas S. schrieb: >> Wer kann mal erklären, wie der Blending Buffer befüllt wird? Leider hakt >> es da bei mir. > > Mit genau den alten Daten aus dem Fifo, die beim Schreiben von neuen > Daten rausfallen (genauer: überschrieben werden). Es sieht aber im Bild 6 (unterer Teil) nicht so aus, als wenn das die gleichen Daten sind. Ich vermute eher, daß da iegendwas interpoliert wird, damit eben kein Knacken (steile Flanke) erscheint. Der Begriff "blending puffer" läßt das auch vermuten, denn er soll die Daten überblenden. Aber wie, hab ich auch noch nicht geschnallt...
"The cross fade is done during passing this range for 32 sample time." Das Überblenden wird in einem Bereich von 32 Samples gemacht. Nur wie?
Jim M. schrieb: > Mit genau den alten Daten aus dem Fifo, die beim Schreiben von neuen > Daten rausfallen (genauer: überschrieben werden). und genau deshalb ergibt das auch kein zufriedenstellendes pitching...
Das hilft mir aber nicht weiter, die alten Daten die rausfalllen sind auch irgendwann mal zu Ende, und dann kommt der Klick eben etwas später. Irgenwie gehen die Daten da in einander über, ich wollte wissen wie der das macht.
http://elm-chan.org/works/vp/blk_over.png Aus dem Bild geht hervor, dass die neuen Daten und die alten Daten sich um ein paar Samples überlappen. Diese Überlappungen werden zusammengeführt und eine neuer Wert "errechnet". Zu den Routinen die du dir anschauen musst gehört "xfer_data:" in VP_PITCH.ASM und das Makro "READ" in VP_DEF.INC.
Harald schrieb: > Aus dem Bild geht hervor, dass die neuen Daten und die alten Daten sich > um ein paar Samples überlappen. Diese Überlappungen werden > zusammengeführt und eine neuer Wert "errechnet". Genau: Da ist das Cross Fade. Debei wird der Fading Parameter mit dem Abstand des Lese- zum Schreibzeiger verknüpft. Je kürzer der Abstand je mehr geht der Blending Buffer in den Endwert ein, bei Lesezeiger=Schreibzeiger dann (nahezu?) 100%. Damit hat man sanft von Ringpuffer-neu auf Ringpuffer-alt übergeblendet, wenn der Lesezeiger schneller als der Schreibzeiger läuft.
sumo schrieb: > Der Begriff "blending puffer" läßt das auch vermuten, denn er soll die > Daten überblenden. Aber wie, hab ich auch noch nicht geschnallt... Nein, hast du nie Whisky getrunken und aufs Etikett geschaut? To blend heisst vermischen, verschneiden. https://www.beowein.de/epages/Shop538.sf/de_DE/?ObjectPath=/Shops/Shop538/Products/10805 https://www.dict.cc/englisch-deutsch/to+blend.html
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.