KlangRaum hat geschrieben:Das Problem kenn ich gut. Die maximale Anzahl an Core-IO hab ich noch nicht ausprobiert (schätze mal, das es vielleicht auch nicht immer weiter helfen könnte), aber Du könntest mal versuchen mit den „Drahtlosen“ -(Send/Recieve) zu arbeiten und bestimmte Signale die mehrfach innerhalb der Struktur benötigt werden, damit weiter zu routen. Das frisst aber uU. einiges an Performance und kann auch zu einer nervigen Angelegenheit werden, wenn man solche Macros über das Clipboard mehrfach einkopiert und per Hand die Send/Recieve-Zuordnung korrigieren muss, weil Reaktor hier manchmal Alzheimer bekommt.....
Letztendlich ist das sogar ein generelles Problem: Wenn die Komplexität von solchen „Supermacros“ an der 40er-Hürde scheitert, kommt man nicht drum herum, die Schaltung komplett umzustrukturieren. Das kann jedoch -je nachdem wie weit man bereits fortgeschritten ist- in einer Sackgasse enden und die gesamte Schaltung wird am besten von Grund auf neu aufgebaut.
Gruss
Peter
Die Beschränkung gibt es bei Core-Makros ebenfalls. Eine Schaltmatrix mit vielen Schaltmöglichkeiten sollte man in keinem Fall mehr durch direkte Verkabelungen konstruieren. Die Drahtharfe wird gigantisch. Auch das GUI sollte man sich genau überlegen. Eine 64mal64 Schaltmatrix ist unübersichtlich, auch wenn vielleicht aus historischen Gründen das gewollt ist. PullDown-Menus sind ab einer bestimmten Länge auch nicht gerade wünschenswert, aber zumindest wesentlich Platz sparender. Verkabelungen auf dem Bildschirm sind offenbar nicht jedermanns Sache, obwohl sie sehr praktisch sind.
Es geht dir aber offensichtlich um eine Emulation, daher ist das GUI quasi vorgegeben durch eine Schaltmatrix.
Es gibt zwei Möglichkeiten, die 40-Ports-Grenzen weit zu überschreiten:
Wie Klangraum richtig beschreibt, kann man mit send-receive-Verbindungen im primary-Level das Problem elegant umgehen. Hier gibt es keine Beschränkungen, doch erfordert die Verwaltung eine sorgfältige (logistische) Vorbereitung der gesamten Struktur: welche Art von Informationen sollen eingespeist werden (Event-Signale, Audio-Signale, Steuersignale, monphon, polyphon). Wie werden die Schaltungen gesteuert (IC-Send-Receive !)?
Das erfordert aber einigen programmiertechnischen Aufwand in der Logik.
Eine weitere Möglichkeit besteht in einem Eventbus. Es ist damit möglich, auf einem Port mehrere Informationen „parallel” zu verarbeiten, also zum Beipiel ein LFO-Signal und ein ADSR-Signal und ein Regler-Signal können unabhängig Informationen über dieselbe Leitung schicken. Hier wird ausgenutzt, dass Events immer augenblicklich verarbeitet werden. Gibt man diesen Events ein Kennzeichen mit (verschlüsselte Adresse), kann man diese über eine Leitung einspeisen und durch eine Entschlüsselung wieder trennen. Klingt sehr kryptisch, ist aber einfach realisierbar: zum Beispiel möchte man ein ADSR-Signal und ein LFO-Signal parallel über
eine Leitung schicken. Beide Signale haben die Amplitude 1. Addiert man zum ADSR-Signal eine konstanten Wert (zum Beispiel 2), so schwankt das LFO-Signal zwischen -1 und +1, das ADSR-Signal zwischen 2 und 3. Durch einen Comparator und Router kann man die Signale ohne weiteres wieder trennen. REAKTOR ist so schnell, dass man sehr viele Event-Signale auf diese Art und Weise über
eine Leitung verschicken kann.
Es gibt hier noch andere Möglichkeiten, zum Beispiel, indem man jeweils durch die Eventquelle zwei Events erzeugt, wobei der eine das eigentliche Wertesignal ist der andere eine Adresse.
Bei Audiosignalen kann man die Send-Receive-Verbindungen nehmen. Ein Audiobus (mehrere Audiosignale parallel auf einer Leitung) ähnlich dem oben beschriebenen Eventbus ist durch unterscheidbare Sample-Rate-Clocksignale möglich (wurde schon mal diskutiert), aber sehr CPU-intensiv und lohnt sich letztendlich nicht.
ciao herw