Turing's Slow Progress: Auf dem Weg zum eigenen Softsynth

T
Turing
Thou shalt not loop
Wie ja verschiedentlich schon erwähnt, schreibe ich an einem eigenen Softsynth.
Realisiert wird das Plugin in C++ mit JUCE, so dass es für Windows, Mac und Linux verfügbar sein wird.
Der Thread steht im Bereich "Nerdiges", weil ich das "Softsynth"-Unterforum nicht mit Posts zu einem unfertigen Plugin zumüllen möchte, das es möglicherweise nie von meinem PC in die Welt hinaus schafft.
"Slow Progress", weil das Plugin selbst im positiven Fall noch eine ziemlich lange Zeit für seine Fertigstellung brauchen wird.
Grundsätzlich funktionsfähig ist der PoC allerdings schon. Die ersten Töne waren im Film Score Battle zu hören (3 Spuren, Hall aus Eventide Blackhole):



Und inzwischen ist das Plugin natürlich weiter gediehen und wird beständig erweitert und verbessert.
Was das eigentlich Besondere an diesem Softsynth werden soll, verrate ich an dieser Stelle noch nicht, weil es auch noch nicht umgesetzt ist.
Hier aber ein paar Infos, die eine Vorstellung von den zu erwartenden Merkmalen des Plugins geben:

MODERN

Ziel ist ein moderner Synth, der Funktionalitäten umsetzt, die nur mit digitaler Signalverarbeitung möglich sind.
Die bereits realisierten Oszillatoren nähern sich dem mathematischen Ideal, sie schneiden an der Nyquist-Frequenz scharf ab, sind phasentreu, weitgehend aliasing-frei und zudem effizient implementierbar. Genutzt werden sie als ein erstklassiger Wavetable-Player.
Zur Klangformung dienen spektrale Transformationen, wie man sie z.B. aus Vital kennt. Bereits jetzt gibt es 5 Regler, mit denen das Spektrum eines Oszillators geformt werden kann. Weitere Spectral-Warp-Arten werden im Laufe dieses Jahres hinzukommen.
Daneben gibt es eine Unison-Engine, die aktuell durch 7 Regler gesteuert wird und ein bis zu 8000-faches Unisono pro Oszillator erzeugen kann.
Die Oszillatoren sollen später durch Operatoren flexibel verknüpft werden können.
Das stelle ich mir grob wie beim opsix vor, der ja neben FM z.B. auch die Anwendung von Ringmodulation, eines Filters oder eines Effekts als Operator darstellt. Ich denke, ein solcher Operator-basierter Ansatz ist potenziell leichter zu nutzen als ein Aufbau wie ein Modular-System mit komplett freier Verdrahtung.
Im Moment gibt es aber nur einen Oszillator pro Stimme und noch keine Operator-Matrix.

EIN ECHTES MPE-INSTRUMENT

Der Softsynth ist als ein "echtes", live und per MPE spielbares Instrument ausgelegt. Der Synth soll "musikalisch" auf Änderungen der MPE-Dimensionen wie MPE-Timbre ansprechen und sich dadurch wie ein reales Instrument anfühlen.
Da es noch kein Modulationssystem gibt, ist die direkte Formung jeder Note mit den Fingern über einen MPE-Controller auch bisher die einzige Möglichkeit, die Töne zu beleben.
Im Moment reagiert jede Stimme auf die Anschlagstärke und auf Bewegungen in X-Richtung (Bend/Vibrato). Durch die Y-Dimension (Slide CC74) wird die Wavetable-Position gesteuert. Die Z-Dimension für Per-Note Aftertouch wird im Moment nicht genutzt, weil mich die gleichzeitige Kontrolle von Vibrato/seitlicher Bewegung und Anpressdruck motorisch überfordert.
Andere Modulationen sind derzeit nicht möglich.
Natürlich werden diese Dinge später frei konfigurierbar sein und ein Modulationssystem einschließlich Envelope Gates, LFOs usw. ist in Planung.

