Ein "Waveterm" für den Terratec Komplexer

Die Sounds sind eher zufällig entstanden beim herumprobieren mit dem neuen Code. Leider hört man den Sounds die viele Arbeit der letzten Wochen nicht an, da ich viel Zeit in die Optimierung der Oszillatoren gesteckt hab. Der "Beat it" - Verschnitt trifft das Original natürlich nicht richtig, denn dazu muss ich die Partial Timbres verschieden programmieren und eine andere Trägerschwingung verwenden. War aber klanglich so nah dran, dass ich spontan nicht widerstehen konnte. :lol:
 
Mal wieder ein Klangtest der etwas anstrengenden Sorte... und ja, zwischendurch wird es auch mal harmonischer:


play:


Hier wurden die Zufallsgeneratoren und eine weiter verbesserte Variante für das Antialiasing der FM getestet. Falls letzteres jemanden interessiert: Die Engine verwendet eine modifizierte Form der "Carson'schen Bandbreitenregel", um den FM Index anhand von Modulator / Trägerfrequenz, Samplerate und Obertongehalt der Trägerwelle nachzuregeln. Ebenfalls wird berücksichtigt, dass sich die Anzahl der Partials abhängig von der gespielten Frequenz ändert, um Aliasing im Träger selbst zu vermeiden. Ich spreche hier ganz bewusst von "Frequenz", da sowas normalerweise über die Note geregelt wird (wie bei einem Multisample). So etwas würde hier aber ebensowenig funktionieren wie simples Levelscaling a la DX, vor allem nicht in einem theoretischen Tonhöhenbereich von ~60 Oktaven. Das ganze läuft nach wie vor mit 2x Oversampling und einem 128 Tap FIR Decimator mit 140db Dämpfung.

Ansonsten wird es mit dem Fortgang dieses Projektes etwas dauern, da ich - wenn alles gut geht - erst mal für 8 Wochen ein Praktikum in einer IT - Firma haben werde. Ich gehe davon aus, dass ich dort mit meinem Halbwissen für Erheiterung sorgen und alsbald an dicke Bücher gesetzt werde. Also falls das hier jemanden interessiert, aber sich nix mehr tut: Projekt ist nicht tot, aber es ist grad Pause vom rumdödeln. :lol:
 
:supi:

Wirklich tolle Klänge, trifft genau mein "Digi-Synth-Klischeebild" :D
 
Cyclotron schrieb:
Zusätzlich zu den oben geposteten Elaboraten noch drei "Sounds", nicht schön aber selten:


play:


Immerhin hab ich mir gestern abend mal SSE - Programmierung angelesen und die Oszillatoren darauf umgebaut. Die CPU Last ist daraufhin um 50% gesunken, was ich gleich mal ausgenutzt hab, um die gesamte Klangberechnung mit Samplerate durchzuführen (und nicht mit einer verringerten Updaterate, was ja oft zu garstigen Artefakten führt). Die Stimmenzahl liegt nun je nach Konfiguration zwischen 12 und 48, wobei das automatisch angepasst wird. Das macht bei meinem Athlon X2 250 knappe 50% CPU bei voller Stimmenauslastung.

DAS klingt seeehr geil! besonders der zweite sound ist ganz nach meinem geschmack! aber auch allgemein ist der klang "sehr" direkt und transparent - da klingt absolut nichts nach plattem vst :phat: :phat: :phat:
 
Die Beispiele profitieren natürlich ein wenig von der Anzahl der Oszillatoren. Sowas klingt immer organischer / fetter / gefälliger als ein einzelner Oszillator. In den Beispielen sind es zwischen 8 und 32 pro Note, wobei ich die CPU - Last noch weiter drosseln konnte. Momentan liegt sie bei 1,6 % im "Leerlauf" + 2,5 % pro Note (wenn 12 Hüllkurven, 4 Wavesequencer und alle 32 additiven Carrier + FM - Modulatoren laufen). Was fehlt sind nach wie vor die LFOs und variable Modulationsroutings. Und gaaanz viele Details... zum Beispiel das Resyntheseprogramm. Da wird fast gar kein Gebrauch von gemacht in den Demos und deshalb klingen die auch über weite Strecken recht ähnlich. Mit 2 OP FM allein ist halt nicht soooo viel Variation möglich.

Vor einiger Zeit hab ich aus den bisherigen Demos mal einen Zusammenschnitt auf Soundcloud geladen... so eine Art persönliches "best of" der bisherigen Spielereien:

src: https://soundcloud.com/cyclotron2010/audioterm-ii-a-poor-mans-synclavier
 
finde die Sachen klingen ziemlich gut. Würde mich freuen wenn irgendwann mal ein synth draus wird...
 
