Synthesis Challenge

insbesondere fage ich mich gerade, warum du nicht ganz traditionell das dreieck durch die gefaltete transferfunktion mit den formanten schickst - denn das käme ja auf das gleiche raus wie umgekehrt. aber vermutlich bin ich eh grad auf dem falschen dampfer.

also das kann man machen. Entweder vereinfacht, indem man die Filterbank als Ersatz für die vollständige Impulse Response ansieht,
odert halt mit normaler Convolution mit allen Nachteilen.

Oder so wie oben. Es ist exakt das selbe wie zB das Dreieck durch einen Convolution Prozess zu schicken in dem die Impulse Response Sample für Sample abgerechnet wird.

Nur kostet es halt auf meine Weise nur noch 4 Operationen, statt zb 400 oder je nach Frequenz noch mehr.
 
Um das zu erklären, das geht nur mit einfachen Wellenformen.

Beispiel :

Ein einzelner Impulse integriert gibt eine Gerade, dh einen konstanten Wert.

Mit einem zweiten späerem Impuls kann ich den Wert dann verändern - dh ich kann ein Rechteck machen.

Die Konstante integriert ergibt eine endlose Rampe.

Ein Rechteck integriert ergibt zwei Rampen, zB eine nach oben, eine nach unten, wenn man willl.

Dh ich kann das Dreieck mit Pause differnzieren und habe dann 3 Stufen.

Die kann ich differenziern und habe dann nur noch Impulse, mit Nullen dazwischen.



Wenn ich diese Impulse mit einem komplexen Signal falten will, brauch ich also nur die Impulse rechnen und nicht die Pausen.

Wenn ich dannach wieder integrieren will, sollte das komplexe Signal vorher das Differential sein damit es nach der Integration das richtige Signal ist.

Und so kann man Convolution eben in Teilstücke zerlegen, und diese in Einzel-Impulse rückcrechnen, alles falten und dann wieder integrieren.
 
Zuletzt bearbeitet von einem Moderator:
aber die transferfunktion wird dadurch nicht kürzer, oder? wenn ich mir oben das bild mit dem cello anschaue - 7 bandpässe? - dann wirst du das sicher nicht mit 256 samples machen wollen sondern eher mit 8192.

wenn die tage mein defekter rechner ersetzt wird und ich es nicht vergesse frage ich dich nochmal danach. :)
 
Ich mach alles selbst.

Reaktor Core kann tatsächlcih nur:

+-*/ und exp und log. sowie bit shifts und dann gibt es noch eine compare funktion und einen router,
und memory.
mehr gibt es nicht.

Ich bin heute schlecht im Erklären weil ich ziemlich durch bin jetzt.

Aber es ist ganz einfach:

Die Transferfunktion, bzw eine Annäherung an das Differential davon, wird durch den Rauschgenerator erzeugt.

Und zwar weil ich ihn mit einer Seed starte, die ich vorher aus 1.3 Millionen ermittelt habe.

(ganz simpel per Correlation im Rauschen gesucht nach der Stelle die am besten passt, und die Random Seed abgeschrieben)

Alternativ kann man aber auch einfach ein Sample der Impulse Response nehmen.

Der RNG kostet halt noch weniger CPU als das Sample und ist cooler usw.

Also Sample oder RNG - ich habe das Differntial der IR, und wenn ich das zeitversetzt zweimal abziehe und dann integriere,
habe ich die Original IR mit einerm Dreieckspuls gefaltet.

So einfach.

Das Ergebnis ist exakt dasselbe wie die originale IR Sample für Sample mit den Samples des Dreiecks zu verrechnen.
 
ich vergesse immer, dass reaktor unter der patch ebene, in der du nur vektoren hast, ja noch mehr hat.

das mit dem nur-annähern habe ich vom prinzip her verstanden, kann mir aber nicht vorstellen, inwieweit das CPU sparen soll.

also bis demnächst mal in diesem kino.
 
Also es ist ganz einfach, aber ich erkläre es vielleicht morgen besser.

Der Integrationsschritt ist jedenfalls nur ein 1Pol Lowpass.

