Table mittels FFT analysieren

Diskussionsforum für Fragen zur Struktur und Implementation in REAKTOR, auch DSP, Literatur und begleitende Software

Moderator: herw

Quietschboy
synth doctor
Beiträge: 218
Registriert: 6. April 2011, 20:31
Wohnort: Wiesbaden

Re: Table mittels FFT analysieren

Beitrag von Quietschboy »

Hi 128,
das mit den Wavetables interessiert mich ja nun auch schon, zumal ich vor ein paar Jahren mal angefangen hatte meinen Korg DW-8000 in Reaktor nachzubilden. Weit bin ich leider nicht gekommen. Die Wavetable Synthese des DW-8000 hatte ich erstmal mangels Wissen mit Single-Cycle-Einzelsamples für jede Note ersetzt.
Du scheinst sehr genau zu wissen was man braucht und wie man das heutzutage löst. Ein Single-Cycle-Sample über die komplette Tastatur oder oktavweise zu pitchen scheint wohl zu einfach gedacht zu sein?
Kannst du vielleicht mal ganz kurz erklären, wie die Wavetable Synthese generell funktioniert, bzw. was man dabei beachten sollte?

z.B. hast du geschrieben:
"Um eine verlustfreie und bandbegrenzte Oktavierung zu erreichen..."
"Bandbegrenzt" heißt wahrscheinlich: In den hohen Lagen in den oberen Frequenzen beschränkt, damit kein Aliasing entsteht?

Beim absamplen des DW-8000 ist mir aufgefallen, daß die Japaner wohl immer oktavweise ein neues Setting und/oder neues Sample benutzt haben. Auch die Lautstärke springt oktavweise. Ich vermute dass hier tatsächlich nur mit einem "gepitchtem" Single-Cycle-Sample" pro Oktave gearbeitet wurde. Zumindest konnte ich in den Wellenformen auch nur oktavweise Unterschiede feststellen. Ok, ich sehe gerade es gibt sogar inzwischen eine Wikipedia Artikel: 16 Single-Cycle-Waveforms in 256kBit ROM; Baujahr 1985-1987. Hier handelt es sich wohl nicht um Wavetable Synthese? Richtig?

Was du da vor hast, hört sich wirklich interesssant an. Ich denke gerade an feine Klangverläufe von den Tiefen bis zu den Höhen.
Ist das eine Technik, die auch schon im Wave oder Microwave eingesetzt wurde? FFT wahrscheinlich nicht, oder?
128bpm
synthesist
Beiträge: 58
Registriert: 26. Februar 2018, 12:23

Re: Table mittels FFT analysieren

Beitrag von 128bpm »

So viel Ahnung habe ich jetzt auch nicht, ich beschäftige mich erst seit ein paar Tagen damit. Aber das grundlegende Prinzip ist einfach zu verstehen.
Ein Single-Cycle-Sample über die komplette Tastatur oder oktavweise zu pitchen scheint wohl zu einfach gedacht zu sein? 
Mit genau dieser Konstellation habe ich begonnen, doch ein derart simples Vorgehen führt zu einem schrecklichen, mit Artefakten übersäten Sound.

Bei meinen Recherchen und Experimenten bin ich auf drei Punkte gestoßen, welche für einen guten Sound und eine saubere Transponierung von Nöten sind:

1) Zugriff auf mehrere Samples abhängig von der Tonhöhe. Hierbei bietet sich ein Oktavabstand besonders an.
2) Interpolation der Werte um Zwischenwerte korrekt wiederzugeben.
3) Bandbegrenzung bei der Hälfte der Samplerate um das Frequenzspektrum im Zaum zu halten


Es gibt sicherlich unterschiedliche Möglichkeiten um an die benötigten Samples zu kommen. Ich habe mich für folgenden Weg entschieden:

Ich sample Synthesizer mit einer Frequenz von 43,066 Hz (=1024 Samples) ab. Dann schneide ich mir eine einzige Periode der Wellenform heraus (Achtung, nicht gleich die erste nehmen, da hier noch der Attack der AMP-Hüllkurve wirkt). Dies ist dann mein Basissample.
Man könnte jetzt auch die nächsten Oktaven absamplen, jedoch bekommt man so keine gute Basis für das eigene Wavetable. So spielt z.B. in hohen Oktavlagen die Interpolation eine immer größere Rolle und das Absamplen wird zunehmend ungenau, zumindest nach meinem Verständnis. Außerdem würde das viel zu viel Arbeit machen. Wenn man für jedes Wavetable 10 Oktaven absamplen und bearbeiten müsste, hätte man schnell keine Lust mehr.

