So, hab grad mal etwas resumiert, wie der aktuelle Stand in Bezug auf die Feature Requests ist. Mal die ersten 3 Seiten des Threads zusammengefasst:
Der Moogulator war am aktivsten:
schnelle Modulationsoszillatoren
man kann einen VCO zur Modulation benutzen, und wer keinen opfern möchte, bzw. den echt analogen Modulationsoszillator nicht zwingend für nen Sound braucht, hat mit den Envelope Prozessoren ein Tool, um quasi alles zu machen, was er braucht. Die Beschreibung derer kam ja schon im Detail, die Taktung ist 1ms, also lassen sich maximal 0,5KHz Rechteck aus den Dingern rausziehen, und in Langsam kann so ein Modulationsprogramm über viele Stunden laufen, ohne sich zu wiederholen.
schnelle Hüllkurven
Die Updates sind noch nicht gesynct, wie gesagt ist die slew rate der CVs inklusive Wirkung der VCAs im Moment unter 0.1ms (0.046ms waren die letzten Messungen). Neben den Latenzen nach dem Anschlagen eines Tons, die sich inklusive Midi-Übertragung, Routing, CV-Update und so bis zu 3ms hinziehen können, kommt dann, wenns mal losgeht, der Ton quasi "sofort" raus. Die Organisation der CVs und damit die Update-Reihenfolge ist grob zusammengefasst folgende:
- alle digitalen Controls, Waveform-Auswahl, Routing, Filtertyp, Noisetyp und so Zeug
- VCO-Pitch
- Output-VCAs der VCOs
- Input-VCAs der VCOs (Modulationen)
- Filter Cutoff/Reso
- Filter Output-VCAs
- Filter Modulationsinput-VCAs
- Noise Output-VCAs
- Ext In Output-VCAs
- Ringmod Output-VCAs
- Finale Output-VCAs
Die Reihenfolge kann sich noch geringfügig ändern, aber allgemein findet das Update in einer Reihenfolge statt, die vorne bei den VCOs anfängt und hinten bei den Ausgangs-VCAs aufhört. Also werden die VCAs generell nach sonstigen Parametern irgendwelcher Komponenten gesetzt. Wichtig bei Attack vom Ausgangs-VCA, wenn der aufreißt, sollte der Rest ja schon stimmen.
Sample&Hold
Ist noch nicht klar definiert, ich brauch im Prinzip 2 Betriebsarten - Flanken und Pegelgetriggert. Ich will ja vielleicht nen Wert nicht einfach spontan speichern, sondern den S&H ne Weile "gaten", daß er mitläuft, und dann irgendwann wieder zumachen. Im Prinzip einfach hinterm Gate ein Kondensator einschaltbar, um das Ding auf Flankentrigger umzuschalten. Das Gate des S&H soll sowohl von der CPU als auch von analogen Quellen steuerbar sein, z.B. Noise oder VCO.
Unterschiedliche Konfigurationen
Alles frei konfigurierbar im Bereich des Möglichen der Kiste. Und das ist nicht so wenig
Für die Übersichtlichkeit gibts die Templates, also quasi einige "Synthesizer-Modelle" zum Auswählen. Templates kann man auch selber erstellen.
Modulierbares Delay/EQ/Phase
Wenn ich noch Platz hab, kommt vielleicht ein Chrorus in analog mit rein, der Rest ist in analog eher aufwändig zu realisieren, und nen DSP pack ich nicht noch mit rein. Je nach Interpretation von "Delay" kann man da aber mit den Modulationsprozessoren auch einiges machen. z.B. könnte man zwischen den Pseudocontroller für Gate/Trigger noch nen Modulationsprozessor schalten, der Gate/Trigger erst später "durchreicht". Und mit noch ein paar Modulationsprozessoren mehr kann man im Prinzip ausgehend vom echten Velocity-Wert in nem Ramp-Down und Multiplikation wiederholende Trigger mit sinkender Velocity schicken, was im Prinzip die einmal gespielte Note wie ein Echo spielt. Genau genommen kann man mit den Modulationsprozessoren den meisten Schweinkram machen, man muß nur die Ideen haben, wie man es modelliert. Fällt mir selber gelegentlich schwer
Modmatrix als Tastermatrix mit LEDs
Das ist schon wieder User Interface, das kommt später, aber die Idee hatte mich spontan wieder etwas begeistert. Muß mir das mal aufmalen, ob sich sowas in meinem Modell abbilden lässt. Wenn, dann wärens 8x8 Taster/LEDs, weil sowohl Audiobus als auch Modulationsbus je 8 Leitungen umfassen. Diese Matrix ist dann umschaltbar, je nachdem, was man gerade schaltet. Durch die Interconnects zwischen den Voiceboards mach ich evtl. auch 9x9 Taster/LEDs, um diese mit zu berücksichtigen.
0.1ms Auflösung bei Modulationsprozessoren
Theoretisch machbar, aber da dann die 0.1ms Gesetzgebung für alles wäre, also auch CV Multiplexer und sowas, würde es den Aufwand und damit auch den Preis exponentiell in die Höhe treiben. Ich bräuchte stellenweise dann den 8-fachen Bauteilaufwand, insbesondere bei dem 30-40 EUR teuren DAC. Davon wären es 8 pro Voice board, wenn ich auf 0.1ms setze, bei 8 Voice boards entsprechend 64 Stück, macht bei günstigem Einkauf 1920 EUR für DACs, und selbst mit gerade noch akzeptableren billigeren DACs wärens kaum unter 1000 EUR. Ich denke, das ist unverhältnismäßig. Dazu kommen noch 3-4 mal soviele CPUs, um schneller rechnen zu können. Daher die Auflösung 1ms.
Impulsgenerator mit Dichte-Parameter
Wie wäre es mit einer "Pulsweitenregelung" für den Noise? Einfach ein Komparator, wo aufm einen Eingang Noise, aufm anderen ein Schwellwert reinkommt, und hinten kommen (digital) dann die Noise-Pulse über dem Schwellwert raus. Bei Schwellwert "0" wäre das dann der ganze Noise in stark übersteuert, und je höher man den Schwellwert dreht, desto weniger Pulse pro Zeit kommen hinten raus.
Env - Geschwindigkeit - Kurve, Bipolar, Invertiert
Das mit den Kurven hab ich noch nicht implementiert. Die kommen vermutlich dann an anderer Stelle und sind einfach Übersetzungstabellen im ROM. Geschwindigkeiten der Modulationsprozessoren sind ja mit Aufläsungen von 1ms in sehr schnell und mit Auflösungen von 100ms bis zu mehreren Stunden hin konfigurierbar. Restlos alles im Routingsystem und den Modulationsprozessoren ist auf bipolar ausgelegt, Wertebereich der Modulationsprozessoren -32768 bis 32767, Wertebereich zum Zusammenrechnen, also im Router, -2Mio bis +2Mio, Invertierung durch Multiplikation mit -1 im Router und Modulationsprozessor möglich.
Verschiedene Noise-Effekte, Kammfilter
Kammfilter wirds wohl nicht geben. Aber es sind 2 SVF drin, Also 12dB Multimode-Filter. Das macht zwar Kamm wie in "Kamm für Homer Simpson", aber immerhin geht ein wenig was. Beide Filter können in je 8 Betriebsarten fahren, darunter auch 6dB Bandpass und Bandsperre. Außerdem sind beide Filter völlig unabhängig voneinander, was Cutoff/Reso/Typ/Amplitude angeht.
finale VCAs lin/exp
Werden vermutlich nur exponentiell. Allerdings geht der Ausgang eines Voice Boards nicht nur auf seinen Einzelausgang raus, sondern noch vorm VCA auf den Stereo-Summierer, wo dann panning linear steuerbar ist. Und da das Panning im Prinzip einfach 2 Lineare VCAs pro Voice Board sind, und dann am den beiden Masterausgängen auch noch je ein exponentieller VCA klemmt, ist da durch passendes Routing also auch ein linearer VCA am Ausgang möglich. Der Master, der die Voice Boards steuert, wird also ebenfalls nochmal ein gewisses Routing beinhalten. Und da ich dann da auch nochmal CVs brauche, wird vermutlich dieser Kram eines Voice Boards "recycelt", es sind überflüssige CVs vorhanden, die dann einfach nach außen geführt werden. Kann man immer mal brauchen.
phasensteuerung der VCOs
Ist vorgesehen. Die Sync der VCOs ist umschaltbar zwischen VCO und CPU. Jeder VCO hat seine eigene CPU. "VCO" bedeutet, daß der vorgänger-VCO synced, also 1->2. Bei mehreren Voice Boards sind die miteinander verschaltet, fasse ich also 2 Voice Boards zusammen, könnte ich die Sync maximal so schalten: 1->2, 2->3, 3->4. Bei CPU-Sync wird der VCO von der CPU gesynct. Damit ist im Prinzip eine Phasensteuerung möglich, aber es ist ein analoger Synth. Also pitch muß dann etwas tiefer sein, damit nicht der VCO selber vor der Sync entlädt, Toleranzen und so, außerdem ist die phasenlage bei modulierten VCOs natürlich nicht mehr sauber steuerbar auf diese Art. Die Sync ist nur aus den der CPU bekannten Werten steuerbar, die dann Notenwert, Pitchbender, Modulationsprozessoren und sowas einschließen. Die Frequenz wird dann aus ner Übersetzungstabelle ermittelt, quasi genau aus dem Wert, der für die CV generiert wird. Und neben dem Frequenzwert werde ich dann wohl noch nen "delay" einbauen, also prozentuale Verschiebung gegenüber dem anderen VCO. Das ist aber noch nicht realisiert, die Hardware dazu ist gebaut, aber bei der Software hab ich noch keine Energie reingesteckt, da das insgesamt für ne brauchbare Präzision auch ein klein wenig aufwändiger wird, was das Timer/Interrupt-Handling angeht.
FM amounts modulierbar
Sind sie. Bezogen auf die Modulationsbusleitungen sind:
bei VCOs sowohl Einspeisung in den Bus als auch der Weg Bus->VCO jeweils mit nem VCA beschaltet. Ein VCO hat also am Ausgang Richtung Modulationsbus neben der Leitungsauswahl auch ne Pegelauswahl. Übersteuern ist dabei auch möglich, es wird geclippt, wenns zuviel wird. Am Eingang gibt es je einen VCA für pitch exp, pitch lin, Pulsweite. Und das Eingangsrouting dieser 3 Parameter ist separat einstellbar (für pitch lin gibts 2 solche Eingangsrouter, aber nur einen gemeinsamen VCA dafür, also muß man die Einspeisung in den Bus entsprechend regeln), man kann je eine der 8 Modulationsbusleitungen (oder eben auch keine) verwenden.
Alle anderen Komponenten sehen im Prinzip gleich aus, haben aber voraussichtlich keine Eingangs-VCAs mehr, also ist nur der Ausgang regelbar. Wenn ich noch genug Platz (und übrige CVs habe), bekommt vielleicht noch zumindest der Filter-Cutoff ne Regelung der Eingangsmodulationsamplitude.
sonicwarrior wollte noch:
Punch-Parameter für Hüllkurven (delay zwischen Attack und Release)
Kein Problem mit den Modulationsprozessoren
Filter Studio Electronics
Muß ich mal anschauen, was der magisches hat, aber mein SVF-Design ist mittlerweile festgesetzt, weils sauber tut und viele Möglichkeiten bietet.
Ich@Work wollte:
Velocity frei routbar
Kein Problem, Velocity (als auch Release Velocity, Aftertouch, Channel pressure) ist überall hin routbar.
Tom wollte EMS Diodenfilter - kommen auch in Default nicht rein. Aber da mein Filter mittlerweile ausreichend Umfang hat, daß die beiden Filter alleine auf einem Board sind, und dieses Board austauschbar ist, kann man das machen. Bezieht sich aber auf das aktuelle Design mit den vielen (werden 12-13 Stück pro Voice Board) kleinen Modulen. Sollte ich das nochmal ändern, befinden sich mehrere Komponenten auf einem Modul, was dann in Sachen Austausch nicht mehr so effizient ist. Aber ich behalte es auf jeden Fall im Hinterkopf, daß man die wichtigen Komponenten wie bei einem Modularen austauschen kann.
Das Routing hab ich ja auch schonmal beschrieben, es gibt das Routing in der Elektronik per Analogschalter, das ist relativ primitiv, und daneben gibts sehr leistungsfähiges Routing (128 Einträge in der Routingtabelle) in Software, nebst 24 Modulationsprozessoren. Und 48 oder 64 User-zuweisbare Controller. Dazu 64 Benutzervariablen (Register) und 32bit-Auflösung, wo man also viel Zeug zusammenaddieren kann, um hintenraus dann mit ner Division relativ verlustfrei nen Präzisen Wert auf seine CV bekommt. Viele der Register können auch von den Modulationsprozessoren benutzt werden. Und das ganze gilt pro Voice Board, also ist all dieses Routingkram für 2 VCOs, 2 Filter, Noise, Ringmodulator, Sample&Hold und die ganzen VCAs zuständig. Es sind also genug Reserven da, um die Modulationen zu modulieren, und um die modulierten Modulationen zu verwenden, um andere modulationen zu modulieren
Und um das gesamte Konzept in wenigen Worten zusammenzufassen: Es ist, um das moderne Wort zu verwenden, ein "modeling synthesizer" mal anders. Es wird nicht digital ein analoger Synth modelliert, sondern es wird ein modularer Synth moduliert, wenn man so will. Im Prinzip ist das Ding aufgrund des sehr freien Routings von der Funktionsweise her mit einem modularen Synth vergleichbar, der aber die Power der digitalen Ansteuerung mit beinhaltet.