Begriffsfindung: "Sympartial"?

flowdy

Mathematext-Musiker
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.
 
B

btrnm

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

Das verstehe ich allerdings gut:

meine Lieblingsart mir Dinge anzueignen ist die umständliche, nämlich das Rad neu zu erfinden
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.


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.
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).
 

flowdy

Mathematext-Musiker
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:

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.
 

flowdy

Mathematext-Musiker
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.
 

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.
 

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.
 

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:

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.
 

flowdy

Mathematext-Musiker
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:

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:

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.
 

flowdy

Mathematext-Musiker
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?
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.

für mich ist das thema / die methode waveshaping hier außen vor, weil die keine asymetrischen verzerrungen erlaubt.
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 ;-).
 

einseinsnull

ich weiß eh alles besser.
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.
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. :)

Soweit ich es versteh, unterscheidet das Ohr nicht zwischen Ausschlägen auf steigender oder auf fallender Flanke in jeweils entgegengesetzter Richtung.
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:

einseinsnull

ich weiß eh alles besser.
hey, ich hab grad was wiedergefunden. hatte mal wieder einen tippfehler im namen. ordnung ist das halbe leben. ;-)

jetzt weiss ich nur nicht mehr auswendig, wie genau ich da den osci draus machen muss, aber ich denke, du wirst es auch so verstehen.

110bezier2dmsp.jpg
 

flowdy

Mathematext-Musiker
Naja, die Zeichenfolgen (*~) in den Textboxen verstehe ich nicht. Doch Moment ich, kann mir einen Reim darauf bilden. Wenn es sich um die polnische umgekehrte Notation handelt – statt "1 + 1" heißt es da "+ 1 1", hat tatsächlich Vorteile –, ist ~ wohl das Eingangssignal der jeweiligen Berechnungsstufe, wenn dies so ist, verlieren die Zahlen links wieder ihren Sinn. Die rechte Seite sind die tatsächlichen Poti-Werte zwischen Vmin und Vmax. Interessant. Was phase ist, verstehe ich auch, nur halfwave? function?
 

einseinsnull

ich weiß eh alles besser.
die tilde musst du beim lesen ignorieren :) das ist einfach nur ein *

die funktion ist die, tja, wie sagt man das korrekt... erste dimension der bezierkurve, die phase ist dann die zweite.

die erste dimension geht da von aus, dass sie von einer klassischen ramp als phase angetrieben werden soll, d.h. so als ob die Y koordinaten z.b. beide 0 wären (beide punkte auf einer gerade linie = keine kurve)

verzerrt man die erste dimension mit einer phase, ide nicht linear ist, bekommt man die 2D version i.e. eine bezierkurve.

"halfwave" ... das ist die hälfte der wellenform, die unseren oscillator darstellen soll. di wezite hälfte spiegelt man und setzt sie hintendran.

audio demo folgt, wenn ich irgendwnn lust und zeit habe. :)
 

einseinsnull

ich weiß eh alles besser.
normalerweise ist es jsa kinderleicht eine bezierkurve zu berechnen, aber wir wollen das ja alles in echtzeit modulieren.

derzeit ist es übrigens noch möglich steigungen oder ein abfallen um mehr als 90 grad zu erhalten, was wenig sinn eergibt für ein audio signal. mal schauen wie ich das löse.
 


Neueste Beiträge

News

Oben