Solche Resonanz zu lesen tut auf jeden Fall gut, in meinem Umfeld muss ich sonst eher die Frage beantworten, welchen gesamtgesellschaftlichen Sinn solche Basteleien haben sollen und wo da jetzt wieviel Geld zu verdienen ist. ;-)

Ich werd da auf jeden Fall dranbleiben, nur hat das eben momentan eine geringere Priorität. In den letzten acht Jahren hab ich mich eigentlich nur mit Gelegenheitsjobs durchgeschlagen... Gärtner, Totengräberassistent, Pferdefreund oder Hausmeister... und dazwischen formende Maßnahmen der Kategorie "Wo geht der PC an", "Wo geht er wieder aus" oder "Durch waschen und kämmen zum Ein- Euro - Job" ...sorry, konnte ich mir nicht verkneifen, auch wenn ich irgendwo froh bin, dass man hierzulande nicht ganz ungebremst auf dem Betonboden der Wirtschaft aufschlägt. Und um die jetzige Chance zu erhalten, musste man erst mal gründlich und lange krank werden. Ich denke, man kann sich ausmalen, wie wichtig das jetzt für mich ist. Ich will hier auch nicht breit über mein verknäultes Leben lamentieren (jeder hat ja so seines...). Ich möchte nur nachvollziehbar erklären, warum es derzeit lediglich bei Worten und Demosounds bleibt.
 
Ein kurzer Realtime Controller Test:


play:
 
Ja, testweise hab ich das mal so verdrahtet, auch wenn die Modulationsstränge noch nicht voll implementiert sind. Ging mir nur darum, zu testen, wie man CCs glättet und dann effektiv in die Engine füttert. Was für eine Pointer - Orgie... aber mittlerweile läuft die Engine (32 OSC + FM, 12 Envelopes, 8 LFOs und Wavescanning + Oversampling) mit schmalen 2,3 % CPU pro Voice. Da sollte für ein paar Modulationsroutings noch Luft bleiben.

Hier noch ein Test, habe mal eine Wavetable vom alten Audio - Term I reingeladen. Die sind natürlich recht starr, aber gibt auch schon witzige Sounds:


play:
 
Das klingt auch sehr vielversprechend, also beides :)
Was wäre das für ein Prozessor, bei dem das 2,3% je Voice sind?
Läuft "der neue Waveterm" als Standalone oder Plugin?


Gruss
 
Der Prozessor zum Testen ist ein Athlon II 64 x2 250 mit 3.0 GHz, allerdings benutzt die Engine nur einen Kern. Auf dem uralten Pentium D 930, der als Entwicklungsrechner herhalten muss, braucht alles ca. 1,6 mal soviel CPU.

Das Ding ist eigentlich für einen eigenen Rechner gedacht (quasi als eigener Hardware - Synth), allerdings kann man die Klangerzeugung auch als VST laden, wenn man das unbedingt will.

Das zweite Beispiel mit der Wavetable ist natürlich etwas sehr einfach, da AT II ja Wavesequenzen benutzt. Die alten ATI Tables können zudem nur 'Sinus' und der alte Analysealgorithmus konnte keine variablen Pitches und keine Zeiten verarbeiten (wie auch, bei Wavetables gibt es das ja nicht). Daher ist der Import in die neue Software eher als Spielerei zu verstehen, AT II kann eigentlich deutlich mehr. Nur ist das eben noch nicht programmiert. :lol:
 
Ich ergänze meine Ergänzung:

src: http://soundcloud.com/cyclotron2010/audio-term-ii-examples3

Nebenbei habe ich dann noch mal die Formeln für das Anti - Aliasing durchgerechnet, weil mir das immer noch nicht so gefallen hat. Jetzt besteht das noch aus einer relative kurzen Zeile und skaliert zudem auch noch die Envelope, so dass man unabhängig von Samplerate, FM Ratio oder Anzahl der Partials immer einen (relativ) homogenen Klang über den gesamten Tastaturbereich (und naturlich darüber hinaus) hat. Im angehängten Beispiel hat der Carrier den Grundton + den 2, 4, 8, 32 und 64ten Oberton dazu. Der Modulator hat die Ratio 6,5.



Klingt nicht ganz so fett wie die Stacks vom Synclavier, aber ich bin ja auch noch nicht fertig. ;-)
 

Anhänge

  • At8_4.mp3
    1,9 MB · Aufrufe: 10
Mal schnell was geklimpert mit 'ner handvoll Sounds:


play:
 
wird immer geiler :)
aber irgendwas rauscht da superlaut bei den soundclouddemos

bei der mp3 hier At8_4.mp3
knistert gegen ende irgendwas unangenehm

