Hi, ich würde gerne einen Bass-Sound "nachbauen", der stufenlos von (relativ) reinem Sinus in die anhängend gezeigte Wellenform übergeht. Während des Überganges wird dieser "Zacken" einfach immer deutlicher. Hat einer eine Idee, was man mit dem Sinus anstellen müsste (bzw. was überlagert sein könnte), um diese Wellenform zu erreichen?
Zeichne dir doch mal in die zeichnung einen reinen sinus ein und dann subtrahierst du diesen grafisch von deiner signalform. Das resultierende störsignal kannst du dir dann anschauen und nachbilden
Also das Ding zu generieren ist PWM + Lockuptable wo die Werte drinstehen. Den stufenlosen Übergang (sagen wir: sehr fein gestuft) bekommst du hin indem wie gesagt die Fehlerfunktion mehr oder weniger stark zu der Sinusfunktion hinzuaddiert wird. Der Rest ist Mathematik. Und bitte vergiss die Überlagerung von Sinusfunktionen schnell wieder. Das ist eine nicht differenzierbare Funktion, das erfordert unendlich viele sin+cos Terme. Also auch unendlich viele Mikrocontroller/Funktionsgeneratoren. Fourier ist für Analyse von Signalen wichtig, nicht für die Synthese.
TestX schrieb: > Zeichne dir doch mal in die zeichnung einen reinen sinus ein und dann > subtrahierst du diesen grafisch von deiner signalform. > Das resultierende störsignal kannst du dir dann anschauen und nachbilden 'an den Kopf klatsch'. Klar. Manchmal ist man echt irgendwie denkgehemmt... Danke. Sascha schrieb: > Und bitte vergiss die Überlagerung von Sinusfunktionen schnell wieder. > Das ist eine nicht differenzierbare Funktion, das erfordert unendlich > viele sin+cos Terme. Die "Störfunktion" kann in diesem Fall auch aus Rechteck/Sägezahn/Dreieck Oszillatoren entstanden sein... Geht um Musik wie gesagt, und das Ding klingt mir verdächtig (Mini-)Moog-ig....
:
Bearbeitet durch User
Na wenn das kein Sinus ist der mit einem Rechteck (gleiche Frequenz aber Phasenverschoben) additiv überlagert ist (siehe Anhang). Ist ziemlich einfach zu machen (z.B. mit 2 Lookups) Pseudocode:
1 | out = aSin * sinLUT[i] + aError * errorLUT[i+phi]; |
2 | i++; |
In der Sinus LUT liegt Dein normaler störfreier Sinus. In der Error LUT liegt Dein Störsignal. Mit aError kannst Du dann das Störsignal (hier ein Rechteck) langsam von 0-X aufdrehen und somit die größe der Spikes steuern. Grüße Frank
Frank schrieb: > Na wenn das kein Sinus ist der mit einem Rechteck (gleiche Frequenz aber > Phasenverschoben) additiv überlagert ist (siehe Anhang). So isses. Danke an alle.
:
Bearbeitet durch User
Wieso sollte man sich die Mühe machen einen Sinus zu erzeugen und dann das Störsignal draufgeben? Wenn das grafisch ermittelt werden muss, kann man gleich das komplette Signal draufgeben.
Signaler schrieb: > Wieso sollte man sich die Mühe machen einen Sinus zu erzeugen und dann > das Störsignal draufgeben? Weils fett klingt! Ergebnis anbei. Sinus + überlagertes Rechteck. Noch fetter wird es, wenn man einen dritten Oszillator (auch Rechteck) mit halbierter Frequenz überlagert.
Fettigkeit ist immer relativ. Hier ist ein Bass mit ein bischen dynamischerem Oberwellenspektrum aus 128 Oszillatoren: http://www.96khz.org/files/2008/workstationdemo.wma Sascha schrieb: > Also auch unendlich viele Mikrocontroller/Funktionsgeneratoren. Da das Audioband begrenzt ist, braucht man für gewöhnlich 8-10 Oktaven. Und da die Musikfrequenzen ebenfalls bekannt sind, kann man es sich auch sparen, jede lineare Frequenz zu erzeugen, sondern die dodekatonisch abbilden. Geht so in Richtung Görzel. > Fourier ist für Analyse von Signalen wichtig, nicht für die Synthese. Es gibt durchaus Synthesen, die so laufen. Bestimmte Formen der Frequenzbearbeiter / Vocoder arbeiten damit -> FFT-basierte Faltung.
Sascha schrieb: > Fourier ist für Analyse von Signalen wichtig, nicht für die Synthese. https://de.wikipedia.org/wiki/Fourier-Analysis#Fourier-Synthese
Falls man den Sinus per Lookuptable synthetisiert dann muß man nur periodisch den Phasenakkumulator "springen" lassen.
Das hatte ich spontan auch sofort gesagt, aber es ist nur für einen bestimmten Zustand gegen die Amplitudenmodifikation austauschbar. Das langsame faden würde sich so nicht machen lassen, bzw hätte eine völlig andere Wirkung.
Korrekt, mein "Vorschlag" ist auch nur als ein möglicher Weg, für das gezeigte Signal, zu verstehen.
Es ist ja auch nicht falsch. Im Gegenteil: Es ist eine recht einfache Methode, mit ein-zwei Handgriffen eine massive Klangänderung zu erzeugen. In synthesizern wird das mit der LFO-Wellenform gemacht: Man nimmt keinen langsamen Sinus für ein weiches Vibrato, sondern ein schnelles Rechteck. Ist dann aber mehr ein FFO :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.