Problem mit IC Send Modulen

Diskussionsforum für Fragen zur Struktur und Implementation in REAKTOR, auch DSP, Literatur und begleitende Software

Moderator: herw

Benutzeravatar
toxonic
synth professor
Beiträge: 322
Registriert: 2. Januar 2007, 20:46
Wohnort: Stuttgart
Kontaktdaten:

Problem mit IC Send Modulen

Beitrag von toxonic »

hallo! ich versuche gerade die ausgangswerte eines eventtables per internal connection an einen knopf zu senden (werte zwischen 0 und 1/auflösung 8 steps). hab also den ausgang des tables mit einem ic send modul verbunden (in den properties min0/max1 angegeben) und hab eine verknüpfung mit dem entsprechenden knopf hergestellt. mein problem ist nun, daß die werte nicht sauber übertragen werden. bis zu werten von 0,5 geht noch alles glatt, bei einem wert von z.b. 0,75 der am ic send modul anliegt wird dann aber beispielsweise ein wert von 0,625 am knopf angezeigt.... was ist mein fehler?
danke im voraus,

joe
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

jup, diese IC dinger können einen schon echt nerven;)

kann ich dir jetzt auch nich beantworten, ich erinner mich nur an nen ähnliches prob (war aber simpler, es ging nur um an/aus) dort funzte es aber auch nicht, erst als ich die range in einer der komponenten halbiert hatte, ging es plötzlich. selstsam, seltsam, das alles.

aber schau mal unter workshops, da gibts nen send/recieve tutor. vielleicht hilft dass.

falls nicht: ende der woche ist der meister wohl wieder online und wird dir bei offenen fragen bstimmt weiterhelfen.
Zuletzt geändert von helmsklamm am 30. Januar 2007, 13:38, insgesamt 1-mal geändert.
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
Benutzeravatar
toxonic
synth professor
Beiträge: 322
Registriert: 2. Januar 2007, 20:46
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von toxonic »

hmm, dann guck ich mal nach dem tut! :lol:
Benutzeravatar
toxonic
synth professor
Beiträge: 322
Registriert: 2. Januar 2007, 20:46
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von toxonic »

nee, hat mir nix gebracht! das tut ist noch in arbeit und in dem kleinen teil, der über internal connections geht, ist mir keine lösung ersichtlich! mhh, naja... muss ich wohl noch ein bisschen rumprobieren....
Benutzeravatar
toxonic
synth professor
Beiträge: 322
Registriert: 2. Januar 2007, 20:46
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von toxonic »

aaaalso.... das scheint wirklich an der auflösung des reglers zu liegen, bei den standardmässigen 127 steps überträgt das ic send-modul sauber, wenn man die auflösung (so wie ich) auf z.b. 8 steps runterfährt, dann werden plötzlich falsche (bzw. ungenaue) werte übertragen! warum? scheint wohl irgendwie ein buck zu sein, oder?
okay, ich hab's einfach umgangen indem ich die auflösung auf 127 steps hochgefahren habe und dann einfach die ausgabewerte des drehknopfs per quantizer auf 0.125 große steps quantisiert habe - aber dennoch nervig! oder gibt's da noch elegantere tricks?
Benutzeravatar
tymes2
meister
Beiträge: 118
Registriert: 10. Mai 2006, 16:48
Wohnort: Hamburg
Kontaktdaten:

Beitrag von tymes2 »

Das ist ein Problem der Mouse-Resolution: die muss scheinbar ein ganzzahliges Vielfaches der Anzahl der Steps sein. Bei 8 steps wären das 128 (oder 120 etc). Beim default von 127 läuft der Knopp unrund.
Grüssung-> Jo.
Benutzeravatar
toxonic
synth professor
Beiträge: 322
Registriert: 2. Januar 2007, 20:46
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von toxonic »

oha.... da wäre ich net drauf gekommen, werde ich mir gleich mal ausprobieren! :D gracias
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