ich hör ja echt nicht das gras wachsen :kaffee:
nimm doch mal audio direkt im Rechner auf, ohne den Umweg über I/O zu gehen?
 
Das sind alles Mitschnitte aus VST Host (direkt in WAV, ohne FX oder so), wobei die AT8_4.mp3 in der Tat etwas übersteuert ist.

Ansonsten kommt aber sehr viel Rauschen von der FM - je mehr Obertöne der Carrier hat, desto mehr geht das in Richtung Noise. Bei resynthetisierten Samples gibt es viele leise Obertöne, die sich dann durch das Detuning der Operatorstränge auch noch permanent umspielen, was zu einem Rauschteppich hinter den tonal wahrnehmbaren Klanganteilen führt. Bei "normalen" FM Synths wäre das ziemlich straightes Aliasing, aber das findet hier nicht hörbar statt - sagt auch das Spektrogramm. Trotzdem werde ich da noch mal ein paar Tools dranhängen.

Die derzeitigen Test sind so ausgelegt, dass viele Klänge die Grenzbereiche der Engine austesten, wobei ich jetzt hier keine drögen "Testsweeps" posten wollte. Für das spätere Sounddesign muss man natürlich mehr Aufwand treiben als ein paar zweckentfremdete Wavetables mit FM zu versehen. Auch den Demotrack habe ich nur in knapp 10 Minuten zusammengepappt. Das soll eher dokumentieren, dass das Projekt nicht tot ist, aber für "richtige" Demos oder gar gezieltes Sounddesign ist es noch viel zu früh. Ein Jahr dauert das bestimmt noch, denn das ist durchweg alles Neuland für mich (inklusive der Programmiertechniken). Es gibt zwar Tutorials und Frameworks für VSTi Entwicklung, aber das ist für so einen Synth alles viel zu hungrig.
 
ah, danke für die Erklärung, ich hatte den Eindruck da wäre irgendwas bei den aufnahmen schief gelaufen, war nicht böse gemeint :)
 
Teilweise scheint es auch an der Reduktion bei Soundcloud bzw. in den MP3s zu liegen. Gerade bei perkussiven Sounds ist da ein Rauschen zu hören, das definitiv nicht vom Synth kommt. Wenn das alles irgendwann mal fertig ist werde ich aber ohnehin neue Demos erstellen, die dann auch repräsentativ sind. Bis dato geht es wie gesagt eher darum, grob die Richtung zu zeigen bzw. dass man noch lebt. ;-)
 
Ich kenne das Synclavier ja nur aus den gängigen Youtube Videos und aus dem, was so an Manuals herumgeistert. Da habe ich leider keinen wirklichen Vergleich, aber es gibt schon Sounds, die man mit dieser Software nicht hinbekommen würde (oder zumindest nicht so gut in den oberen Lagen).

Ich habe da auch nichts drin, was irgendwie versucht, die alte Technik zu emulieren. Ein einzelner Operatorstrang klingt auch ziemlich unspezifisch. Man sollte gar nicht glauben, was die Chorus - Voices und das Detuning / Random Tuning zum typischen Klang beitragen. Das in Kombination mit dem Fehlen von Aliasing und den eigentlich sehr begrenzten Möglichkeiten des FM - Teils machen schon einen großen Teil des Klangbildes aus. Man landet fast zwangsläufig in dieser Ecke.
 
Ich hab mal wieder etwas Zeit gehabt und u.a anderem das Problem des Volume Scalings und des Phasings gelöst:

Die Engine führt nun einen Vergleich aller Oszillatorfrequenzen durch und aktiviert bzw. deaktiviert die Chorusvoices bei Bedarf. Parallel wird die Lautstärke automatisch angepasst. Braucht noch ein wenig Nacharbeit, aber läuft schon mal knackfrei und schlank.

Und statt dem dreihundertsten MP3 will ich mal was anderes versuchen: Ich hab testweise zwei DLLs kompiliert (32 und 64 bit). Die können nur einen Sound - also kein Synth sondern nur eine Demonstration am lebenden Objekt. Ein paar der zigtausend Parameter kann man aber verändern, damit es nicht ganz so langweilig ist:

  • Volume: ratet mal
    HEnv: steuert hier nur den Attack Level der Index - Envelope (der Einfachheit halber hier für alle Timbres gemeinsam)
    EChor: Tuning Ratio des globalen Chorus (+/- 2 octaves)
    FmRatio1...4: FM Ratio für Timbre 1...4
    TChor1...4: Tuning Ratio für Chorus von Timbre 1...4 (+/- 2 octaves)

