Synthesis Challenge

Bezüglich Gesamtklang eines Streichorchesters gab es in der Vergangenheit schon genügend Ansätze bei den Stringmachines, über LFO-modulierte Delaylines dem Gesamtklang durch Schwebungen nahezukommen. Ich habe ja diesbezüglich meine Experimente mit FX2 bereits realisiert. Ein für mich neuer Ansatz wäre es, die individuellen Vibrati der einzelnen Streicher in das Synthesemodell von vorneherein einzubinden. Dazu kam mir die Idee, ausgehend von einer Vibrato-Frequenz von 5Hz diese im Zeitverlauf in unterschiedlichen Abständen zu variieren und das für jede virtuelle Geige jeweils individuell. Dazu habe ich aus einem rosa-Rauschen per Sample&Hold-Modul in unterschiedlichen Abständen Steuersignale abgeleitet, mit denen der jeweilige für das Vibrato zuständige LFO moduliert wird, sodass dessen Schwingungsfrequenz sich innerhalb sinnvoller Grenzen in variierenden Zeitabständen ändert. Zugegeben: die nachgeschalteten individuell parametrierten Bandpässe sind bezüglich Nachbildung der Resonanzeigenschaften der jeweiligen Geige wirklich nur als Krücke zu betrachten. Dennoch: Zur Begutachtung der auf diese Weise erzeugten orchestralen Schwebungen reicht das FX2-Patch allemal. Natürlich habe ich alles wieder zweikanalig aufgebaut, sodass der Sound "in statu nascendi" schon stereophon ist:

Anhang anzeigen Violin-Orchestra V1.1.WAV

1650261796895.png

Wenn man jetzt an den Parametern, die die Variabilität der Einzelvibrati bedingen herumspielt, lassen sich die daraus resultierenden Schwebungen beeinflussen und somit wäre auch der Gesamtcharakter der Streichergruppe veränderbar...
 
Zuletzt bearbeitet:
Ich versuch grad ganz verschiedene Ansätze.

Der hier:
3 Pulse Oszis per Stimme, Links, Mitte, Rechts,
per Random Drift Links und Rechts wenige Cents verstimmt (jeweils gleich aber in die andere Richtung)

Plusweiten Moudlation:
Links immer umgekehrt wie Rechts, reziprok moduliert (von 1/9 - 1/11)
Mitte auch von 1/9-1/11 aber die Modulationsfrequenz ist im goldenen Schnitt, aussen 0.618 Hz und Mitte 0.382 Hz
(für alle Stimmen gleich)
Vibrato ist auch mono für alle Stimmen, aber individuell per Hüllkurve in der Tiefe.

Ausserdem wird der linke Kanal 1 Pol Hochpass Rechts reingemsicht und der rechte Hochpass Links

7 Bandpass Filter am Ende sind vorläufig und nach Gefühl gestimmt, ähnlich aber anders als bei den Strings vorher
und teilweise Hoch- bzw Tiefpass statt Bandpass

Anhang anzeigen ens 6 b3.mp3

Interessant ist dass man die PWM auch bei größerer Tiefe weil sie gegenläufig ist und im Goldnene Scxhnitt kaum direkt wahrnimmt.
Ich hatte Tiefen moduliert von 1/2 bis 1/12, klingt dann eher gemischt nach Blechbläsern und Streichern.

Eine Idee die ich hatte war ganz unterschiedliche Klangfarben (Stricher, Blech, Wind, Percussion)
mit dem selben Osziset zu machen und dann auf die Stimmen nach Tonhöhe zu verteilen..
 
Was ich denke und eben oben gemacht habe ist, daß man unterscheiden muss zwischen Vibrato das der Musiker gezielt einsetzt und das
musikalisch ist, dh weitgehend in Takt und Rhythmus und damit fast gleich für alle,
und zufälliger minimaler Verstimmung einzelner Instrumente für den Chorus Effekt - das mach ich mit der gegenläufigen Random Drift
und PWM un das ist auch unterschidlich für alle Stimmen.
 
Und hier noch ein Experiment:
Pulswelle, von der ein phasengleicher Sinus vom Grundton abgezogen wird so daß (fast) kein Grundton zu hören ist,
gemischt mit einer Pulswelle in der gleichen Art mit 3-facher Frequenz (die fehlende Harmonische ergänzt)
licht verstimmt per Random Drift, und Lowpass gefiltert.

