Er gab mir mit seinem ACEW eine schwere Nuss zu knacken, bei der es zum Zusammenbruch des ganzen Systems kam (Kabelverknüpfungen wurden in „falscher” Reihenfolge interpretiert.
Ich habe mich überzeugen lassen, dass asynchrone Events unbedingt zu vermeiden sind. Netterweise hatte Mark schon ein entsprechendes Makro erstellt, so dass ich darauf zurückgreifen konnte.
Im Laufe des Tages gab es viele Tücken zu lösen oder zu umschiffen.
Auch haben wir festgestellt, dass PC und Mac, obwohl intern mit demselben Prozessor i7 ausgestattet, doch unterschiedlich reagieren, insbesondere offenbar beim Händeln mit dem Multidisplay; eine Änderung der Transparenz der Kabel z.B. ergibt beim Mac einen geringeren CPU-Ausschlag, beim PC einen deutlichen CPU-Peak, was zeigt, dass diese ganze CPU-Messerei wohl Augenwischerei ist (auf beiden Systemen).
Dann machte mir auch zu schaffen, dass beim Umschalten der Snapshots es zu einem ärgerlichen „Knacken und Kracksen” kam, das mich stundenlang genervt hat.
Lösung war schließlich, dass beim Umschalten und „Kaltschalten” eines Ausgangs die letzten Werte erhalten blieben und fröhlich auf den nicht mehr verbundenen Eingang nahmen. D.h ich musste erreichen, dass beim Lösen der Verbindung alle Werte im entsprechenden Eingang auf 0 gesetzt werden (Makro set nil im Bild). Irgendwie hat es geklappt, das muss ich aber unbedingt dokumentieren, denn schon nach 14 Tagen werde ich das ganze nicht mehr durchschauen und wer weiß, wann ich weiter arbeiten kann: Man erkennt auch, wie ich jetzt nur noch ein SpeicherArray M benutze (Marks Idee); es gehören immer zwei Elemente zusammen, auf den geradzahligen wird angezeigt (shift links erzeugt geradzahlige Zahlen), dass ein Event kommt, auf den ungeradzahligen (das oder-Modul addiert hier 1) ist die eigentliche Information. Der Trick dieser doppelten Buchführung besteht (unabhängig ob ein oder zwei Felder) darin, dass auch einzelne (wertgleiche) Events erkannt werden. Durch die Synchronisation mit dem SampleRateTick,wird sichergestellt, dass einzene Events auch wirklich alle Eingänge erreichen können. Mit SampleTick-synchronen Events bekommen alle Eingänge ihre Werte.
Wichtig ist dabei auch, dass man dieselben Ergebnisse erzeugt, wenn die Reihenfolge der Module sich ändert:
in den nächsten gezeigten snapshots wurde lediglich die Rolle der beiden SCOs als Modulator und Träger vertauscht. Das musikalische Ergebnis ist in der Tat nach dem Hören identisch: ciao herw
Übrigens, was ich noch gar nicht wusste und worauf mich Mark aufmerksam machte ist, dass es alte und neue Regler in REAKTOR gibt. Dass die Properties sich für Regler gegenüber früheren Versionen geändert haben (Verwaltung von stepsize zum Beispiel) kann man leicht erkennen. Neue Regler haben intern einen Stepfilter eingebaut, so dass sie niemals mehr zwei gleiche Werte beim Panelregeln senden. Leider werden in existierenden alten Ensembles (R5.6 ?) die Properties ebenfalls geändert, doch ist der Stepfilter nach wie vor nicht enthalten. Hat man also einen Regler aus einem älteren Ensemble kopiert, so ist er immer noch alt. D.h. man muss alle benutzten Regler einzeln durch neu eingefügte ersetzen

Sollte ich mal im Thread Kernschmelze erwähnen.