toxonic hat geschrieben:aaaalso.... das scheint wirklich an der auflösung des reglers zu liegen, bei den standardmässigen 127 steps überträgt das ic send-modul sauber, wenn man die auflösung (so wie ich) auf z.b. 8 steps runterfährt, dann werden plötzlich falsche (bzw. ungenaue) werte übertragen! warum? scheint wohl irgendwie ein buck zu sein, oder? ...
absolut kein bug. Man muss nur die vorgegebenen, leider nirgendwo ausführlich erwähnten Regeln zur Übertragung mit IC-Send beachten. Das IC-Send-Modul ist lediglich dazu da, Kontrollwerte von Panelelementen zu übertragen, d.h. einen Zustand eines Panelelements zu steuern. Wenn Du auf der EventTable den Wert 0,625 einstellst mit einem Wertebereich von 0..1 und einer Auflösung von 8, dann ist das der 6.Wert. (0/8, 1/8, 2/8, .. 5/8, also der Wert, der nach 5 steps (von 0 gezählt) der Regler einnimmt). Das IC-Send mit demselben Wertebereich 0..1 überträgt dies an den Regler. Unabhängig vom Wertebereich des Reglers nimmt der Regler nun die Position 5 von 8 (steps) ein. Der Wertebereich des Regler kann nun ebenfalls 0..1 sein, muss es aber nicht.
Ich habe mal ein entsprechendes Ensemble aufgebaut.
Bild
links siehst Du die Properties der EventTable rechts diejenigen des Reglers. Damit der Regler die richtige Position einnimmt, müssen die Auflösungen der Tabelle und des Reglers übereinstimmen. Die Mausauflösung muss nicht unbedingt dieselbe sein, ist sie aber zweckmäßigerweise (bzw. meistens numsteps+1), da man den Regler ja auch normal benutzen möchte. Die Mausauflösung des Reglers muss aber mindestens gleich der Anzahl der Steps der EventTable sein und sollte zu einer korrekten Positionsübertragung in der Tat ein Vielfaches der numsteps sein.
Die Formel für die Ansteuerung der Regler Position ist folgende:
Bild,
wobei die Variablen folgendes bedeuten:
  • EW : Wert, den die Event-Tabelle ausgibt
  • ES : numsteps der Tabelle
  • RS : numsteps des Reglers
  • RM : Mausauflösung des Reglers.
Der errechnete Wert wird noch gerundet, um die Reglerposition anzugeben.
Beispiel:
Einstellungen der Tabelle wie oben angegeben, Einstellungen des Reglers wie oben aber mit Mausauflösung 14.
EW=0,375=3/8, ES=8, RM=14, RS=8 ergibt 2,4 gerundet 2

Das Produkt EW·ES gibt die zu übertragende Position an, die Multiplikation mit dem Bruch RS/RM ist dann einfach eine Dreisatzumrechnung auf die Reglerposition. Die Reglerposition 2 bedeutet dann der zweite Step nach 0, also in dem Fall 0,25 als Anzeige (ausprobieren!!).

ciao herw
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von herw am 1. Februar 2007, 14:59, insgesamt 8-mal geändert.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

toxonic hat geschrieben:nee, hat mir nix gebracht! das tut ist noch in arbeit und in dem kleinen teil, der über internal connections geht, ist mir keine lösung ersichtlich! ...
ja hast recht; ich werde das Tutorial noch weiterführen; dein Problem würde erst im noch nicht geschriebenen Teil 3.8 auftreten; ist aber nicht vergessen.
Um IC-Sends komplett zu verstehen, muss man viel experimentieren.
Benutzeravatar
toxonic
synth professor
Beiträge: 322
Registriert: 2. Januar 2007, 20:46
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von toxonic »

hi herw!
mannomann, vielen dank für die ausführliche antwort! mhh, ja mathe hab ich ja doch nur grundkenntnisse, obgleich es bei reaktor zweifelsohne wichtig und hilfreich ist, in mathe ein paar kenntnisse mitzubringen!
bei manchen threads hier im forum, insbesondere die diskussionen zwischen helmsklamm und dir, versteh ich nur bahnhof! :D
das ensemble an dem ich gerade am arbeiten war, hab ich in der ul in die testarea hochgeladen, heißt "loop chopper". kannst dir ja mal angucken, vielleicht fallen dir noch verbesserungen und fehler auf!? (bitte nicht über meine ärmlichen englischkenntnisse amüsieren....*grins* - deswegen bin ich auch so froh, daß es ein deutschsprachiges forum gibt!)
danke nochmals!
Benutzeravatar
tymes2
meister
Beiträge: 118
Registriert: 10. Mai 2006, 16:48
Wohnort: Hamburg
Kontaktdaten:

Beitrag von tymes2 »