Gibt einen interssanten glockenähnlichen Klang
Anhang anzeigen missing F.mp3
 
Und hier noch ein Experiment:
Pulswelle, von der ein phasengleicher Sinus vom Grundton abgezogen wird so daß (fast) kein Grundton zu hören ist,
gemischt mit einer Pulswelle in der gleichen Art mit 3-facher Frequenz (die fehlende Harmonische ergänzt)
licht verstimmt per Random Drift, und Lowpass gefiltert.

Gibt einen interssanten glockenähnlichen Klang
Anhang anzeigen 136944
Du lässt Deine letzten Beispiele aber auch in einer ziemlichen Hallfahne schwimmen. Das hübscht natürlich jeden Sound auf, erschwert aber die Beurteilung eines Syntheseprinzips, weil bereits durch den Hall ja gewisse Schwebungen erzeugt werden könn(t)en. Unter diesen Bedingungen lassen sich Syntheseprizip-bedingte Schwebungen eben nicht ganz objektiv beurteilen. Insofern würde ich den Hall auf dem Weg zum Ziel "Orchestersound" vielleicht erst ganz zum Schluss als Sahnehäubchen einsetzen. Ansonsten gefällt mir vor allem das letzte Beispiel. Die Subtraktion eines phasengleichen Sinustons vom eigentlichen Oszillator zur Gewinnung der reinen Obertöne finde ich äußerst spannend. Danke für die Anregung!

Überhaupt kann ich mit FX2 mit dem eigentlichen Oszillatormodul nur wenige Grundwellenformen anwählen. Die freie Definition von Wellenformen geht da nur über Tricks, wie z.B. eine gecycelte Hüllkurve, die durch beliebig viele Stützpunkte zwar frei definierbar ist, aber prinzipbedingt sich nur oberhalb der Null-Linie abspielt, was einem überlagerten DC-Anteil gleichkommt. Den bekomme ich aber elegant weggerechnet durch Subtraktion einer horizontalen Line auf exakt 50% Level. Im Ergebnis verschiebt sich dadurch die Klangwelle so nach unten, dass sie wieder schön symmetrisch um die Zeitachse gleich weit in den negativen, wie positiven Bereich schwingt. Weiteres Manko bei FX2 sind die Filter, die per se nicht resonanzfähig sind, sondern nur durch entsprechende Rückkopplungstricks zur Resonanz gebracht werden können. Ich habe aber im Laufe der Jahre gelernt, mit diesen Einschränkungen zu leben und workarounds zu entwickeln. Mit Plogue-Bidule und anderen ähnlichen modularen Systemen bin ich nie richtig warm geworden und letztlich immer zu meinem guten, alten FX2 zurückgekehrt... ;-)
 
Ja das stimmt, der Hall ist Selbstbetrug und auch wenig aussagekräftig.

Andererseits klingt ein Orchesterinstrument schalltot aufgenommen auch nicht sehr gut.

Man bräuchte wohl beides immer.

Wenn FX2 einen 1-Pol Lowpass hat kann man eigentlich theoretisch auch Synthfilter bauen.

Muss jetzt aber auch ein bisschen raus gehen,.

Hier noch kurz
ein Test (mit viel Hall). sind die selben Oszis wie im letzten Beispiel mit einem Puaken und einem Beckensound gemischt,
je aus 3 Square Oszis die addiert (Pauke) oder ringmoudliert werden (Becken) und dann durch ein Lowpass (Pauke) und Highpass (Becken gehen)
Die haben ne andere Hüllkurve als die Strings.
Am Ende geht alles durch die Bandpassfilterbank.
Anhang anzeigen orche test.mp3

Die ganzen Details dann und trockener Sound wenns fertig ist-
 
Nochmal zu dem ausgelöschtem Grundton, hier der Versuch damit einen Klavierklang zu machen

2 Pulsoszillatoren normal, PW ~ 1/8, normal gestimmt

1 Pulseoszillator (fast) ohne Grundton, PW 50:50, eine Oktave tiefer gestimmt (aber der Ton fehlt ja)

1 Pulseoszillator (fast) ohne Grundton, PW 50:50, 3-fach höher gestimmt (in Hz)

alle Oszis leicht verstimmt und mit HP/LP und Mtten stereofiziert, die "normalen" auch mit Drift und minimalst Vibrato liegt auch drauf