Auch wenn man es nicht hört (weil nicht gerouted) wird hier die ganze Engine inclusive aller LFOs, Envelopes und den Routinen für die Kommunikation mit der Steuerungssoftware berechnet. Was in der Struktur noch fehlt ist das Routing der Midicontroller und insgesamt ein wenig Feinabstimmung. Ich sage das nur, falls sich jemand über die CPU Last für das bisserl Klang wundert. Ansonsten hoffe ich, dass das in allen Hosts absturzfrei läuft. Mit VSTHost geht es auf alle Fälle.
 

Anhänge

  • Test.zip
    193,5 KB · Aufrufe: 6
Grad probiert: Beim mir funktioniert die 64-bit Version in Cubase 8.5. Sehr schön, genialer Klang. Macht sich gut zwischen dem ganzen analogen Gedöns hier.
 
Schon mal gut, dass das mit den 64 Bit läuft. Habe dafür eine Reihe von Compilern probiert, deren Ergebnisse allerdings in manchen Hosts schlicht nicht gelaufen sind (z.Bsp. lief eine DLL zwar in SaviHost, aber nicht in VSTHost...).

Was den Sound betrifft: Der Frequenzgang ist nahezu linear bis 18.350 kHz , danach regelt das Filter bis auf -140dB ab. Aliasing sollte keins auftauchen, auch wenn man (später) komplexere Trägerwellen mit bis zu 64 Partials nimmt und / oder die Tonhöhe moduliert. Das ist dann eher der Weg, mit einem solchen System auch Rauschen erzeugen zu können (hat ja kein Feedback).

Natürlich muss da noch viel Arbeit rein, wann immer Zeit ist. Sehr viele Details fehlen auch noch bzw. müssen vernünftig abgestimmt werden. Und dann wäre ja noch die eigentliche Anwendung, das hier ist ja "nur" die Engine zur Wiedergabe.
 
Nachtrag: Falls noch jemand die Dlls ausprobiert würde mich mal interessieren, ob die Cpu Last noch im praktikablen Bereich liegt oder schon Probleme macht. Auch wäre interessant, ob sich irgendwie Denormals oder andere Hässlichkeiten bemerkbar machen. Nur weil es hier auf meiner altersschwachen Möhre funktioniert, muss es ja nicht andernorts genau so sein - manche Hosts tun sehr merkwürdige Dinge, wie ich feststellen durfte. Ich bin für alle Hinweise dankbar!

In der vorliegenden Konfiguration mit 32 Osc pro Note hat man übrigens 8 Stimmen Polyphonie. Die wird automatisch anhand der benutzten Layers berechnet (momentan zwischen 8 und 32), was man hier aber nicht einstellen kann - ist ja nur ein "Feldversuch".

Das Voice Stealing bei voller Auslastung der Polyphonie ist momentan noch fast genau so unflexibel wie beim Vorbild: Es wird immer die älteste Note geklaut. Erst Noten im Release, dann Noten mit gehaltenem Sustainpedal (kann man hier auch mal simulieren, indem man das Modwheel hochdreht - mein Pedal ist nämlich grad nicht auffindbar). Wenn das nicht reicht, werden normale Noten abgeschnitten. Allerdings sollte das schon nahezu nebengeräuschfrei funktionieren - das ist wichtig, weil die Layers ein modulierbares Predelay haben und ein abruptes Abschneiden der Noten dadurch u.U. ziemlich deutlich hörbar wäre.
 
Dynamische Modulatorquantisierung... macht die synclaviertypischen 8Bit FM - Artefakte im Bass, ohne in höheren Lagen inharmonisches Klirren zu erzeugen. Das Kann man ggf. auch stufenlos wegdrehen.
 

Anhänge

  • DynamicModulatorQuantization.mp3
    2,1 MB · Aufrufe: 7
Klanggefurze mit dem Pitch LFO:



Künstlerisch mal wieder nicht so schön. Da ich grad an diesem Rechner keine Tastaur habe, muss eine Note reichen. Es zeigt aber, dass sowohl die Operatoren als auch die LFOs selbst kein (wahrnehmbares) Aliasing produzieren. Das Tremolo / Panning erspar ich euch - es läuft aber ebenso glatt und nebengeräuschfrei, selbst mit Rechteck- oder Zufallsmodulation.

Edit: Und da ich grad dabei bin: Noch ein Geräusch, das gerade am Anfang schön die Modulatorquantisierung zeigt:
 

Anhänge

  • PitchLfoTest.mp3
    3,6 MB · Aufrufe: 7
  • crescendo.mp3
    1,1 MB · Aufrufe: 5
Erfrischend anderer Klang! Durch was entsteht der Stereo Eindruck? Ist da noch ein Effekt drauf?
 


Neueste Beiträge

News

Zurück
Oben