Lieber herw - auch wenn ich Deine akribischen Ausführungen durchaus schätze, bist Du hier m.M. nach doch etwas übers Ziel hinaus geschossen. Zwei Dinge: Du schreibst "Die Mausauflösung muss nicht unbedingt dieselbe sein, ist sie aber zweckmäßigerweise (bzw. meistens numsteps+1)" - bei einer Stepanzahl von 8 ist eine Mausauflösung von 8+1=9 nicht nur unergonomisch, heisst nicht vernünftig mit der Maus bedienbar, sondern auch schlicht falsch - genau dieses Problem war die ursprüngliche Frage in diesem Thread. Weiter schreibst Du "Die Mausauflösung des Reglers ... sollte zu einer korrekten Positionsübertragung in der Tat ein Vielfaches der numsteps sein" - vielleicht erscheine ich jetzt etwas kleinlich, aber sie MUSS ein ganzzahliges Vielfaches der Auflösung sein, nicht sollte!!! Deine Formel verkompliziert den Sachverhalt erheblich, noch dazu fürchte ich ist sie falsch - EW=0,375 ist der dritte Step / Wert der Tabelle, nicht der zweite. Wieso soll die Anzeige dann 0,25 (2. Step) sein?! Ganz nebenbei ist eine Mausauflösung von 14 (wie in Deinem Beispiel) eben kein ganzzahliges Vielfaches, was wieder zu einem fehlerhaften Verhalten führt. Vorausgesetzt, dass ich nichts übersehen habe, ist einzig und allein die Mouse Reso als ganzzahliges Vielfaches der Num Steps entscheidend, und das ist doch eigentlich ganz übersichtlich. Ab Deiner Formel verstehe ich aber nur noch Bahnhof...
[edit: dass man natürlich mit der Range des IC Send auch die übertragenen Werte beeinflusst, habe ich jetzt mal aussen vor gelassen...]
Grüssung-> Jo.
Benutzeravatar
toxonic
synth professor
Beiträge: 322
Registriert: 2. Januar 2007, 20:46
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von toxonic »

Die Mausauflösung muss nicht unbedingt dieselbe sein, ist sie aber zweckmäßigerweise (bzw. meistens numsteps+1), da man den Regler ja auch normal benutzen möchte. Die Mausauflösung des Reglers muss aber mindestens gleich der Anzahl der Steps der EventTable sein und sollte zu einer korrekten Positionsübertragung in der Tat ein Vielfaches der numsteps sein.
jo, stimmt, das mit den numsteps+1 hat mich auch verwundert, denn das hab ich ja ausprobiert, ob's mit anderen auflösungen funzt und hat net geklappt!
Ab Deiner Formel verstehe ich aber nur noch Bahnhof...
zugegeben, ging mir auch so... :D aber egal, danke dennoch für euer beider bemühungen, glücklicherweise funzt das ensemble jetzt auch!
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

tymes2 hat geschrieben:... Du schreibst "Die Mausauflösung muss nicht unbedingt dieselbe sein, ist sie aber zweckmäßigerweise (bzw. meistens numsteps+1)" - bei einer Stepanzahl von 8 ist eine Mausauflösung von 8+1=9 nicht nur unergonomisch, heisst nicht vernünftig mit der Maus bedienbar, sondern auch schlicht falsch - genau dieses Problem war die ursprüngliche Frage in diesem Thread. Weiter schreibst Du "Die Mausauflösung des Reglers ... sollte zu einer korrekten Positionsübertragung in der Tat ein Vielfaches der numsteps sein" - vielleicht erscheine ich jetzt etwas kleinlich, aber sie MUSS ein ganzzahliges Vielfaches der Auflösung sein, nicht sollte!!!
Lieber tymes, da sagen meine Experimente etwas anderes: 8 steps heißt bei einem Range von 0..1, dass es 9 Zustände gibt: 0/8, .. ,8/8. Bei so wenigen steps sieht man noch keinen Unterschied, aber stell mal die steps eines Reglers auf 100 und die Maus-Auflösung ebenfalls bei einem Range von 0..1 und versuche mal den Wert 0,53 einzustellen; du wirst dich wundern; veränderst Du dagegen die Maus_Auflösung auf 101, dann kannst du jeden Wert erreichen. Das heißt, die Maus-Auflösung muss mindestens numsteps+1 sein. Warum fällt das bei einer so geringen Anzahl von Steps nicht auf? Nun ersetze mal den Regler durch ein MausArea und Du wirst Dein blaues Wunder erleben, in welchen Bereichen Du die wenigen Werte ansteuern kannst. Wenn Du dann ein Panelelement erstellen willst, dessen Bereiche gleich groß sind, wird es wirklich kompliziert, hier muss man schon sehr genau sein.
Deine Formel verkompliziert den Sachverhalt erheblich, noch dazu fürchte ich ist sie falsch - EW=0,375 ist der dritte Step / Wert der Tabelle, nicht der zweite. Wieso soll die Anzeige dann 0,25 (2. Step) sein?!
sie ist nicht falsch - ganz im Gegenteil: Das Experiment gestätigt ja gerade meine Formel. Es kommt tatsächlich zu dieser "falschen" Auswertung
Ganz nebenbei ist eine Mausauflösung von 14 (wie in Deinem Beispiel) eben kein ganzzahliges Vielfaches, was wieder zu einem fehlerhaften Verhalten führt. Vorausgesetzt, dass ich nichts übersehen habe, ist einzig und allein die Mouse Reso als ganzzahliges Vielfaches der Num Steps entscheidend, und das ist doch eigentlich ganz übersichtlich.
Das Beispiel war nicht konstruktiv gemeint, sondern sollte den "Bug" den toxonic schilderte, erläutern; ich vermute mal, dass er für den Regler zunächst eine andere Einstellung als 8 hatte. Natürlich soll man solche krummen Verhälnisse wie 8:14 ja gerade vermeiden; trotzdem können diese Probleme bei IC-sends schnell auftauchen und man muss sie kennen (zum Beispiel bei Steuerungen von Schaltern).
Ab Deiner Formel verstehe ich aber nur noch Bahnhof...
Daher auch mein Zusatz: "ausprobieren" (und durch Experiment beweisen).
[edit: dass man natürlich mit der Range des IC Send auch die übertragenen Werte beeinflusst, habe ich jetzt mal aussen vor gelassen...]
dass man das aber nicht machen muss, kannst du im Unterforum Projekte nachlesen.