Erst der Klang dry [ dh mit ganz wenig Filterbank - die lässt sich im Moment nicht gnaz rausdrehen ]
dann mit Filterbank reingedreht und dann mit Hall dazu

klippt leider etwas

am Schluss wird die Filterbank manipuliert (höher/tiefer) und ein paar Parameter wild verstellt

 

Anhänge

  • pionoid test 2.mp3
    1,2 MB
Becken und Kesseldrum mach ich jetzt so

4 Square Wave Oszis + Noise ringmoduliert, die genaue Struktur:

tympani and cymbals.jpg

die Addierer nach den Pulse Oszis sind deswegen da weil mein Oszi von -0.5 bis 0.5 geht,
F0 ist die Gurndfrequenz, die anderen Oszis werden nach Obertonschema von Drums ( der erste ) bzw Cymbal (die anderen beiden) getuned und auf Primfaktoren gerunded damit das Noise möglichst ohne Muster ist.

Das geht dann "normal" in einen Synthfilter der per Envelope gesteuert ist und in Amp mit Envelope.

Das Noise(rectified) ist nur im "unteren" Teil des Spektrums reinmodliert, der für Ketteldrumsounds gut ist, im oberen Teil
ist es mehr inharmionische Obertöne durch RM, gut für Becken usw, Gongs

Die Frequenzfaktoren sind im Moment
1
1.5683
2.0089
4.0639

und so hört es sich zB an, beim Rumschrauben mit und ohne Hall (ganz bisschen Formant-Post-Filterbank ist auch hier mit drin)
Versuch von Kettle zu ner Art Becken zu kommen
Anhang anzeigen tympani 1.mp3

EDIT: und die Oszis werden bei Note On resettet damit alle in Phase starten und es mehr Attack gibt
 
Hier mal Musik, mit dem Piano Patch und Automation auf der Filterbank (die Filterfrequenzen werden einfach pitchweise gemeinsam verschoben)
das ganze noch mit Effekten eingedeckt... sind nur 2 Akkorde, klingt für mich super gut, kann man stundenlang anhören...:

 

Anhänge

  • drfiting.mp3
    4,7 MB
Mit dem Dreieckspulseoszillator geht übrigens auch ein hervoragendes Klavier:

wieder die mono Filterbank mit 7 Filtern und pro Stimme:

2 Oszillatoren (+- 0.1 Hz), mit Note On gesynct
1 Envelope

Kein Filter - der Klangverlauf und Velocity Effekt entsteht nur durch die Modulation der Pulsbreite

leichter Hall ist drauf.

Anhang anzeigen tripulse piano test 1.mp3

Sehr organisches und recht natürlichs Abklingverhalten finde ich, kenne ich sonst nur von Physical Modeling.

Die Filterbank ist übrigens nur nach Gehör eingestellt.
 
Die Strings gehen auch hervoragend finde ich:

1 Oscillator
1 Envelope
1 LFO

Mono Filterbank

Die Höhen klingen besser, evtl auch weil in der Filterbank die ganz tiefen Bänder fehlen

Anhang anzeigen tripulse strings test.mp3

Zum Anhören für dritte ist das jetzt wahrscheinlich dasselbe wie letzte Woche in grün...
aber ich bin vollkommen fasziniert weil es erstens besser klingt finde ich und zweitens sehr viel weniger Aufwand und viel schlichter ist.

Es wird einfach nur 1 einzelner Parameter moduliert, die Pulsebreite es gibt kkeinen Filter pro Stimme, nur die Formantbank.

Das ist ziemlich der Sound den ich suche auch.

Bei "Klaviersound" finde ich auch interessant wie sich der Klang entwickelt am Anfang
und das hängt glaube ich in allen Fällen auch damit zusammen daß die Phasenlage der Obertöne in der Wellenform der Physik entspricht,
und das auch bei Veränderungen, und das höert man tatsächlich.


Auch interessant ist daß beide Parameter dh beide Flanken nur in relativ engen Grenzen authentisch klingen.

Und daß man aber nur einen von beiden ändern muss vür die Klangdynamik.
 
So klingt der Oszillator übrigens zB als ne Art Klavier ohne die Filterbank, mit nur einem statischem mono 3-Pol Lowpass für die Summe
den man auch weglassen kann weil die Cutoff sehr nah am Brickwall Ende der Wellenform ist.

