Begriffsfindung: "Sympartial"?

Dieses Thema im Forum "Sounds / Synthese" wurde erstellt von flowdy, 21. Oktober 2018.

  1. flowdy

    flowdy ..

    Hallo,

    imeine Lieblingsart mir Dinge anzueignen ist die umständliche, nämlich das Rad neu zu erfinden, und dann sich fragen, ob ich das Ding "Dar" nenne oder "Bumsdings". Erst Theorie anlesen, sich ein bisschen von anderen Projekten inspirieren, dann Ärmel hochkrempeln, tüfteln, sich über die absurdesten Probleme die Haare ausreißen, sie idealerweise lösen und irgendwann stolz davor stehen mit der Gewissheit was neues erfunden zu haben, dann irgendwann erkennen, dass das gar nicht so neu ist, was man eher hätte sehen können, wenn ich ein bisschen mehr hätte von anderen Projekten inspirieren lassen, aber nein, dazu hat der Herr ja keine Zeit, muss man sich halt von anderen bloßstellen lassen, aber jeder braucht seinen Kick.
    Wie auch immer, soweit bin ich noch nicht. Ich baue gerade noch was selber, einen "Text to Sound&Music"-Synthesizer mit einer eigenen Audiodefinitionssprache, und überlege dann, wie ich das Kind nennen soll, oder Teile davon, ich meine, ob das da noch ein "Bein" ist oder das schon eher in Richtung "Tentakel" geht. Also, nur mal um die Art meines Problems zu skizzieren.

    Also ...

    Ein Sympartial sei grob zusammengefasst eine Komponente eines komplexen Tons/Klangs, ist aber ne Ordnung höher als ein Harmonischer oder ein Teilton und sollte daher einen eigenen Begriff haben. Wie aber auch einem Teilton wird in der additiven Synthese der Komponente ein Faktor der Sollfrequenz zugewiesen sowie eine relative Maximalamplitude, wie das eben bei der AS so üblich ist. Das sind die "äußeren Eigenschaften", wie man sie mit der Wald-und-Wiesen-DFT ermitteln kann.

    Der Sympartial hat aber auch Eigenschaften, bei der die DFT nicht weiterhilft, die Ergebnisse verfälscht und auch Wavelets zu ungenau sind, als sie irgendwas erhellendes aus ihnen ableiten ließen.

    • Schwingweise, also im Prinzip Oszillatorprimitive, die auf einer einfachen mathematischen Formel beruht. Meistens Sinus, es gibt aber auch Sägezahn, Rechteck, Dreieck und ein paar zufallsbasierte für Geräusche. Meist ist es aber Sinus. Selbst bei der Geigenimitation benutze ich keine Sägezahnschwingung, weil ich dann die Klangfarbe nicht mehr so gut beeinflussen kann. In der Natur gibt es nur Sinus, die anderen Primitive sind nur Vereinfachungen.
    • Die "AS(B)R"-Hüllkurve, eigentlich eine Gruppe von mehreren unabhängigen Eigenschaften, die eine Attackphase, eine quasistationäre Schwingphase – oft betrachtet man den ersten Teil direkt im Anschluss nach den im Attack aufgebauten Maximum als Decay, der dann in den Sustain übergeht; da ich eh mit Bèzierkurven arbeite, die bei Bedarf auch scharfe Ecken unterstützen, ist eine solche begriffliche Trennung wenig sinnvoll –, und eine Releasephase umfasst. Außerdem gibt es zwischen Sustain- und Release noch eine optionale Boostphase, die hab ich mal programmiert in Vorausschau auf mögliche Sprachsynthesestudien, in dem ein Klang einer Silbe entspricht, aber bisher noch nicht getestet. Wenn also "ADSR" die üblichere Bezeichnung ist, meint das das gleiche, aber nicht dasselbe.
    • Amplitudenmodulation, Modulationsfrequenz kann statisch sein oder sich auch linear zur Komponentenfrequenz verhalten
    • Frequenzmodulation, ditto. Amplituden- und Frequenzmodulation haben viele vergleichbare Eigenschaften, denn sie basieren auf dem gleichen Prinzip.
    • Waveshape, Bézierkurve auf der Projektionsebene, die orthogonal zur y-Achse der Trägerschwingung ist und die Faktorentwicklung zwischen ihrem positiven und negativen Amplitudenmaximum beschreibt. Filter in der subtraktiven Synthese basieren oft auf Waveshaping, wo es sich aber m.W. nicht um Bézierkurven, sondern um polygone Linienverläufe handelt.
    • Frequenzvariation (Bézierkurve) fügt der äußeren Eigenschaft "Frequenzfaktor" Veränderlichkeit hinzu. Sollte sich im ein- bis niedrigeren zweistelligen Centbereich (1ct = 1/1200 einer Oktave auf der logarithmischen Skala) herum bewegen, je höher, desto wahrscheinlicher nimmt man Schwebungen oder gar verschiedene Töne wahr, und das beeinträchtigt den Wohlklang. Solche geringen Variationen, das verspreche ich mir davon jedenfalls, muss ich noch ausgiebiger testen, machen den Klang natürlicher. Stellt man sich den Klang räumlich schematisiert vor über die drei Achsen der Zeit, der Frequenzen und der Amplitude, so können sich sozusagen leicht "schräge" Verläufe in der Ebene ergeben, die von der Zeit- und der Frequenzachse aufgespannt wird.

    "Sympartial" halte ich für einen passablen Begriff. "syn" ist eine Vorsilbe gr. Ursprungs und bedeutet sowas wie "zusammen-", und Partial ist die Teiltonkomponente, der gleiche Begriff, wie er besonders in der Akustik des Klaviers und anderer perkussiver Instrumente verwendet werden, wo es keine Harmonische gibt. Ein Sympartial kann also eigenständig einen komplexen Klang hervorbringen, dem man wegen seiner relativen Statik allerdings immer einen synthetischen Ursprung nachweisen kann, er kann aber genauso gut ein einfacher Teilton sein.

    Die Begriffskritik sei eröffnet. Hilft mir hoffentlich, halbwegs verständlich beschreiben zu können, vor anderen Leuten der Tonbranche, was ich hier mache.
     
    suomynona gefällt das.
  2. blauton

    blauton 6 von 5

    ich verstehs nicht ganz, obwohl oder weil ich Audio DSP Entwickler bin ...

    Das verstehe ich allerdings gut:

    Ich hab mal für ne Firma ne Liste von Eigenschaften gemacht die einen Klang beschreiben
    und klassifizieren kann. Hab ich aber nicht parat, muss ich erst suchen.
    Vorlage waren aber eher klassische Sounds.

    Ich denke du gehst eher von der Synthese aus, ich würde aber eher erstmal vom Klang ausgehen.

    AM / FM würde ich statt dessen zB als Partialspektrum - also wie die Partials
    gespaced sind, und spektrale Hüllkurve beschreiben.
    Ob man das dann per AM/FM oder additiv oder anders erzeugt wäre dann erst der zweite Schritt.

    Ein anderer Begriff für Dich wäre vielleicht Grain (Wavelet würde ich vermeiden, weil "Wavelet" auch und eigentlich
    die Filterfunktion beschreibt, und ein Band aus einer Wavelettransformation ist eine Überlagerung von
    diesen Filterfunktionen), vielleicht sind es "Spectral Grains" die Du erzeugen willst?
    Wenn sie zeitlich und im Spektrum begrenzt sind, würde es passen.
    Oder Klangmolekül?

    Einen Klang in komplexere spektrale Einheiten zu zerlegen (simultan) als Partials halte ich eher für nen falschen Weg,
    obwohl man auch per FM zB Gruppen von Partials erzeugen kann, die dann zusammen den Klang ergeben
    (und das wird ja auch so gemacht im Soundesign).

    Anders sieht es aus den Klang zeitlich in Einheiten zu zerlegen, da ist
    FM/AM aber nicht so toll weil unterschiedliche FM Ratios ja zb keinen guten Klangeverlauf ergeben.
    Glaube ich zumindest, weil es ganz andere Partialabstände sind, und es auch
    keinen glatten Verlauf von einem Zeitpunkt zum anderen für ein Partial gibt.


    Filter in der subtraktiven Synthese beruhen nicht auf Waveshaping...
    Oder ich versteh dich nicht, kann auch sein.
    Die beruhen darauf, daß je nach Betrachtungsweise sich Phasen wegen Phasenverzug auslöschen bzw
    Frequenzen wegen Integration der Welle gedämpft werden - beides ist dasselbe anders betrachtet.

    Waveshaping macht ja genau das Gegenteil wie ein Filter, es erzeugt neue Frequenzen.

    Es gibt allerdings Synths bei denen das die Methode ist, das ist aber nicht subtraktiv
    und wird gerne "West-Coast-Paradigma" genannt.

    Soll alles keine Kritik sein sondern nur Anmerkungen, und Anregungen, glaub nicht daß Du hier viele
    Antworten bekommen wirst. Probier erstmal aus was Du vorhast, ohne zu experimentieren kommt man nicht weit.

    Dein Begriff, das war ja die eigentliche Frage, scheint schon zu passen (soweit ich es verstehe).
     
    suomynona und Dark Walter gefällt das.
  3. flowdy

    flowdy ..

    Die FM und AM sind nebst Waveshaping und Frequenzvariation beim einzelnen Sympartial optionale Eigenschaften. Sie geben der Kernschwingung des Sympartials (eine wenn Sinusform, eine Menge von Sinusformen wenn andere Oszitypen verwendet werden) nur meines Wissens dann eine spektrale Dimension, zusätzlich zur zeitbezogenen, mit Amplitude und Frequenz gestalteten, wenn die Modulationsfrequenz über der Hörschwelle liegt. Niederfrequente Modulation nimmt das Ohr ja eher als periodische Amplituden- bzw. Frequenzveränderungen wahr, spektral ist es dann nicht mehr wirklich.

    Wie auch in der konventionellen additiven Synthese stehen beim Sympartial die Frequenz, die Amplitude, sowie die Variation dieser Größen über die Zeit im Vordergrund. Gäbe es nur diese Eigenschaften, wäre ein eigener Begriff bestimmt nicht gerechtfertigt, dann würde ich auch einfach Partial dazu sagen, wobei ich dabei ignorieren würde, dass die Frequenzvariation diesen Begriff sprengt. Kurzgefasst sei ein Sympartial also einfach ein Teilton, der bei Bedarf auf der spektralen Achse, in der Frequenzdomäne eine "Breite" haben kann.

    Hier mal Hörbeispiele, das sind jeweils einzelne Sympartials mit steigender Komplexität. In Klammern jeweils für mich selbst notiert, wie ich sie erstellt habe, um sie im Bedarfsfall reproduzieren zu können:


    play: https://www.sequencer.de/synthesizer/attachments/simple1-mp3.41764/?temp_hash=a6ebf1f5c76d73b025820d0b25dd75e2 (scripts/render-single-sound -A '0.5:1,1' -l 2 -R '0.2:1;1,0' -f 415 --sound /tmp/simple1.wav)


    play: https://www.sequencer.de/synthesizer/attachments/simple2-mp3.41765/?temp_hash=a6ebf1f5c76d73b025820d0b25dd75e2 (scripts/render-single-sound -A '0.5:1,1' -l 2 -R '0.2:1;1,0' -f 415 -O sawtooth --sound /tmp/simple2.wav ... warum klingt das .wav so viel besser als das MP3. Hat es der lame-eigene Low-Pass-Filter verhunzt?)


    play: https://www.sequencer.de/synthesizer/attachments/simple3-mp3.41766/?temp_hash=a6ebf1f5c76d73b025820d0b25dd75e2 (scripts/render-single-sound -A '0.5:1,1' -l 2 -R '0.2:1;1,0' -f 415 -FM '1.73f[1,2;2,1;3,0];2:1' --sound /tmp/simple3.wav)


    play: https://www.sequencer.de/synthesizer/attachments/simple4-mp3.41767/?temp_hash=a6ebf1f5c76d73b025820d0b25dd75e2 (scripts/render-single-sound -A '0.5:1,1' -l 2 -R '0.2:1;1,0' -O sawtooth -f 415 -FM '1.73f[1,2;2,1;4,0;5,0];1:1' -FV='-3+20;0,3;1,10;3,12;4,20;5,3' -AM '3;2:1' --sound /tmp/simple4.wav)

    Vielleicht sollte ich den Sympartial besser einfach "Klang" nennen, und den per additiver Synthese gebundenen Strauß von Klängen "Klangkomplex" oder so? Hm.

    EDIT: Und jetzt noch mal die additive Synthese dazu, eine einfache Addition dieser Einzelklänge zu je 100%dB:

    play: https://www.sequencer.de/synthesizer/attachments/complex-mp3.41834/?temp_hash=0039f0059a02a4aa6d423d72498ce119
    Bei so beliebigen Einstellungen kann man keinen Wohlklang erwarten, genauso wie bei jeder anderen DAW oder Gerätschaft auch.
    Nur noch wieder für mich um den Befehl festzuhalten ...
    scripts/render-single-sound /dev/stdin -f 415 -l 2 --sound /tmp/complex.wav <<EOF && lame -V0 /tmp/complex.wav
    A: 0.5:1,1
    R: 0.2:1;1,0
    PROFILE:
    - V: 100
    - { V: 100, O: sawtooth }
    - { V: 100, FM: "1.73f[1,2;2,1;3,0];2:1" }
    - { V: 100, O: sawtooth, FM: "1.73f[1,2;2,1;3,0];1:1", AM: "3;2:1", FV: "-3+20;0,3;1,10;3,12;4,20;5,3" }
    EOF
     

    Anhänge:

    Zuletzt bearbeitet: 23. Oktober 2018
  4. einseinsnull

    einseinsnull ich weiß eh alles besser.

    bezierkurven, in 2D auf ein stream angewandt, sind übrigens auch ein geiler oscillator - wenn man nicht nach dem tieferen sinn dahinter fragt - es ist zwar irrsinnig teuer zu berechnen, aber man hat dann halt immer diese 2 oder 3 achsen, die man dann in echtzeit unabhängig voneinander modulieren kann.

    sehr schön eignen sie sich auch zum erzeugen irgendwie sehr "natürlich" klingender intonationskennlinien - vor allem weil der beginn eines ereignisses sich dadurch unvorhersehbar verschiebt. besonders eindrucksvoll das ganze dann bei akkorden/mehrstimmigkeit.
     
  5. flowdy

    flowdy ..

    Bist du sicher, dass du einen Oszillator meinst und keine Hüllkurve? Bin ja selber jetzt kein Meister in den Begrifflichkeiten, mag mich daher irren, aber für mich ist ein Oszi als Schwingungserzeuger nur insoweit über Bèzierkurven gestaltbar, wie es um die einzelne Schwingung geht. Und die freie Gestaltung der Schwingung nennt sich Waveshaping.

    2 bis 3 Achsen? Kann mir nur zwei vorstellen: Zeit- (Amplitude) und Frequenz-Achse.
     
  6. einseinsnull

    einseinsnull ich weiß eh alles besser.

    ein "einfacher" "bezier oscillator" würde aus 2 punkten bestehen. über diese 2 punkte sowie den 1 davor und den 1 danach berechnest du die interpolation und erhälst eine entsprechende wellenform.

    a-1, a, b, b+1

    beide punkte, a und b haben jeweils eine X und Y achse. X ist die zeitposition und Y liegt zwischen -1 und 1.

    das delta, also der abstand zwischen beiden, würde dann die grundfrequenz modulieren. die muss man sinnvollerweise nach unten limitieren, wegen der latenz.

    oder du erlaubst es gar nicht, dass die länger eines zyklus sich verändert. dann ist die frequenz immer gleich und/oder du kontrollierst das ding von außen wie ein waveatable

    waveshaping ist das nicht mal ansatzweise, weil da ja nichts erst erzeugt und dann umgerechnet wird, sondern du generierst das alles live und direkt.

    es klingt allerdings erst mal so ähnlich.
     
  7. einseinsnull

    einseinsnull ich weiß eh alles besser.

    ich hab meins nie zu ende gebaut weil ich mich nie für eine version entscheiden konnte - und wie du siehst bin ich nicht mal in der lage richtig zu erklären, wie es funktioniert.

    eingang: phase von 0-1 (soweit nichts außergewöhnliches)

    dann hast du 4 punkte:

    . . . .

    der erste und der letzte punkt liegen (in der einfachsten implementation) bei "0" und "1". (0 und 1 könnten z.b. z.b. 2610 samples sein, zehn fach oversampling beim mittleren C. (oder nimm immer die lämngte von 4 vectoren, das macht auch sinn.))

    die beiden punkte in der mitte kannst du sowohl in der phase als auch in der zeitposition verschieben, wobei sie sich nicht kreuzen dürfen, zeit von a ist immer > als zeit von b

    jetzt berechnest du eine bezierkurve dritter ordnung über die 4 punkte und fährst einen zyklus ab.
     
  8. einseinsnull

    einseinsnull ich weiß eh alles besser.

    jetzt finde ich die audio version nicht.

    aber um pseudocode zu übermitteln ist die control-rate version davon vermutlich eh besser geeignet.


    phase =>

    => expr pow((1.-phase), 3) -> A

    => expr 3.*phase*(pow((1.-phase), 2)) => B

    => expr 3.*phase*phase*(1.-phase) => C

    => expr pow(phase, 3) => D

    dann multiplizierst du A, B C, und D mit den dazugehörigen 4 punkten, von denen z.b. 2 fix sein können und 2 sind user parameter.

    .

    das ist jetzt natürlich nur 1D.

    da du für ein audiosignal 2D brauchst (was dann glücklicherweise mit der bildschirmdarstellung identisch ist, sonst würde man komplett durchdrehen mit dem zeug) machst du das ganze jetzt immer zwei mal: einmal für den samplewert und einmal für die sampleposition.

    dann kommen unten die gewünschten "koordinaten", also die kurve raus, wenn man oben linear die phase von 0 bis 1 reinspielt. :)
     
    Zuletzt bearbeitet: 7. Dezember 2018
  9. einseinsnull

    einseinsnull ich weiß eh alles besser.

    habs gefunden. in meiner audio version sind der erste und der letzte punkt identisch und liegen übereinander.

    also z.b. so

    a0 a1 a2 a0

    der sinn der übung ist, dass man jetzt die übereinanderliegenden start und end-punkte der "wave" auch einfach auseinanderziehen kann um stille einzufügen.

    ich habe damit eine pulsewidth funktion zur verfügung, ohne die kurven neu berechnen zu müssen.
     
  10. flowdy

    flowdy ..

    Wenn man das algorithmisch schnell will, muss man die Kurve für die ganze Schwingungsperiode vorab berechnen, und dann ist es halt reine wavetable synthesis, mit dem Nachteil, dass man nicht einfach die Frequenz ändern kann, graduell. Kleinste Frequenzänderungen um einen Mittelwert sind eines der Merkmale natürlicher Klangwirkung und sollten daher nicht vernachlässigt werden. Der Versuch dürfte zu kleinen Artefakten führen.

    Waveshaping funktioniert über Index-Mapping auf einer Dimension, dem Samplewert und ist damit asymmetrisch nur auf der Amplitude, was bedeutet dass die Wellenform abhängig von der Polarität gestaltet werden kann. Beispiel: Gestaltet man den Verlauf über Nulllinie spitz, und flacht den Verlauf unter der Nulllinie demgegenüber ab, hat man mit einer einzigen Schwingung eine recht passable gedackte Orgelpfeife. Wegen der Symmetrie kann man im Gegensatz zu deinem Bèzieroszillator nicht steigende und fallende Flanken getrennt gestalten. Irgendeinen Tod muss man halt sterben.

    Hier mal ein paar Bilder und Audiobeispiele zur Erläuterung:

    waveshape.png waveshaped_sine_10Hz.png

    Hörbeispiel: Stille Nacht, heilige Nacht mit reinem Sinus:

    play: https://www.sequencer.de/synthesizer/attachments/stille_nacht_sine-mp3.44103

    Mit der obigen Waveshape:

    play: https://www.sequencer.de/synthesizer/attachments/stille_nacht_ws-mp3.44103

    Dafür, dass die Waveshape wenig von der geraden Diagonalen abweicht, ist der klangliche Unterschied deutlich zu hören.

    [EDIT: Wuss? Man hört nur ersteres Audio, niemand vergleicht? (Aufrufzahlen anguckend) Dann halt ned. :) Jedenfalls, für mich noch als Notiz für später: A: "0.05:1,2;2,9", S: "3:4;1,1", R: "0.5:1;1,0", (beim zweiten außerdem WS: "2;0,0;2,0;4,1;8,3;9,4") Nach jeweils der Länge werden die x,y-Koordinaten des Hüllpolygons der Bézierkurve angegeben, danach folgt der relative y-Wert, der nach der Berechnung 1 ergibt, und der zugleich auch der y-Wert bei x=0 ist, es sei denn dieser wird explizit danach angegeben. Die Interpolation geschieht nach dem Bézier-Bernstein-Approximationsverfahren.]
     

    Anhänge:

    Zuletzt bearbeitet: 6. Dezember 2018
  11. einseinsnull

    einseinsnull ich weiß eh alles besser.

    ja klar, das ist immer eine alternative, aber wie du schon sagst, dann ist es im prinzip "nur" ein normales wavetable - und dann kommst du in versuchung, noch andere wave generatoren dazu zu bauen und das schöne spinner-konzept ist futsch. :)

    in echtzeit finde ich es viel spannender. vor allem wenn du sehr schnelle modulationen machen willst oder wenn die länge des zyklus variabel sein soll.

    du kannst außerdem noch eine dritte dimension mit-berechnen, die du dann als steuerspannung für ein gewichtetes links-rechts panning benutzt. dann steht die position der quelle immer in einem gewissen verhältnis zum sound spektrum.

    für mich ist das thema / die methode waveshaping hier außen vor, weil die keine asymetrischen verzerrungen erlaubt.

    wusstest du, dass die üblichen "bezierkurven" so wie die, die ich oben berechne, auf eine entwicklung der designer abteilung von citroen zurückgeht und die da jahrelang ein patent drauf hatten? :)
     
    Zuletzt bearbeitet: 7. Dezember 2018
  12. einseinsnull

    einseinsnull ich weiß eh alles besser.

    es sei am rande angemerkt, dass es natürlich zum konzept gehören würde, auch die modulationen bzw das "anspielen" dieses generators nur mit bezierkurven zu machen. :D

    wenn du dann im oscilloscope rosa elefanten siehst, dann bist du auf dem richtigen weg.
     
  13. einseinsnull

    einseinsnull ich weiß eh alles besser.

    das mit der polarität: aber gibt das keinen knick bei extremen einstellungen?
     
  14. einseinsnull

    einseinsnull ich weiß eh alles besser.

    das zweite wird nicht mitgezählt, warum auch immer.
     
  15. flowdy

    flowdy ..

    Meines Halbwissens bezieht sich das auf den Bézier-Spline mit jeweils einem oder zwei Handles pro Knoten. Aber dein a1 und a2 ist ja eigentlich nix anderes. Auch diese Überlegungen, wie gültig und wie umfassend die Patentschrift ist, haben mich bewogen, lieber das Bernstein'sche Verfahren umzusetzen, statt mit handle-kontrollierten Spline-Segmenten zu arbeiten. Butter bei die Fisch: Das ist mathematisch nix anderes. Hüllpolygonkoordinaten haben halt den Vorteil, dass das leichter im Sinne einer Textnotation anzugeben ist, denn man muss nicht zwischen Knoten und Handles unterscheiden.

    Fraglich, ob asymmetrische Verzerrungen in Bezug auf das auditive Endergebnis relevant sind. Was unterm Strich für ein Spektrum herauspurzelt ergibt sich nicht direkt aus der Periodenform einer Schwingung, sondern daraus wie häufig und wie spitz die Richtungsänderungen (absoluter Winkelbetrag) des Linienverlaufs sind, die Polarität der Ausschläge spielen keine Rolle. So ist es vermutlich gehuppt wie gesprungen, ob die Kurve sagen wir eine Boa constrictor darstellt, die einen Elefanten verschluckt hat, oder irgendwas orthogonal-symmetrisches. Soweit ich es versteh, unterscheidet das Ohr nicht zwischen Ausschlägen auf steigender oder auf fallender Flanke in jeweils entgegengesetzter Richtung. Bist du anderer Meinung, würd mich mal ein Hörbeispiel interessieren ;-).
     
  16. einseinsnull

    einseinsnull ich weiß eh alles besser.

    genau, so mache ich das mit meinem halbwissen auch: man nimmt eine grundsätzliche verfahrensweise von irgendwoher, oder auch nur die hälfte davon oder was man dafür hält, und macht dann was ganz anderes damit wie allgemein üblich.

    dann nennt man das einfach "bezier oscillator" und kann sich einbilden, was ganz tolles neues gebaut zu haben. :)

    nun, es ergibt insgesamt doch viel mehr möglichkeiten was für ein spektrum hinten rauskommt, wenn für auf und ab verschiedene einstellungen möglich sind. zunächst mal sind es mindestens doppelt so viele.

    einfaches beispiel: wenn du deinen sinus aufteigend viereckig machst und absteigend machst du ihn zu einem dreieck, dann hast du gleichzeitig gerade und ungerade obertöne, und nicht nur entweder oder.
    (naheliegender wäre dann allerdings erst mal die polarität dafür heranzuziehen)

    außerdem ist ja beim waveshaping schon das lookup/transfer statisch, oder nicht? da müsstest du dann die grundwellenform, die du reinschickst. modulieren um neue spektra zu erhalten. das lookup table was ich da oben seh könntest du doch vermutlich genau so durch -((1-tanh(input*pi)))/pi o.ä. erzeugen.

    ist zwar teuer alles live zu berechnen, aber du hast dann halt auch viel mehr potentielle "modulationseingänge" mit denen man herumspielen kann.
     
    Zuletzt bearbeitet: 8. Dezember 2018