Da ich MPE bei "Extinction" noch nicht zum Laufen gekriegt hatte und es daher noch ein paar störende Artefakte des Controllers enthält, hier eine neue spontane Demo, wie das Plugin mit MPE-Nutzung klingen kann (1 Spur mit Joué Scaler, Absolute Y Control, Hall aus 7th Heaven Professional):

Anhang anzeigen MPE-Demo-2023-07-25.mp3

Im Sinne der Live-Spielbarkeit würde ich gerne mehr Zeit in Play Modes und diverse Spielhilfen stecken, leider fehlen mir dazu einfach die Ressourcen. So gibt es aktuell nur zwei Play Modes: den normalen polyphonen Mode und einen dem Trident Mode 2 nachempfundenen Hybrid-Mode.

EIN SOFT-SYNTH ZUM "SCHRAUBEN"

Der Synth soll sich zum spontanen Erstellen von Patches eignen und zum "Schrauben" an den Knöpfen einladen.
Hierzu soll es für alle wichtigen Einstellmöglichkeiten ein GUI-Element geben, jedoch auch insgesamt eine Beschränkung der Freiheitsgrade. Jedes GUI-Element muss eine klare Aufgabe und hörbaren Effekt haben und es soll nicht zu viele Wege geben, dasselbe Ziel zu erreichen. Es soll also nicht ein eklektischer "Alleskönner" entstehen, solche Plugins empfinde ich persönlich als Kreativitäts-Killer.

KEINE BELIEBIGKEIT

Als Entwickler möchte ich natürlich, dass die besonderen Merkmale dieses Softsynths zur Geltung kommen und intensiv genutzt werden - und nicht Standard-Features, für die man dieses Plugin gar nicht bräuchte.
Deshalb gibt es kein subtraktives Filter, obwohl es ein leichtes wäre, ein Ladder-Filter oder State-Variable-Filter einzubauen. Es gibt nur die vorgegebenen (aktuell 5) synthetischen Factory-Wavetables und es ist nicht möglich, eigene Wavetables oder Samples zu laden und Wellenformen oder Spektren zu zeichnen. Auch gibt es vorerst keine Builtin-Effekte.
Ich hadere aber noch mit dieser puristischen Haltung, denn bei FM-Synths z.B. freue ich mich ja auch über ein subtraktives Filter, selbst wenn es technisch eigentlich unnötig ist.

KEIN PRODUKT

Mein Anspruch ist es nicht, ein fertiges kommerzielles Produkt zu entwickeln.
Zwar bemühe ich mich immer um rechnerische Effizienz, aber dies wird kein Rundum-Sorglos-Plugin, das einen die Grenzen der Hardware nicht spüren lässt. Es zielt kompromisslos auf die bestmögliche Audio-Qualität, selbst wenn potenzielle Nutzer mit älteren oder schwächeren Rechnern dadurch über die Kante fallen. Zudem enthält es experimentelle Features, die jede CPU an die Wand fahren können, und mit denen man erst etwas Erfahrung sammeln muss.
Mehr als eine primitive, funktionale GUI ist nicht zu erwarten, ich konzentriere mich lieber auf die "inneren Werte".
Das Thema Preset-Verwaltung wird aktuell der DAW überlassen.
Und es gibt vorerst keinerlei Visualisierung - für die Hörer eines Tracks entscheidet ja auch nur das klangliche Ergebnis.
Das schränkt den Benutzerkreis vermutlich auf einige wenige Enthusiasten ein, die bereit sind, sich auf diese Dinge einzulassen.
So lange ich das ganze in der Freizeit oder evtl. im Rahmen einer Nebentätigkeit entwickle, kann ich auch keinen Produkt-Support leisten.
Deshalb plane ich, das Plugin - sobald es einen entsprechenden Entwicklungsstand erreicht hat - als Donationware herauszubringen. So können es alle Interessierten frei nutzen und ggf. durch eine Spende die weitere Entwicklung unterstützen.

WIE ES WEITER GEHT