Ein Trick hier ist, daß die beiden Oszillatoren gar nicht auf den selben Ton gestimmt sind sondern einer auf die reine Quinte
dh 3te Harmonische.

Hört man aber gar nicht als Power Akkord sondern als eine Note und Klang obwohl noch eine Schwebung von 0.4 Hz drin ist.

Und zwar weil beide Oszis das selbe Spektrum haben, vermute ich, dh die selben Formanten usw.

Hat einen eignen Reiz finde ich und erinnert an Casio.
Anhang anzeigen pulse piano no fb.wav
 
Ich hab an den Strings weiter gemacht.
Ist jetzt ne andere spezielle Wellenform:

Anhang anzeigen 136825
wie man die analog machen würde bin ich nicht ganz sicher, eigentlich müsste das mit RM / AM
und Pulse und Sägezahn gehen
wenn die Wellen unipolar sind, und dann durch einen DC Blocker bzw Highpass.

Die Filter sind jetzt alle gleich laut und ohne dry Signal.

Ist 2 Oszis für Stereo, Frequenz mit Random moduliert und 4-fach unison. (dh also 8 -fach)

mal mit wenig Detune und wenig Hall, mal mit viel von beidem:


Das finde ich in den tiefen Lagen sehr gelungen. Wenn Du das mit einem passenden Resonanzfilter kombinierst, das die Korpusresonanzen einer Bratsche oder eines Cellos liefert, dann bist Du schon sehr nah dran.
 
Ich denke das ging schon durch die Filterbank, mit Frequenzen vom Cello.
Diesen hier denke ich:

Modes-of-cello-tailpiece-strings-and-range-frequency-of-the-body-cello-modes-Amplitude.ppm.png

Inzwischen nutze ich die ohne individuelle Wichtung, einfach alle mit der selben Q/Resonanz und Level.


Aber jedenfalls - inzwischen bin ich Fan von dem Pulse-Dreieck Oszillator aus dem Variophon auf den @Area88 mich im Saxophonthread aufmerksam gemacht hat.

Den Oszi von oben nutze ich wohl nicht mehr, nur das gesynchte Noise ist weiter eine Überlegung wert.

Da such ich nach ner Idee wie man das ohne Filter dynamisch Tiefpass bekommt.

Ich werde jednefalls wohl das ganze Projekt umbauen und nur noch diesen Oszillator verwenden.
 
Hehe - ich hab statt zu schlafen ne neue supereffiziente Wellenform Synthese erfunden...

Es fehlt noch ein griffiger Name dafür, ich nenns mal Stochastischer Determinismus oder so.

EDIT
NEUES DEMO - klingt erstaunlich - keine Wavetbales, keine Samples, nur Noise und DreiecksPuls + EQ/Filterbank



Und zwar ist das ein gesynchter Zufallsgenerator, wie weiter oben schon bei den Strings, aber mit ganz spezieller Random Seed:

ich hab aus 10 Sekunden Noise per Correlation die Stelle gesucht die einem Zielsample
- 50 ms aus der Impulse Response eines Klaviers - am ähnlichsten ist.
Und dann die Random Seed ermittelt mit der der Zufallsgenerator diese kurze Zufallsequenz ausgibt
die zufällig das Spektrum des Klaviersamples hat.

EDIT

Hier das gleiche mit dem Zielsound Cello-Impulsresponse

Ist echt erstaunlich, nur das Noise:



In diesem Fall hört man nur das Noise, mit Parabolfenster und einem statischem Lowpass Filter - dh KEINE Filterbank. Kein Dreiecksoszi.

Leider aliast es ein bisschen noch


EDIT II

nochmal in schön mit Dreickspuls, Filterbank und anti-aliased

 

Anhänge

  • rnd sequence synthesis demo 3.wav
    8,7 MB
  • rnd sequence synthesis demo 4.wav
    2,4 MB
  • rnd sequence synthesis demo 4b.wav
    3,3 MB
Zuletzt bearbeitet von einem Moderator:
Für Mathe-Fans:

es ist die Folge

y' = ( y*1103515245 + 12345 ) MOD (2^32)

glaube ich, periodisch wiederholt,

mit y0 = 1128571440 für "Klavier" und y0 = 1153782756 für "Cello"