Also war meine Idee, auch inspiriert durch NI Absynth, das Basissample mittels FFT zu analysieren und einen Algorithmus zu entwickeln, welcher ein Wavetabel mit all seinen Oktavierungen und allen Interpolationswerten erstellt. Auch lässt sich über die FFT die Bandbegrenzung hervorragend umsetzen. Man schneidet bei der iFFT einfach alle nicht benötigten Obertöne ab. Das scheint mir der sinnvollste Weg zu sein und es würde mich nicht wundern wenn das professionelle Softwareschmieden genau so handhaben.


Ich persönlich bin ein Fan von NI Massive. Durch ihn habe ich Wavetables schätzen und lieben gelernt. Ich würde in Reaktor nur sehr ungern darauf verzichten : )
Ist das eine Technik, die auch schon im Wave oder Microwave eingesetzt wurde?
Keine Ahnung : )


Wie das ganze in der Praxis funktioniert kann man sehr gut bei Carbon 2 von Mike Daliot sehen. Da ich kein Mathegenie bin, nutze ich die dort verwendete 4-Punkte-Interpolation. Diese betrachtet die Werte Sample -1, Sample, Sample +1 und Sample +2. Will man eine Interpolation verwenden muss man diese Werte mit in das Wavetalbe schreiben, andernfalls verkompliziert sich der Lesealgorithmus unnötig.

Hier die entsprechenden Stellen in Carbon 2:
Carbon 2 Oktavauswahl.png
Carbon 2 Wavetable.png
Carbon 2 Interpolation.png
Mit der Analyse von Carbon 2 kann man nichts falsch machen. Mike Daliot ist in meinen Augen ein Genie : ) Von wann ist Carbon 2? Danach hat Mike dann glaube ich NI Massive entwickelt und es würde mich nicht wundern wenn in Massive die ein oder andere Struktur von Carbon 2 integriert ist. Aber trotzdem Achtung! mithilfe von ACEW konnte ich schon 1-2 kleinere Bugs entdecken : )

PS: Den Wavetable-Builder konstruiere ich derzeit als extra Tool welches nur den Zweck erfüllen soll mir meine Wavetables zu erstellen. Aber im Prinzip kann man ihn auch in einen Synthesizer integrieren, so wie bei Absynth 5. Sowohl die FFT als auch die iFFT haben dabei eine Latenz von je 3021 Samples.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Thala
meister
Beiträge: 149
Registriert: 1. Oktober 2015, 14:36

Re: Table mittels FFT analysieren

Beitrag von Thala »

hey.
das hier ist sehr interessant.
steve duda macht den erklaerbaer :)
https://m.youtube.com/watch?t=115s&v=mg ... l=de&gl=DE
Thala
meister
Beiträge: 149
Registriert: 1. Oktober 2015, 14:36

Re: Table mittels FFT analysieren

Beitrag von Thala »

und massive ist eigentlich dafuer bekannt, dass es eine alias schleuder ist?
128bpm
synthesist
Beiträge: 58
Registriert: 26. Februar 2018, 12:23

Re: Table mittels FFT analysieren

Beitrag von 128bpm »

Oh Gott, Serum... das Teil hasse ich! Serums OSC-Phasen sind brutal verbugt... aber das ist ein anderes Thema...

Ich finde die Massive-OSCs klingen sehr sauber. Mal davon abgesehen muss man irgendwann auch den Kosten-Nutzenfaktor berücksichtigen. Die Bandbegrenzung ist bei Wavetables noch recht einfach zu realisieren und ohne späteren Rechenaufwand umzusetzen. Die Interpolation hingegen kostet nicht gerade wenig CPU. Man kann bei der Abbildung aus meinem Post ja sehen wie viele Operatoren schon für eine 4-Punkte-Interpolation nötig sind. Das wird mit mehreren Punkten nicht besser. Ich habe zwar keine Ahnung mit welcher Interpolation Massive letztendlich läuft, aber wir sind hier ja in der freien, grenzenlosen Reaktor-Welt : D