ciao herw
Zuletzt geändert von herw am 1. Februar 2007, 18:21, insgesamt 2-mal geändert.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

toxonic hat geschrieben:hi herw!
mannomann, vielen dank für die ausführliche antwort! mhh, ja mathe hab ich ja doch nur grundkenntnisse, obgleich es bei reaktor zweifelsohne wichtig und hilfreich ist, in mathe ein paar kenntnisse mitzubringen!
bei manchen threads hier im forum, insbesondere die diskussionen zwischen helmsklamm und dir, versteh ich nur bahnhof! :D
das ensemble an dem ich gerade am arbeiten war, hab ich in der ul in die testarea hochgeladen, heißt "loop chopper". kannst dir ja mal angucken, vielleicht fallen dir noch verbesserungen und fehler auf!? (bitte nicht über meine ärmlichen englischkenntnisse amüsieren....*grins* - deswegen bin ich auch so froh, daß es ein deutschsprachiges forum gibt!)
danke nochmals!
ich weiß, dass ich immer (zu) ausführliche Antworten gebe, aber gerade vermeintliches Fehlverhalten von REAKTOR und deren Aufklärung bringt mich persönlich weiter; viel zu oft schiebt man "Fehlverhalten" von Eventschaltungen auf einen Bug, meistens lässt es sich aufklären, wenn man systematisch experimentiert; das ist nicht jedermanns Sache. Ich persönlich habe damit gute Erfahrungen gemacht und äußerst viel gelernt. Allerdings ist REAKTOR-Mathematik auch mein Hobby. Also falls es mal wieder Matheprobleme gib, dann frag! Natürlich kann nicht jeder alles beherrschen (ich bin in ganz anderen REAKTOR-Gebieten absolut unwissend).
Das intensive und vollständige Experiment, d.h. Reduzierung eines REAKTOR-Problems auf das wirklich Notwendige mit allen möglichen Unwägbarkeiten ist meiner Ansicht nach für ein tiefes Wissen notwendig und das eigentlich faszinierende, obwohl ich mich manchmal Frage, warum so etwas nicht einfach im Handbuch steht; das Handbuch zu R2.3 war da viel ausführlicher.
Vielleicht kann ja mal auch mein Freund Krümelmonster mal seine Experimente hier vorstellen; sie sind im Audiobereich noch viel unerklärlicher und überraschender als die Eventverarbeitung hier. Letzendlich möchte ich, dass wir hier alle zusammen weiterkommen und Wissen und Erfahrung anhäufen.

ciao herw
Benutzeravatar
tymes2
meister
Beiträge: 118
Registriert: 10. Mai 2006, 16:48
Wohnort: Hamburg
Kontaktdaten:

Beitrag von tymes2 »

Tja, herw - dann hast Du wohl den ursprünglichen Anlass dieses Threads fehlinterpretiert. Es geht hier nicht um Fehlverhalten von Eventschaltungen, sondern schlicht um Ausreisser bei der Verwendung von IC Sends zur Werteübermittlung. Dass beim Benutzen von Maus Areas die von Dir angedeuteten Probleme auftreten, ist mir bekannt. Dass der Wert von 0,53 bei 100 Steps Auflösung nicht eingestellt werden kann, auch. Nur: das ist in diesem Thread komplett irrelevant, denn auch wenn es neun Zustände bei 8 Steps gibt, so ist eine Mouseresolution von 9 genau der Fall, bei dem es zu dem von toxonic bemängelten Verhalten kommt. In letzter Konsequenz liegt hier tatsächlich ein Bug vor: wenn nämlich (um bei Deinem Beispiel zu bleiben) tatsächlich erforderlich ist, den Wert 0,53 einstellen zu können und somit eine Maus-Auflösung von Steps+1 eingestellt werden muss, dann werden bei gleichzeitiger Verwendung eines IC Sends bestimmte Werte falsch übertragen.
Grüssung-> Jo.
Antworten