convolution reverb
Moderator: herw
-
- synth doctor
- Beiträge: 263
- Registriert: 17. April 2006, 13:00
- Wohnort: mannheim
convolution braucht kein FFT. es werden "nur" amplitudenwerte" multipliziert und addiert. dies freilich in einer sehr großen anzahl. die meisten convolution reverb plugins haben deshalb auch eine spürbare latenzzeit, da ja etliche berechnungen "im voraus" gemacht werden müssen.
wie bereits erwähnt ist die reaktor engine nicht für derartige berechnungen ausgelegt. eine brauchbare simulation könnte man höchstens in max/msp oder PD machen, aber das spekuliere ich hier nur.
wie bereits erwähnt ist die reaktor engine nicht für derartige berechnungen ausgelegt. eine brauchbare simulation könnte man höchstens in max/msp oder PD machen, aber das spekuliere ich hier nur.
-
- user
- Beiträge: 12
- Registriert: 25. Juni 2006, 22:30
Der triviale Ansatz koennte mit Core ganz gut gehen, allerdings braucht man dann bei jedem Sample (also 44100) eine Schleife, die alle Werte des gespeicherten Impulses multipliziert. Die Schleife muss man ausserhalb Cores bauen, da hab ich jetzt gerade wenig Musse zu (immer so ein Act, wenn man was einfaches in Reaktor coden will). Dieser Ansatz muesste (trotz Core), ordentlich Leistung verbraten (so ein normaler Filter duerfte so auf 20 Multiplikationen kommen, tippe ich), bei einem Impuls von 2 sekunden sind das schon 80000 :]
Der nichttriviale Ansatz duerfte auch in Reaktor gehen, mit den FFT modulen, das guck ich mir mal morgen an, klingt ganz spannend. Erstmal das IR sample durch die FFT laufen lassen (ich denke so auf Knopfdruck nach dem Laden in ein normales Samplermodul sollte ok sein)? Dann die rauskommende Phasen und Amplitude information speichern, und das auf die normale FFT addieren und wiederzuruecktransformieren. Duerfte sogar einfacher sein als der "triviale" Ansatz :] Ich gucks mir mal, ja ja
Der nichttriviale Ansatz duerfte auch in Reaktor gehen, mit den FFT modulen, das guck ich mir mal morgen an, klingt ganz spannend. Erstmal das IR sample durch die FFT laufen lassen (ich denke so auf Knopfdruck nach dem Laden in ein normales Samplermodul sollte ok sein)? Dann die rauskommende Phasen und Amplitude information speichern, und das auf die normale FFT addieren und wiederzuruecktransformieren. Duerfte sogar einfacher sein als der "triviale" Ansatz :] Ich gucks mir mal, ja ja

- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Bis jetzt habe ich verstanden, dass ihr zwei Audio-Sinale (?) sampleweise jeden Sample des ersten mit jedem des zweiten multiplizieren wollt und dann aufaddiert. korrekt?daswesen hat geschrieben:Der triviale Ansatz koennte mit Core ganz gut gehen, allerdings braucht man dann bei jedem Sample (also 44100) eine Schleife, die alle Werte des gespeicherten Impulses multipliziert. Die Schleife muss man ausserhalb Cores bauen, da hab ich jetzt gerade wenig Musse zu (immer so ein Act, wenn man was einfaches in Reaktor coden will). Dieser Ansatz muesste (trotz Core), ordentlich Leistung verbraten (so ein normaler Filter duerfte so auf 20 Multiplikationen kommen, tippe ich), bei einem Impuls von 2 sekunden sind das schon 80000 :]
Der nichttriviale Ansatz duerfte auch in Reaktor gehen, mit den FFT modulen, das guck ich mir mal morgen an, klingt ganz spannend. Erstmal das IR sample durch die FFT laufen lassen (ich denke so auf Knopfdruck nach dem Laden in ein normales Samplermodul sollte ok sein)? Dann die rauskommende Phasen und Amplitude information speichern, und das auf die normale FFT addieren und wiederzuruecktransformieren. Duerfte sogar einfacher sein als der "triviale" Ansatz :] Ich gucks mir mal, ja ja
Also sample A1·(B1+B2+B3+...), dann A2·(B1+B2+B3+...). Werden diese dann auch wieder aufaddiert?
Wieso gibt das dann einen Hall und wie kommt ihr an des zweite Sample (die Hallinformationen?)? Das dürfte dann ja durch zwei verschachtelte Schleifen gehen.
Könnt ihr mal die Quelle angeben, auf die ihr euch bezieht?
ciao herw (ratlos)
PS: etwa so: Impulse Responses
kann ich dann nicht gleich NI SPECTRAL DELAY benutzen (kommt wohl bald).
- KlangRaum
- synth guru
- Beiträge: 647
- Registriert: 1. August 2006, 12:55
apropos schleifen..... mit dem modul iteration:
wenn man nicht mit limited-speed arbeitet und dabei *grössere* schleifendurchläufe hat, gibts uU sehr schnell spitzen in der CPU-last, die reaktor einfrieren können (nicht müssen), besonders wenn mehrere schleifen parallel oder kaskadiert ausgeführt werden. ohne limited-speed werden alle schleifendurchläufe innerhalb eines audiosample durchlaufen
ich hab ein ähnliches prob, bei dem lediglich tabellen kopiert werden müssen. prinipiell funzt das in diesem beispiel nur vernünftig bis etwa 20000 iteration/sec. das schränkt die verwendungsfähigkeit von so schleifenzeugs *etwas* ein.... in diesem modus ist die schleife auf mehrere audiosamples verteilt, also nicht mehr audio-echtzeit. für events reicht das aber uU.
man kann zwar die maximum-usage auf 100% setzen, um aussetzer zu vermeiden, diese einstellung wird jedoch nur in den perferences eingestellt und nicht wie die maximale stimmzahl im instrument oder ensemble mitgegeben. dh: wenn man ein solches ens weitergibt, muss man nochmal extra drauf hinweisen...
(das thema schleifen kann man ja mal als extrafred auskoppeln....)
wenn man nicht mit limited-speed arbeitet und dabei *grössere* schleifendurchläufe hat, gibts uU sehr schnell spitzen in der CPU-last, die reaktor einfrieren können (nicht müssen), besonders wenn mehrere schleifen parallel oder kaskadiert ausgeführt werden. ohne limited-speed werden alle schleifendurchläufe innerhalb eines audiosample durchlaufen
ich hab ein ähnliches prob, bei dem lediglich tabellen kopiert werden müssen. prinipiell funzt das in diesem beispiel nur vernünftig bis etwa 20000 iteration/sec. das schränkt die verwendungsfähigkeit von so schleifenzeugs *etwas* ein.... in diesem modus ist die schleife auf mehrere audiosamples verteilt, also nicht mehr audio-echtzeit. für events reicht das aber uU.
man kann zwar die maximum-usage auf 100% setzen, um aussetzer zu vermeiden, diese einstellung wird jedoch nur in den perferences eingestellt und nicht wie die maximale stimmzahl im instrument oder ensemble mitgegeben. dh: wenn man ein solches ens weitergibt, muss man nochmal extra drauf hinweisen...
(das thema schleifen kann man ja mal als extrafred auskoppeln....)
Siggi Natur ? 

- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
ja, da müsste jemand mal eine Frage aufgreifen. Ich kenne mich da noch wenig aus, da ich das bisher nur sporadisch für ganz wenige Rechnungen benötigte.KlangRaum hat geschrieben:apropos schleifen..... ...(das thema schleifen kann man ja mal als extrafred auskoppeln....)
Krümelmonster weiß darüber mehr; leider meldet er sich hier zu selten (*wink*, *wink*).
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
-
- synth doctor
- Beiträge: 263
- Registriert: 17. April 2006, 13:00
- Wohnort: mannheim
-
- synth doctor
- Beiträge: 263
- Registriert: 17. April 2006, 13:00
- Wohnort: mannheim
das ist die wunderbare DSP-welt.herw hat geschrieben: Wieso gibt das dann einen Hall und wie kommt ihr an des zweite Sample (die Hallinformationen?)?
die hallinformationen muss man natürlich aufnehmen. mit dem mikrophon. das kann man selbst machen oder man greift auf eine pro-library zurück.
man spielt einen testton in einem raum ab, nimmt das auf und verrechnet es mit einem beliebigen soundfile - fertig.
zumindest in der theorie.
man hat nicht den impuls/hall von einem raum, sondern man hat den impuls von den boxen die den testton abspielen, dem mikrophon das diesen aufnimmt und genau der position an der das mikro stand.
-
- synth doctor
- Beiträge: 263
- Registriert: 17. April 2006, 13:00
- Wohnort: mannheim
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
ja gut, das ist dann aber erst der Hall des Testtons. Wenn man ganz genau sein wollte, müsste man jede Frequenz (oder meinetwegen auch Frequenzbänder) aufnehmen und dann das Audiosignal entsprechend in Teilfrequenzen zerlegen.magneton hat geschrieben:das ist die wunderbare DSP-welt.herw hat geschrieben: Wieso gibt das dann einen Hall und wie kommt ihr an des zweite Sample (die Hallinformationen?)?
die hallinformationen muss man natürlich aufnehmen. mit dem mikrophon. das kann man selbst machen oder man greift auf eine pro-library zurück.
man spielt einen testton in einem raum ab, nimmt das auf und verrechnet es mit einem beliebigen soundfile - fertig.
zumindest in der theorie.
man hat nicht den impuls/hall von einem raum, sondern man hat den impuls von den boxen die den testton abspielen, dem mikrophon das diesen aufnimmt und genau der position an der das mikro stand.
-
- synth doctor
- Beiträge: 263
- Registriert: 17. April 2006, 13:00
- Wohnort: mannheim
idealerweise enthällt ein impuls (1 sample länge, 0dB) alle frequenzen gleichermaßen. bei der sinussweep methode geht der sweep von 0Hz bis 22kHz (bzw. halbe samplingrate). damit wird also das frequenzverhalten des raumes abgenommen.herw hat geschrieben:ja gut, das ist dann aber erst der Hall des Testtons. Wenn man ganz genau sein wollte, müsste man jede Frequenz (oder meinetwegen auch Frequenzbänder) aufnehmen und dann das Audiosignal entsprechend in Teilfrequenzen zerlegen.
mit anderen worten: was Du meintest geschieht also bereits

die aufnahme des impulses/sweeps muss freilich aufbereitet werden.
ich nehme dazu den voxengo deconvolver
-
- synth doctor
- Beiträge: 263
- Registriert: 17. April 2006, 13:00
- Wohnort: mannheim
kann man sich mit folgender überlegung verdeutlichen:KlangRaum hat geschrieben:ein impuls von der länge eines sample enthält alle frequenzanteile ?????
wie soll das gehen? btw wie ist das gemeint?
weißes rauschen enthällt alle frequenzen gleichermaßen.
nun nimmt man weißes rauschen und staucht das auf ein sample länge zusammen.
die genannten wikipedia artikel geben weitere hinweise.
- KlangRaum
- synth guru
- Beiträge: 647
- Registriert: 1. August 2006, 12:55