tymes2 hat geschrieben:Das scheint noch komplizierter zu sein als man sich vorstellen kann - ich habe jetz mal in dem oben beschriebenen Setup einen Knob mit der Range 0-10 (100 Steps) genommen: schon stimmt meine gemachte Aussage nicht mehr. Das Numeric Display zeigt zwar die korrekten Werte an, übertragen wird aber ein abweichender Wert (z.B. 8,29998 statt 8,3). Das gilt auch für eine wesentlich kleinere Range für die IC send/receive, bspw. 200 / -200 (oder auch 100 / -100). In dem Moment, wo ich allerdings für die untere Range der ICs hier 0 eintrage, ist Alles korrekt.
Nächstes Scenario: Knob -1 bis 10 (number of steps = 91 damit auch mal schräge Werte übertragen werden müssen). Max bei send/rec 999, Min auf -100. Schon treten Abweichungen in der letzten Stelle auf (Numeric rundet wieder auf den korrekten Wert), die man durch Schweben des Mauszeigers überm Kabel angezeigt bekommt. Verringern des Max der ICs auf 100 (Range ist jetzt 100 / -100): selber Fehler (der sich übrigens bei Knob-Werten < 1 auf die letzten beiden Stellen erweitert). Weiter - der Min-Wert der send/rec wird auf -10 eingestellt. Jetzt scheint Alles korrekt übertragen zu werden BIS AUF die Werte < 1, hier treten wieder minimale Abweichungen auf. Wenn ich nun den Min Wert der ICs auf den Min Wert des Knobs einstelle (hier also -1), dann arbeitet die Übertragung anscheinend fehlerlos, auch bei Werten nahe 0. Das auch, wenn der Max Wert der ICs auf 999 gesetzt wird (oder auch 9999!). Offensichtlich ist der untere Wert hier kritisch. Ich hänge das kleine Test-Ensemble mal an. ACHTUNG: beim Ausprobieren immer den Mauszeiger zum Überprüfen der Werte benutzen, das Knob-Display ist generell auf zwei Nachkommastellen gerundet!! Und auch ganz kleine Werte nahe 0 prüfen - manchmal scheint im Bereich >1 alles okay zu sein, im Bereich <1 ist es das nicht! Das Ensemble ist übrigens in R5.1.1 erstellt (OS X 10.4.8).
Edit: die Fehler sind allerdings soo gering, dass ich mich frage, ob man die nicht vernachlässigen kann?!?
Bei Wert 1,05 (send wire : 1,05495, receive wire : 1,05494).
Ich denke mal folgendes: Die IC-Send und IC-Receive bekommen durch ihre Range-Einstellungen eine Auflösung mit der die ankommenden Daten "gerastert" werden; mit diesem "Trick" habe ich zum Beispiel im ModularMini erreicht, dass ich auch beim Einfügen von neuen Modulen nicht ständig die IC-Sends und IC-Receive Properties umändern muss.
Generell glaube ich aber, dass die IC-Verbindungen eigentlich vorrangig für ganzzahlige Werte, besser eindeutig diskrete Werte, also Rundungs unempfindliche Werte gedacht sind, da sie ja andere Module steuern sollen. Früher (R3.3) gab es diese Möglichkeit der Steuerung ja auch bei anderen Modulen (Knobs etc.). Das war immer zweideutig, daher wurde das in R5 (glaube ich) geändert. IC-Verbindungen sind eigentlich dazu da andere Elemente (z.B. Switches) in definierte Zustände zu bringen (Schalterposition).
Daher sind diese Rundungsfehler eher unbedeutend. Natürlich muss man dies wissen, wenn man "empfindliche" Daten übersendet. Ich würde versuchen, alle Daten so zu "verschlüsseln", dass sie ganzzahlig sind und beim Empfang wieder zurückrechnen; dann ist man auf der sicheren Seite, abgesehen davon, dass die anschließende Logik viel einfacher zu bewältigen ist. CPU-mäßig ist der zusätzliche Aufwand eh unerheblich, da ja IC-Verbindungen keine Audiodaten senden können (leider).
Ich würde aber im Fall des Ensembles von CarlosKleiber IC-Verbindungen ganz vermeiden und einfach eine Datenleitung (Eventbus kommt in ein paar Tagen) zwischen die beiden Instrumente legen. Das ist eine saubere und auch übersichtliche Lösung. Abgesehen davon würde man auch diesen Bus polyphon verwenden können; alle Voice-Module entfallen. Das ist viel einfacher.
Wer schreibt mir übrigens eine englische Übersetzung zum Eventbus (ca. eine Seite)? Das ist für mich der häufigste Grund, nicht schnell zu veröffentlichen; ich tue mich darin so schwer und nur dreist einen deutschen Text beizulegen (ohne den geht es nicht) traue ich mich nicht.
ciao herw