Und der RNG kostet weniger als ein Sample, weil er nicht im Speicher lesen muss und nicht schauen muss wo das Sample anfängt und aufhört.

Plus - ein Witz dabei ist das das Differnzieren das Signal immer hochpassiger macht und es sich von selbst dem Noise annähert.

Insofern ist das ein sehr gute Annäherung,

Es ist wie gesagt aus 30 Sekunden ein Ausschnitt von vielleicht 2000 wichtigen Samples - die IR ist ungefähr minumum phase,
dh das sich alles wichtige vorne abspielt und die lange Tail eigentlich nur die sehr tiefen Frequenzen schmalbandiger macht.
 
Zuletzt bearbeitet von einem Moderator:
so habe ich das verstanden, laufzeiten des filters sind jetzt praktisch chaotisch und nicht mehr so wie wenn man einen errechnet.

aber was du da übers implementieren erzählst, das ist mir alles nicht abstrakt genug.

ich benutze hier nur fertige FIR bausteine für IIR. gehört zu den dignen, die ich nicht selbst machen kann und will und daher auch nicht optimiere oder neu erfinde. :)
 
Nein - ganz und gar nicht.

Ich werde einen neuen Thread starten und das erklären.
Ich bin aber jetzt noch zu durch.

Es ist so banal einfach, daß es einfach kaum zu glauben ist.

Aber ihr habt ja die Klagnbeispiele gehört.

Es ist physically informed modelling, aber CPU effektiver als Sampling, VA, Wavetable, FM.

Und einfacher zu bedienen. Intutiver.
 
...so, dann höre ich mit dem fragen erst mal auf und trage stattdessen was bei.

ist zwar 15 jahre alt und nicht selbst erfunden, passt aber ganz gut hier dazu: der PAF.


meine paf implementation basiert mehr oder weniger auf dem pd patch von miller puckette - für max musste aber leider das ein oder andere geändert werden - und außerdem habe ich das ding modularisiert - das mache ich immer gerne mit allem, was das zulässt.

so besteht der paf generator jetzt aus 3 teilen, nämlich


dem phasen akkumulator, der ein paar andere signale zusätzlich ausgibt, die später (mehrfach) woanders gebraucht werden


paf01.png


dem carrier, der alles enthält, was nicht für die erzeugung des formanten gebraucht wird


paf02.png


und dem modulator, der für die bildung des formanten zuständig ist. nachdem ich diverse andere windows fürs waveshaping ausprobiert habe, bin ich zurück zur bell curve von miller gekommen. warum die am besten funktioniert ist mir allerdings ein rätsel.


paf03.png


die einzelteile werden dann später so wie hier zusammengesetzt. die formanten, sofern man sie mit midi notenwerten anspielen will, sind typischerweise in reiner stimmung gestimmt, und der grundton nicht.


paf04.png

und natürlich hat die modularisierung wie alles aus dem hause 110 einen grund: denn dadurch sparen wir jetzt ein bischen rechenarbeit, wenn wir mehrere formanten brauchen:


paf05.png


mit ~128 oder mehr formanten sind dann resyntheseverfahren damit möglich, so wie sie es einst an der ircam mithilfe teurer hardware gebaut hatten, und die sich von allen anderen dadurch unterscheiden, dass man mithilfe des bandbreite parameters lustige abkürzungen finden kann.


hörbeispiel 1 - erst der gleiche grundton mit sich bewegenden formanten, dann umgekehrt.
Anhang anzeigen paf01.MP3


hörbeispiel 2 - ein grundton mit 5 parallelen formanten
Anhang anzeigen paf2.MP3


hörbeispiel 3 - 5 formanten, alle bandbreiten ändern sich von 6 oktaven nach 1 oktave
Anhang anzeigen paf3.MP3


hörbeispiel 4 - eine kleine klickklak sequenz mit 10 attractors, die alle formantfrequenzen und bandbreiten modulieren.
Anhang anzeigen paf4.MP3
 
Zuletzt bearbeitet:

Similar threads

elabtronx
Antworten
17
Aufrufe
1K
Synth
Synth


Neueste Beiträge

News

Zurück
Oben