Bis zum Ende des Jahres werde ich den bestehenden Ansatz weiter ausbauen (z.B. Erweiterung auf Stereo-Unisono), die geplanten spektralen Transformationen umsetzen und Performance-Optimierungen vornehmen.
In 2024 möchte ich das Modulationssystem ergänzen und es ermöglichen, Oszillatoren in Form verschiedener Operatoren zu verknüpfen.
Wenn dies alles gut klappt, könnte im Anschluss eine erste Version an ausgesuchte Pilotbenutzer herausgehen.
Bis dahin werde ich Euch hier über den Stand der Entwicklung auf dem Laufenden halten und immer mal kleine Audio-Demos zu neuen Features einstellen. Auch freue ich mich über allgemeine Rückmeldungen und habe auch vor, gelegentlich Feedback von Euch einzuholen.
 
Zuletzt bearbeitet:
Am Wochenende habe ich noch das normale "brute force" Unisono ergänzt, bei dem jede Unisono-Stimme einzeln gerendert wird.
(Vorher gab es nur Multi-Unisono-Varianten, die nicht "naiv" implementiert sind und deren Rechenzeitbedarf nicht von der Stimmenzahl abhängt).
Aber es ist gut, auch die einfache Implementierung als Baseline zu haben.
Hier ein phasiges Beispiel mit dem 7-fachen brute force Unisono, Hall 7th Heaven Professional:

Anhang anzeigen 2023-08-06-BruteForce-Mode-Test.mp3
 
Hier ein kleines Update:
Seit dem letzten Beitrag war ich nicht untätig, sondern habe eine Idee verfolgt, wie man eines der Multi-Unisono-Verfahren verallgemeinern und dadurch mit zusätzlichen Klangformungs-Möglichkeiten ausstatten könnte. Das ganze war kompliziert und ich habe eine Menge Lehrgeld bezahlt, so dass die Fertigstellung mehr als einen Monat gebraucht hat.
Wie dem auch sei, hier eine kleine Demo:

Anhang anzeigen 2023-09-12-Gloria.mp3

(wie üblich ein improvisierter 1-Take, eine Spur, nur das Plugin und dazu Hall aus Seventh Heaven Professional).
Genutzt wird dieselbe Wavetable wie bei der vorigen Demo, nur durch die neuen Gestaltungsmöglichkeiten etwas anders in Szene gesetzt.

Weitere Planung: Aller Voraussicht nach werde ich mich bis Ende des Jahres ausschließlich auf Multi-Unisono konzentrieren.
Das zentrale Thema ist die Schaffung organischer und in sich texturierter Klänge.
Inzwischen hatte ich noch zwei neue Ideen für Crossover-Varianten aus bestehenden Ansätzen, dazu kommen die vorher bereits geplanten Features wie z.B. Stereo-Unisono.
Der nächste Themen-Schwerpunkt (Spectral Warp) verschiebt sich daher ins kommende Jahr.
 
Zuletzt bearbeitet:
Danke, freut mich!

Die Demo vom August hatte nur gezeigt, was sowieso praktisch jedes Plugin kann - 7 einzeln generierte Unisono-Stimmen, die dann summiert werden. Von daher war hier nichts aufregendes zu erwarten. Ich brauche diese Baseline-Methode zum Vergleich mit den Multi-Unisono-Ansätzen, die bei der Unisono-Umsetzung anders (mit der DSP-Trickkiste) vorgehen. Da möchte ich dann für geringe Zahlen von Unisono-Stimmen einen A/B-Vergleich mit der Baseline durchführen können. D.h. das komplexe Verfahren soll für niedrige Stimmenzahlen das gleiche oder ein ähnliches Ergebnis bringen können, wie man es bei der direkten Generierung und Summierung jeder einzelnen Unisono-Stimme erhalten würde.

In der Demo von gestern dagegen kam wieder ein Patch mit 8.000 Unisono-Stimmen zum Einsatz. Da ergibt sich ein deutlich komplexeres Klangbild.
 

Similar threads

Solar Chrome
Antworten
0
Aufrufe
975
Solar Chrome
Solar Chrome
Solar Chrome
Antworten
16
Aufrufe
2K
Sulitjelma
Sulitjelma
Moogulator
Antworten
1
Aufrufe
4K
Moogulator
Moogulator


News

Zurück
Oben