Beim Dreieck kann man eigentlich das selbe Prinzip anwenden wie beim Sägezahn. Man erhält durch Quadrierung eine stückweise Parabel, deren Ableitung proportional zur ursprünglichen Funktion ist. Also muss die abzuleitende Funktion ungefähr proportional zum Integral der ursprünglichen Funktion sein, (das Integral ist ja die Umkehroperation zur Ableitung).
Beim Sägezahn geht das mit der Quadrierung ja glatt. Dessen Integral ist wie dessen Quadrat eine unipolare stückweise Parabel (mit Gleichanteil, wenn man die Integrationskonstante berücksichtigt).
Beim Dreieck ist das anders. Durch Quadrierung geht das Vorzeichen verloren. Und das Quadrat des Dreiecks hat keine Ähnlichkeit mit seinem Integral. "Schlimmer", durch dessen Ableitung sind wir wieder beim Sägezahn gelandet, eben weil das Vorzeichen durch Quadrierung keine Bedeutung mehr hat.
Jedoch kennen wir schon einen anderen Algorithmus zur Berechnung einer geeigneten bipolaren stückweisen Parabel.
Die markierte Stelle sollte bekannt sein. Das ist die etwas modifizierte Parabel von Seite 1. Dessen Ableitung ist erwartungsgemäß dreieckförmig. Dies ist nur noch in Abhängigkeit von der Tonhöhe zu skalieren, et voila...
Le Dreieckoszillator...
Schön zu sehen, dass alle Wellenformen mit dem selben Faktor skaliert werden. Da ließe sich jetzt noch etwas Rechenzeit einsparen, obwohl es schlanker schon kaum geht.
OSZILLATOREN [2] ALIASING
Moderator: herw
- Rampensau
- meister
- Beiträge: 192
- Registriert: 6. Dezember 2009, 20:32
DPW für's Dreieck
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Einstieg und Weiterführendes in Core:
OSZILLATOREN [1] BASISWELLEN, OSZILLATOREN [2] ALIASING, OSZILLATOREN [3] WAVETABLES
OSZILLATOREN [1] BASISWELLEN, OSZILLATOREN [2] ALIASING, OSZILLATOREN [3] WAVETABLES
- Rampensau
- meister
- Beiträge: 192
- Registriert: 6. Dezember 2009, 20:32
Blit fürs Dreieck
Auch hierfür lässt sich auf bereits Bekanntem aufsetzen. Das Dreieck lässt sich wie bei den nicht-bandlimitierten Wellenformen durch Integration des Rechtecks erhalten. Ich habe aber den Aufbau leicht modifiziert.
Zur Erstellung des Impulses verwende ich nun die Dirichlet-Funktion. Das ist einfach eine periodische Sinc-Funktion. Mitunter wird sie digitale Sinc-Funktion, oder sinc_M genannt. Bei der Dirichlet-Funktion steht im Nenner ebenfalls ein Sinus. Für kleine Winkel ist es eine hinreichende Näherung. Der Vorteil bei Erstellung von bandlimiterten Impulsen: Der Obertongehalt lässt sich genau steuern. Es gibt keine Schwingungen mehr über der M-ten.
Hier ein Beispiel für M = 14 (also 14 Harmonische): Ansonsten ist der Aufbau der selbe, wie bei der si-Funktion, oben.
Zur Integration der Impulse verwende ich nun wieder einen Integrator mit Hochpass-Charakter. Das Ergebnis ist stabiler und es entsteht auch in den höheren Lagen wenig Offset durch die Integration über die Impulse. Nur man muss mit einer ungewöhnlichen Gestalt der Wellenform leben. Sie durchläuft eben einen Hochpass. Die Pulsweite und die Tonhöhe lässt sich wenigstens durch LFOs modulieren. Bei höheren Frequenzen entstehen leider Knackser. Man müsste die Strukur nun genaueren Untersuchungen unterziehen. Bis dahin bleibt es in meiner Schublade eher so ein "Proof of Concept". Sofern jemand eine Lösung (zur akkuraten Parametermodulation) parat hat, wäre es toll, die spätestens jetzt hier mit uns zu teilen.
Zur Erstellung des Impulses verwende ich nun die Dirichlet-Funktion. Das ist einfach eine periodische Sinc-Funktion. Mitunter wird sie digitale Sinc-Funktion, oder sinc_M genannt. Bei der Dirichlet-Funktion steht im Nenner ebenfalls ein Sinus. Für kleine Winkel ist es eine hinreichende Näherung. Der Vorteil bei Erstellung von bandlimiterten Impulsen: Der Obertongehalt lässt sich genau steuern. Es gibt keine Schwingungen mehr über der M-ten.
Hier ein Beispiel für M = 14 (also 14 Harmonische): Ansonsten ist der Aufbau der selbe, wie bei der si-Funktion, oben.
Zur Integration der Impulse verwende ich nun wieder einen Integrator mit Hochpass-Charakter. Das Ergebnis ist stabiler und es entsteht auch in den höheren Lagen wenig Offset durch die Integration über die Impulse. Nur man muss mit einer ungewöhnlichen Gestalt der Wellenform leben. Sie durchläuft eben einen Hochpass. Die Pulsweite und die Tonhöhe lässt sich wenigstens durch LFOs modulieren. Bei höheren Frequenzen entstehen leider Knackser. Man müsste die Strukur nun genaueren Untersuchungen unterziehen. Bis dahin bleibt es in meiner Schublade eher so ein "Proof of Concept". Sofern jemand eine Lösung (zur akkuraten Parametermodulation) parat hat, wäre es toll, die spätestens jetzt hier mit uns zu teilen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Einstieg und Weiterführendes in Core:
OSZILLATOREN [1] BASISWELLEN, OSZILLATOREN [2] ALIASING, OSZILLATOREN [3] WAVETABLES
OSZILLATOREN [1] BASISWELLEN, OSZILLATOREN [2] ALIASING, OSZILLATOREN [3] WAVETABLES
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: Blit fürs Dreieck
Wenn ich mir so den gesamten Thread ansehe, dann steckt da viel Arbeit dahinter. Kannst Du so als kleine Zwischenbilanz nochmal verklickern, welche Vorteile ein BLIT-Oszilator gegenüber den normalen Oszillatoren besitzt?
ciao herw
ciao herw
- Rampensau
- meister
- Beiträge: 192
- Registriert: 6. Dezember 2009, 20:32
Die (naive) BLIT-Methode
Also mein Ziel war zunächst, die Methodiken grundsätzlich aufzuschlüsseln und zu zeigen, wie man solch einen Algorithmus prinzipiell in Reaktor umsetzen kann. Dabei haben wir gesehen, dass die Mathematik dahinter auf recht schlüssigen und einfachen Überlegungen basiert. Wichtig war mir, einzusehen, dass der Dreh- und Angelpunkt dieser BLIT-Geschichte die zu generierende Impulsfolge ist. Denn wir haben gesehen, dass sich mehrere Impulsarten zur Integration eignen und uns überlegt, welche Eigenschaften diese erfüllen müssen, damit die Integration das gewünschte Ergebnis liefert. Die Integration der Impulsfolgen ist zwar theoretisch ein Klacks, birgt aber einige Probleme in der Praxis.
Genau das ist der Knackpunkt der bisher nur unzureichenden Überlegungen. Es wäre noch ein wenig Hirnschmalz notwendig, damit die Methode Hand und Fuß hat.
Betrachten wir zunächst, was wir durch BLIT gewonnen haben:
Die größte Motivation lag darin, Wellenformen möglichst ohne Alias zu synthetisieren. Die BLIT-Methode erzielt schon mit einigen Kompromissen sehr gute Ergebnisse und basiert dabei auf einer relativ einfachen Mathematik.
Die Wellenformen besitzen keine Aliasingbestandteile. Kurzum: Die Bandbegrenzung lässt sich genau steuern. Das ist (hier, in dieser naiven Form des BLIT-Algorithmus) bisher der einzige Vorteil gegenüber anderen Methoden.
Hier mal ein Beispiel für die Noten: C-3, C3, G8 (Midinoten 0, 60, 127)
BLIT: DPW: Trivial: Der Preis der (naiven) BLIT-Methode ist ggf. ein Hochpass und die eingeschränkte Modulierbarkeit. Die Gestalt der Wellenform lässt sich durch Anhebung des entsprechenden Bereichs auch gut wiederherstellen.
Dann kann man sie sogar als LFOs einsetzen.
Jedoch muss ich zugeben, dass ich von der Einsetzbarkeit dieses BLIT-Ansatzes sehr enttäuscht bin. Augenscheinlich hat der Ansatz Potenzial. Aber bis zur endgültigen Reife (in Reaktor) wird wohl noch einige Zeit ins Land verstreichen, weil mich noch andere Forschungen quälen.
Genau das ist der Knackpunkt der bisher nur unzureichenden Überlegungen. Es wäre noch ein wenig Hirnschmalz notwendig, damit die Methode Hand und Fuß hat.
Betrachten wir zunächst, was wir durch BLIT gewonnen haben:
Die größte Motivation lag darin, Wellenformen möglichst ohne Alias zu synthetisieren. Die BLIT-Methode erzielt schon mit einigen Kompromissen sehr gute Ergebnisse und basiert dabei auf einer relativ einfachen Mathematik.
Die Wellenformen besitzen keine Aliasingbestandteile. Kurzum: Die Bandbegrenzung lässt sich genau steuern. Das ist (hier, in dieser naiven Form des BLIT-Algorithmus) bisher der einzige Vorteil gegenüber anderen Methoden.
Hier mal ein Beispiel für die Noten: C-3, C3, G8 (Midinoten 0, 60, 127)
BLIT: DPW: Trivial: Der Preis der (naiven) BLIT-Methode ist ggf. ein Hochpass und die eingeschränkte Modulierbarkeit. Die Gestalt der Wellenform lässt sich durch Anhebung des entsprechenden Bereichs auch gut wiederherstellen.
Dann kann man sie sogar als LFOs einsetzen.
Jedoch muss ich zugeben, dass ich von der Einsetzbarkeit dieses BLIT-Ansatzes sehr enttäuscht bin. Augenscheinlich hat der Ansatz Potenzial. Aber bis zur endgültigen Reife (in Reaktor) wird wohl noch einige Zeit ins Land verstreichen, weil mich noch andere Forschungen quälen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Rampensau am 19. August 2012, 15:50, insgesamt 2-mal geändert.
Einstieg und Weiterführendes in Core:
OSZILLATOREN [1] BASISWELLEN, OSZILLATOREN [2] ALIASING, OSZILLATOREN [3] WAVETABLES
OSZILLATOREN [1] BASISWELLEN, OSZILLATOREN [2] ALIASING, OSZILLATOREN [3] WAVETABLES
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: Die (naive) BLIT-Methode
Wegen des Umfangs wurde das Thema von mir auftgetrennt.
Hier geht's weiter:
OSZILLATOREN [3] WAVETABLES
Hier geht's weiter:
OSZILLATOREN [3] WAVETABLES