Die Sequenzen tauchen bei ungefähr 2.53 * 44 100 bzw 6.65 * 44 100 Iteration auf...


EDIT:

wie man so eine Funktion. die ja nur diskrete Werte und keine Zwischenwerte kennt antialiasen kann:

1. man ermittelt die sub-Sample Zeit und interpoliert linear zwischen zwei diskreten Werten
und zwar so:
wenn die synchenden Phasenrampe von 0..bis 1 geht, dann ist die Subsamplezeit
der Wert der Phase nach dem Sprung geteilt durch den Phasenschritt per Sample

dh ist dieser Wert 1 (das ist er natürlich nie) handelt es sich bereits um das nächste Sample
ist er 0 handelt es sich um dieses Sample, und alles dazwischen ist die Interplation zwischen beiden Werten

2. die Noise Sequenz ist nicht periodisch, und das ist eine weiter Quelle für Aliasing:
dh das erste und das letzte Sample müssen so interpoliert werden als ob die Sequenz periodisch wäre
und nach dem letzen Wert wieder der erste käme
 
Zuletzt bearbeitet von einem Moderator:
Der Synth wäre technisch wie von der Bedienung etwa so komplex wie ein Juno, (etwas aufwändiger,
aber hat ja keinen Filter pro Voice dafür) und auch mit (ähnlicher) Technik von damals realiserbar.

synth.jpg

Und hier nochmal die Palette an verblüffenden Sounds die damit möglich sind (warum das Piano rauscht weiß ich grad nicht
war evtl nicht die letzte Version in dem Take).
Ist jetzt nichts neues mehr dabei aber so am Stück nochmal hörenswert:



Dank nochmal an @Area88 für den Hinweis auf das Variophon bzw den Pulse-Dreieck Oszillator.

Das und die speziellen Random Seeds für den Zufallsgenerator machen den Sound.

Falls jemand da ein Produkt draus machen will, für Beratung -> PM oder hier fragen.

Danke für Ihre Aufmerksamkeit.




EDIT:
einer geht noch: Random Seed 1928321870 ~= Clavichord Soundbox
Anhang anzeigen clavi_01.mp3
Kleiner Pitch Shift durch die Envelope ist da eingebaut, aber auch ohne: klingt nach physical modeling. Plastisch


EDIT II
und noch ein Proof of Concept: "rate der Instrument"
Random Seed -633827548
Anhang anzeigen guit hummingbird_01.mp3
 

Anhänge

  • DEMO Ultimat.mp3
    5,1 MB
Zuletzt bearbeitet von einem Moderator:
synth valotti paradigma ultimat.jpg
 

Anhänge

  • popvox.mp3
    192,6 KB
Es wird noch besser.

Das Folgende ist eigentlich ein Fall für ein Patent - ich habe aber nicht mehr den Nerv, die Zeit und das Geld für noch ein Patent.

Deswegen hier als Sperrveröffentlichung, Public Domain:

1. Man kann die Impulse Response des Instruments effizient durch eine rekursive "Zufalls" Funktion mit geeigneten Startkonditionen annäheren.

Effizienter als mit Samples.

Soweit so gut.

2. Uanbhängig davon ob man ein Sample oder eine Funktion benutzt, physikalisch korrekt wäre es, zB im Fall des Klavierklangs,
diese Impulse Response mit dem veränderlichem Tri-Pulse zu falten, dh Convolution.

Das kostet normalerweise ein paar hunderte Rechenschritte pro Sample Tick.

Hundertaussende pro Sekunde.

3. Es gibt jedoch eine super effiziente Abkürzung:

Die Ableitung des Tri-Puls ist eine 3-stufige Pulsefunktion.

Dh der Tri-Puls lässt sich aus zwei Pulswellen mit anschließender Integration bilden (so mache ich das).

Die Ableitung der Pulswellen sind Doppelimpulsfolgen mit unterschiedlichen Vorzeichen.

Dh die Pulswellen ließen sich durch Integration zweier Impulse erzeugen.


Die Faltung (Convolutiion) mit einem Impuls ist aber nur noch eine einzelne Multiplikation.

Folglich lässt sich die zweite Ableitung der Impulse Response mit wenigen Multiplikatiionen und Additionen mit der zweiten Ableitung des veränderlichen Tri-Pulses falten.