Wenn mir jemand eine 6 oder 8 Punkte-Interpolation programmieren mag, dann binde ich die vielleicht mit in den Wavetable-Builder ein.
Thala
meister
Beiträge: 149
Registriert: 1. Oktober 2015, 14:36

Re: Table mittels FFT analysieren

Beitrag von Thala »

es geht in dem video auch um tricks, die duda dort anwendet.
und wo wir schon bei wavetables sind:
https://www.native-instruments.com/de/r ... how/11879/
ist auch ein tolles system von prof dannenberg.
made by chet singer.
Benutzeravatar
herw
moderator
Beiträge: 3123
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Re: Table mittels FFT analysieren

Beitrag von herw »

Thala hat geschrieben:es geht in dem video auch um tricks, die duda dort anwendet.
und wo wir schon bei wavetables sind:
https://www.native-instruments.com/de/r ... how/11879/
ist auch ein tolles system von prof dannenberg.
made by chet singer.
ja, chet singer ist eine Klasse für sich. ::kaffee::
128bpm
synthesist
Beiträge: 58
Registriert: 26. Februar 2018, 12:23

Re: Table mittels FFT analysieren

Beitrag von 128bpm »

Thala hat geschrieben:hey.
das hier ist sehr interessant.
steve duda macht den erklaerbaer :)
https://m.youtube.com/watch?t=115s&v=mg ... l=de&gl=DE
Ok, vom Prinzip her geht der Wavetable-Builder den ich gerade programmiere in die selbe Richtung... nur das mein Wavetable-Synth am Schluss keine Phasenbugs haben wird :mrgreen:
Thala
meister
Beiträge: 149
Registriert: 1. Oktober 2015, 14:36

Re: Table mittels FFT analysieren

Beitrag von Thala »

na dann will ich dich nicht weiter aufhalten :)
hast noch genug bier um dir core schoen zu trinken? :)
Benutzeravatar
herw
moderator
Beiträge: 3123
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Re: Table mittels FFT analysieren

Beitrag von herw »

Thala hat geschrieben:na dann will ich dich nicht weiter aufhalten :)
hast noch genug bier um dir core schoen zu trinken? :)
::argh:: ::Bier::
128bpm
synthesist
Beiträge: 58
Registriert: 26. Februar 2018, 12:23

Re: Table mittels FFT analysieren

Beitrag von 128bpm »

Trinkt ihr etwa kein Bier wenn ihr mit Reaktor arbeitet? :mrgreen:
Benutzeravatar
herw
moderator
Beiträge: 3123
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Re: Table mittels FFT analysieren

Beitrag von herw »

128bpm hat geschrieben:Trinkt ihr etwa kein Bier wenn ihr mit Reaktor arbeitet? :mrgreen:
nöö, jede Menge ::kaffee::
Thala
meister
Beiträge: 149
Registriert: 1. Oktober 2015, 14:36

Re: Table mittels FFT analysieren

Beitrag von Thala »

128bpm hat geschrieben:Trinkt ihr etwa kein Bier wenn ihr mit Reaktor arbeitet? :mrgreen:
nein.
tee mit viel rohhonig!
und wenn, dann wuerde ich einen guten rum bevorzugen.
128bpm
synthesist
Beiträge: 58
Registriert: 26. Februar 2018, 12:23

Re: Table mittels FFT analysieren

Beitrag von 128bpm »

OMG... ich benutze nie wieder QuickConst... habe gerade zwei Stunden damit verbracht einen Fehler zu suchen... An einem Eingang lag versehentlich ein QuickBus mit einem Zahlenwert an, anstatt eine QuickConst. Beide sind optisch leider nicht zu unterscheiden... ><:
Quietschboy
synth doctor
Beiträge: 218
Registriert: 6. April 2011, 20:31
Wohnort: Wiesbaden

Re: Table mittels FFT analysieren

Beitrag von Quietschboy »

Ich persönlich tendiere deswegen dazu Quickbus-Namen keine alleinstehenden Zahlen zu verpassen :mrgreen:
Antworten