Durch zweimalige Integration erhält man dann die Faltung der Response mit dem TriPulse, die sonst hunderte an Rechenschritten kosten würde.

In der Praxis zieht man einfach den Oszillator oder Generator mit der (Ableitung der) Impulse Response phasenversetzt von sich selbst ab
und integriert mit einem Intergrator mit exponentiellem Fenster, dh einfach einem 1-Pol-Lowpass Filter.

Mehrfaches integrieren kann in der Praxis problematisch sein, deswegen sollte man sich uU auf nur eine Ableitung beschränken.

Dann braucht man nur 2 Multiplkationen und zwei Additionen und einen 1 Pol Lowpass. um die Impulse Response mit der veränderlichen Dreickspulsewelle zu falten.


Und so klingt ein erster Test:

Das tolle und erstaunliche ist, durch die Faltung mit der sich ändernden Dreickspulswelle kommt es nicht nur zu einem Lowpass Effekt,
sondern daducrh bedingt auch zu Phasenverschiebungen von Oberwellen, was in kleinen Grenzen minimal inharmonsichn dh wandernden Obertönen entspricht.

Die Wellenform "bewegt sich in sich" ein bisschen und der Klang ist sehr organisch.

NB es handelt sich nur um einen Oszillator, die falsche (nicht abgeleitetet und nicht gematchte) Impulse Response
und es kommt noch zu Aliasing im Oszillator.

Dennoch ist der Ansatz sehr vielversprechend, und nochmal eine Verbesserung gegenüber dem DreicksOszillator ohne Falrung.



NB das ist oihne Filterbank, und ohne veränderlichen Filter, die Filterung ist die Faltung (Convolution) mit dem Dreieckspuls.

Besser hört man es hier:

Anhang anzeigen realtime pulse convolution II stage_.mp3
 

Anhänge

  • realtime pulse convolution.wav
    6,1 MB
Zuletzt bearbeitet von einem Moderator:
Noch ein Demo, man bekommt einen etwas besseren Eindruck:




es hat noch jede Menge Schwächen, bitte bedenken:

1. es sind eigentlich die falschen Responses, weil man jetzt die Ableitung braucht

2. es rumpekt und knackst noch wegen der doppelten Integration und DC offset bei Oszillator-Reset / neuer Note

3. es ist supereffiziente Echtzeitconvolution mit einer recht komplexen Filterfunktion (dem Spektrum des Dreieck-Puls Oszillators, bzw der Impulse Response des Instruments)

4. es ist deutlich effizienter als: Wavetables, Virtual Analog, Physical Modeling - ich bekomme auf meinem i5 über 160 Stimmen raus plus Hall

5. es ist neu, und noch in Entwicklung


Ich finde es klingt nochmal besser in bestimmten Aspekten - oder?

Komplexere Evolution des Spektrums. -?

andererseits ist irgend ein Hochpass Effekt im Spiel der es grade etwas dünn klingen lässt
 

Anhänge

  • realtime pulse convolution DEMO.mp3
    673,7 KB
sorry daß das jetzt zum Monolog ausgeratet ist statt zum Gemeinschaftsthread wie ich es gedacht hatte


Aber - die Technik funktioniert - und ich bin vollkommen absorbiert davon

ich bekomme auf meinem i5 über 160 Stimmen raus plus Hall
Ich bekomme offenbar sogar 256 Stimmen raus.

Das foilgende ist jetzt NUR das Noise, mit Echtzeitconvolution mit der Dreieckspulswelle.

Keine Filterbank, zum Testen wie es klingt.



Ein statischer LP liegt drauf, weil die Noisesequenz ja eigentlich "white" ist, bzw sein soll
dh sie hat zwar ein ähnliches Spektrum wie das Zielspektrum, ist aber insgesamt gesehen spektral flach.

Und zwar ist jetzt das Zielspektrum in dem Fall die Ableitung der Impulsresponse, weil es ja dannach noch mal integriert wird.

Und der DC offset ist dabei größtenteils dann weg wie es scheint (waren noch andere Fehler drin allerdings)

Allerdings wie man auch hört aliast es extrem in den oberen Lagen

Das liegt teilweise daran daß ein Dreiecksfenster drauf liegen muss, und das aliast für sich schon wenn man es zu hoch abspielt.

Ein Paraboldfenster würde wieder DC Offset einführen und ein anderes Fenster wäre zu teuer CPU massig

Leider kann mans nicht einfach mit ner hoheren Rate laufen lassen - denn dann ist ja die Noisesequenz doppelt so schnell und stimmt nicht mehr mit deem Zielspektrum überein.
 

Anhänge

  • realtime pulse convolution III OK_01.mp3
    461,6 KB
Ich habs geknackt.

Das Anti-Aliasing war falsch.

Ist jetzt auch immer noch nur linear interpoliert, aber beim Sprung wird mit einer parabolischen 2 Sample Transition gefenstert.

Dh auch daß man sonst kein Fenster braucht, was u.a. den Vorteil hat daß der Teil der Response der am wichtigsten ist nicht ausgefadet wird, und auch die Berechnungen nochmal reduziert.

Höhere Interpolation klingt etwas besser aber dann ist der Vorteil gegenüber einem Sample nicht mehr so groß.

Hier jetzt zuerst ganz ohne jeden Filter, und dann nur mit einem statischem 4 Pol LP.

Das Spektrum wird so gut abgebildet daß man die Filterbank evtl gar nicht mehr braucht und ein Lowpass oder einfacher EQ reichen könnte.

Die Noise Seed wurde aus ca 1.3 Millionen Kandidaten ausgewählt.




Man könnte jetzt Sequenzen von 2 Seeds parallel laufen lassen, kostet dann immer noch weniger als eine Wavetable.

Reicht aber wie es ist glaube ich.

EDIT:

Cello und Piano - ohne Filterbank, nur statischer LP

 

Anhänge

  • realtime pulse convolution IV linear AA_01.mp3
    971,4 KB
  • realtime pulse convolution V.mp3
    564,3 KB
Zuletzt bearbeitet von einem Moderator:
ich glaube zwar nicht, dass ich das ohne rückfragen lesen und vermaxen kann, aber vielleicht kannst du das reaktor patch des kernels mal als foto posten.
deine beschreibung in worten vestehe ich nämlich nicht.
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.

die #55 ist hübsch. ein instrumand aus einem fernen land.
 
Zuletzt bearbeitet:
Ja wollte ich im Moment machen.

Das hier ist der Kern, ein Oszilaltor von 2, die das selbe Spektrum aber minimal unterschiedliche Partials machen:
core.jpg

links 3 gesyncte Random Generatoren, die Sync Quelle ist ein Rampen Oscillator, mit 3 versetzen Phasen

Wenn man die RNGs durch Pulswellen mit entsprechenden Breiten ersetzt erhält man eine Dreicks-Puls Welle mikt variabler Anstiegs, Abstiegs und Ruhephase.

Die RNG sind anti-aliast (mehr dazu später) und erzeugenn das Diffential der Impulse Response eines Instruments.

In der Anordnung oben erzeugen sie die Convolution von Dreiekcspuls und Impulse Response.

Der Dreieckspuls ist die Excitation für das Modell, also zB die Blattschwingung beim Saxophon, oder der Hammerimpuls
beim Klavier.

(Der "Resonator" ist in dem Fall das periodische Retriggern der ganze Geschichte.)
 
Der RNG Kern:
RNG Core.jpg

Die eckigen Ports sind Integer. Die runden Float. Der Ausgang oben ist der Wert mit dem der nächste Wert gerechnet wird,
der untere ist der Randomwert zwischen -1 und 1.

Von deisen werden pro sample 2 berechnet, und zwischen beiden linear interpoliert.

Die Interpolation ist die Zeit zwischen Samples die so ermittelt wird:

sagen wir der Einfachheit halber der Rampenosci geht von 0...1

wenn er umspringt, ist das erste Sample dann eine Zahl zwischen 0 und F/SR. (dem Schritt per Sample)

diese Zahl geteilt durch F/SR ist dann die Subsamplezeit, damit interpoliert man zwischen den zwei aufenander folgenden RNG Werten.


Ist der Zyklus am Ende, muss ich den RNG kurz weiter laufen lassen und einen neuen starten, und beide zB mit einer Parabelkurve
kurz überblenden, um den Sprung auch zu antialiasen.
2 Samples reichen mir, ist aber noch als Aliasing hörbar.
 

Similar threads

elabtronx
Antworten
17
Aufrufe
1K
Synth
Synth


Neueste Beiträge

News

Zurück
Oben