Posts by Thomas Langthaler

    Hallo

    Habe eine Version, die mit V3.3.0 läuft hochgeladen. Ist aktuell nur schnell wieder kompatibel gemacht, aber noch nicht vollständig getestet.

    Habe eine Konvertierung und Aufteilung in Server/GUI Plugin geplant, weiß aber noch nicht, wann ich dazu komme.

    Hallo
    Ich hätte eine Frage zum Template Plugin.
    Gibt es dafür auch ein kleines Beispiel, wie ein GUI und Kernel Plugin miteinander kommunizieren können?
    Mein Anwendungsfall wäre das OSC Plugin (Möchte dieses sauber auf Kernel / GUI umstellen und komplett überarbeiten).
    Dabei soll der eigentliche Funktionsteil ja im Kernel liegen (Port, Konfiguration, Nodes für die Eingangszuweisung,...), benötigt aber natürlich GUI Seitig verschiedene Einstellmöglichkeiten.

    Zusätzlich sollen alle Einstellungen Kernel Seitig ins Projekt gespeichert werden.

    Diese Dinge fehlen leider noch im Template Plugin und ich möchte vermeiden hier an eurer Infrastruktur vorbei irgendwas zu "verbrechen".

    Danke für eure Unterstützung.

    Hallo

    Zur Installation bitte den gesamten Inhalt der ZIP Datei unter "C:\Program Files (x86)\DMXControl3\GUI\Plugins" entpacken.

    Nach einem Neustart muss das Plugin verfügbar sein.

    Falls es weiterhin nicht funktioniert, bitte die Log-Dateien (zu finden unter "%appdata%\DMXControl Projects e.V\DMXControl\GUI\Log") hier im Forum hochladen.

    Danke

    Thomas

    Hallo

    Ich habe mir Ihr Problem angesehen und dabei ein paar Probleme im Zusammenspiel mit DMXControl 3.2.3 entdeckt.

    Um diese zu beheben, habe ich eine neue Version des Plugins (V1.0.0.6) im ersten Beitrag hochgeladen.

    Mit dieser Version kann ich Ihr Problem aktuell nicht mehr nachstellen.

    Bitte die neue Plugin Version bei Ihnen zu installieren und zu testen.

    Bitte um eine kurze Rückmeldung, ob das Problem dadurch behoben ist, oder noch immer auftritt.

    Danke

    Thomas

    Hallo

    Bezüglich OSC.

    Das Plugin ist hier (Touch OSC GUI Plugin) zu finden.

    Am einfachsten geht das versenden / empfangen natürlich mit einer entsprechenden Programmbibliothek, die das Protokoll kapselt.

    Für .NET gibt es hier z.B.: Ventuz OSC. Diese wird auch vom Plugin verwendet.

    Für CMS Systeme ist eventuell "https://github.com/frequenc1/php-osc" brauchbar. Hier handelt es sich um eine Umsetzung unter PHP.

    Ein Befehl besteht dabei immer aus einem "Tag", was so viel wie der Variablenname, den man ansteuern möchte ist, und dem dazugehörigen Wert, oder auch Werten. Das ist dann abhängig von der Funktionalität.

    Beispiele:

    Boolscher Wert (Button):

    /pagex/Button1 1 (1.0 entspricht dabei TRUE und 0 FALSE).

    Zahlenwert (Faderposition):

    /pagex/Fader1 0.654 (Wert ist Standardmäßig zwischen 0 und 1, kann aber auch anders Skaliert werden).

    Bitte einfach mal ausprobieren.

    Falls noch was fehlt oder nicht funktioniert, bitte im oben genannten Beitrag melden.

    mfg

    Thomas

    Hallo

    LightningBrothers :

    Danke für die Rückmeldung. Bezüglich der Buttons habe ich bei mir mal schon eine Unterstützung für verschiedene Datentypen (Unter anderem auch den der CueLists) dazugebaut.

    Zu deinen anderen Themen hätte ich noch Fragen, da ich hier leider nicht weiter komme:

    - Wie kann ich den einem Input/Ouput den Text für den Tooltip mitgeben?

    - Wie sieht den die API für die Übersetzungs-Engine aus?

    Leider habe ich zu den beiden Themen keine Entwickler Doku gefunden und bin auch beim durchstöbern der DLL's und Exe Dateien nicht weitergekommen.

    Wenn mir hier jemand Informationen zukommen lassen könnte, wäre ich sehr dankbar und würde mich auch an die Umsetzung der Punkte (Übersetzungen, Umstrukturierung/Umbenennung) machen.

    nutzer99: Die Umsetzung im Kernel wäre natürlich wesentlich besser. Habe mich aktuell aber anhand des Source Codes des MIDI Plugins (https://github.com/DMXControl/midi4dmxc3) und dem Objektkatalog im Visual Studio, bzw. "ausprobieren" durchgeschlagen. Damit ich da drangehen kann, bräuchte ich mal eine grundlegende Einführung in eure Softwarearchitektur und eure API's. Ansonsten mach ich sicher mehr kaputt, als ich helfe. In der GUI schmiert halt mal die Plugin Funktion ab, oder im blödesten Fall die GUI selbst, aber die Hardwareansteuerung und Grundfunktionen im Hintergrund bleiben aufrecht.

    Danke für euer Feedback und eure Unterstützung.

    mfg

    Thomas

    nutzer99 :

    LightningBrothers :

    Habe die GUI entsprechend euren Anregungen überarbeitet. Bitte um Rückmeldung ob noch was verbessert werden kann, oder ich was übersehen habe.

    Für die Verarbeitung der Farben habe ich die Unterstützung von verschiedensten Formaten eingebaut. Bitte um Rückmeldung, falls noch was fehlt.

    Auch den "Touched" Eingang konnte ich gleich hinzufügen.

    Tippfehler habe ich hoffentlich alle erwischt. Falls nicht, bitte um kurze Rückmeldung, wo welcher Text nicht passt.

    Bezüglich Push/Toggle Buttons. Die Rückmeldung wäre eigentlich schon vorhanden (Output zum setzen des Signals). In der Umsetzung sehe ich jetzt keinen Unterschied zum Fader. Wenn sich der Wert ändert, dann wird dieser neue Wert an die APP zurück übertragen. Habe es bei mir ausprobiert und kann z.B.: die Blackout Funktion von allen Seiten schalten, bzw. auch anzeigen.

    Bitte um kurzes Feedback, was du genau meinst.

    Danke für eure Rückmeldungen und Unterstützung.

    PS: Hoffe ich habe es jetzt auch mit dem @ Richtiggemacht! :D

    Hallo Stefan, nutzer99

    Danke wieder für euer Feedback. Habe mal wieder weiter am Plugin gebaut (V1.0.0.4).

    nutzer99: Wenn man den Entwicklerforen glauben kann, dann dürfte es unter Android ca. 1/3 Geräte geben, die die für das automatische Registrieren notwendige Betriebssystem Funktion "Multicast DNS" nicht unterstützen.

    Habe daher, wie von dir angeregt, die Möglichkeit des Manuellen Anlegens und Löschens von Geräten hinzugefügt und bei mir auch erfolgreich getestet.

    Diese werden dann auch im Projekt gespeichert und wieder geladen.

    Um doppelte Geräte zu vermeiden, werden beim automatischen Anlegen bereits bestehende IP/Port Kombinationen nicht registriert.

    Stefan:

    Deine Anregungen sind toll, leider so nicht umsetzbar, da ich keine Möglichkeit / Option gefunden habe um die App dazu zu veranlassen irgend etwas über das geladene Layout auszuspucken.

    Könnte mir noch das Layout direkt vom TouchOsc-Editor holen (so wie die App selbst). Bringt aber aus meiner Sicht nichts, da ja dann die Datei ohnehin schon vorliegt (außer der Editor wäre auf einem anderen Rechner, was aber vermutlich eher selten sein wird). Hier habe ich aber auch eine nette Möglichkeit gefunden sich die Datei über das Netzwerk zu besorgen, sobald der Editor im "Sync Mode" ist. Dazu einfach im Browser die URL "http://ip-adresse:9658" eingeben --> *.touchOSC Datei wird dann heruntergeladen.

    Um trotzdem zwischen verschiedenen Layouts hin- und herschalten zu können, würde ich damit eher empfehlen, sämtliche benötigte Layouts als Regelsätze anzulegen und auch im InputAssignment zu verknüpfen.

    Damit sich diese aber nicht in die Quere kommen muss darauf geachtet werden, dass alle verwendeten Layouts "Eindeutige" Tags verwenden (gesamter Pfad).

    Habe aber bei meinem rumprobieren noch ein paar Funktionen gefunden, die ich noch hinzufügen möchte, bzw. noch keinen Anwendungsfall gefunden habe:

    - Touch Messages: Unter Optionen kann man "Touch Messages" aktivieren. Damit bekommt man über OSC mitgeteilt, wenn eine Komponente (z.B.: Fader) berührt wird/ist --> zusätzlichen Input Komponente hinzufügen.

    - Farbe der Komponente während Laufzeit änderbar: Man kann per OSC Message die Farbe jeder einzelnen Komponente in TouchOSC zur Laufzeit ändern. Möglich ist hier jede Farbe, die auch im Editor zur Verfügung steht. --> Zusätzlichen Output je Komponente.
    Ich weiß aber noch nicht wie der Output am besten im Input Assignment beschaltet werden müsste (String, int, spezielles Objekt?). Werde mir hier mal die Möglichkeiten im Softdesk ansehen, damit sich die Systeme ähnlich / gleich verhalten. Eventuell könnt ihr mir aber auch Tips geben.

    - XYZ Beschleunigungswerte des Tablets: Diese Funktion kann auch in den Optionen (Accelerometer /accxyz) aktiviert werden. Man bekommt dann die Lage des Tablets im Raum als x/y/z Werte zur Verfügung gestellt.

    Mir ist aber noch kein Anwendungsfall dafür eingefallen. Einfach so die Funktion hinzufügen möchte ich nicht, da hier ziemlich viele Meldungen verschickt werden, sobald man das Tablet in der Hand hält. --> Hat jemand eine Idee

    - Ping: Ebenfalls in den Optionen kann man "Send Ping" aktivieren. Standardmäßíg wird dann alle 60s eine "Ping" Message verschickt. Man könnte hier eventuell einen Input "App läuft noch" realisieren. Aber auch dafür ist mir noch kein Anwendungsfall eingefallen.

    Ansonsten bitte um Rückmeldungen und viel Spaß beim ausprobieren.

    Danke

    Thomas

    Hallo Nutzer99

    Danke für das Hochladen deines Layouts.

    Habe noch einen Tag vorausgesetzt, der bei mir immer da war, aber anscheinend doch optional ist.

    Bitte die angehängte DLL tauschen.

    TouchOscLayoutParser.zip

    Bezüglich Gerät finden:

    Ich habe hier leider aktuell nur mein Ipad zum Testen. Dieses wird aber in jedem Fall gefunden wenn ich bei laufender TouchOSC App auf "Update Devices" klicke.
    Bin gerade dabei mir ein Android Gerät zu organisieren um es auch dort zu testen.

    Sobald ich was neues habe melde ich mich wieder.

    mfg

    Thomas

    Hallo Stefan

    Danke für deine Ausführlichen Informationen.

    Dein Problem mit der Text Komponente habe ich behoben.

    Das Thema Signalschleifen muss man immer im Hinterkopf haben. Habe dazu jetzt auch überall noch eine Prüfung integriert, dass die internen Ereignisse unterdrückt, wenn sich der Wert gar nicht geändert hat (bzw. auch schon das Wert übernehmen unterdrückt).

    Ob man per OSC auch Farben,... zur Laufzeit verändern kann, weiß ich leider noch nicht. Ich denke hier gibt es von TouchOSC noch einige Möglichkeiten. Habe z.B. beim schreiben des Layout Parsers auch gesehen, dass es unterschiedliche Einstellungen für die "Pages" für "Active" und "Inactive" gibt --> Eventuell lässt sich dieser Status von außen auch beeinflussen.

    Als nächstes möchte ich aber noch den Importer um ein "update" erweitern und die "Value Range" Einstellungen aus dem OSC Editor übernehmen, damit mal die bestehenden Funktionen ohne großes editieren (Beim Encoder wird es leider nicht anders gehen) direkt aus dem bereits im TouchOSC Editor erstellten Layout übernommen werden und korrekt funktionieren.

    Danke

    Thomas

    Hallo Lightning Brothers.

    Herzlichen Dank für das schnelle und tolle Feedback.

    Ich habe mir die Themen gleich mal angesehen.

    - Signalschleife: Habe ich behoben und wurde dadurch verursacht, dass sich das Plugin selbst als "OCS Output Device" erkannt und registriert hat. In Verbindung mit den Laufzeiten zwischen Input und Output des Faders hat das dazu geführt, dass sich das Plugin selbst immer wieder abwechselnd die alten und neuen Werte gesendet hat, sobald der Fader einmal bewegt wurde.

    --> Das Plugin erkennt sich selbst und schließt sich aus den automatisch registrierten Output Devices aus. Es ist aber immer noch möglich auf dem gleichen Rechner (unter einem anderen Port) ein OSC Device zu betreiben.

    - Habe auch die Reaktionszeit selbst wesentlich verbessert. Es kommt aber beim schnellen verschieben eines Faders immer noch zu leichten Rucklern --> Das muss ich mir nochmal ansehen.

    - Kombiniertes XY Signal: Habe mir das angesehen, verstehe aber noch nicht ganz, wie der Softdesk hier die Informationen anbietet, da das Interface eigentlich zwingend einen double Wert erwartet. Eventuell kann mir hier einer der Stammprogrammierer weiterhelfen. Ich habe vorerst noch nicht hinbekommen.

    Habe den neuen Stand bei meinem ersten Beitrag hochgeladen und auch eine Versionierung eingeführt, damit man nicht so schnell durcheinanderkommt und beim ersten Beitrag auch immer den aktuellsten Stand findet.

    Danke nochmal für deine Unterstützung.

    mfg

    Thomas

    Nachtrag:

    Mittlerweile habe ich die Positions Möglichkeit entdeckt und integriert (V1.0.0.2)

    Hallo.

    Bin neu hier im Forum und habe mich über die Feiertage mit TouchOSC beschäftigt.
    Habe für DMX 3.2.1 ein OSC Plugin auf Basis des MIDI Plugins erstellt (gleiche Funktionen mit RuleSets,...).

    Das Plugin legt beim Start einen OSC Input UDP Port an, an den die OSC Befehle gesendet werden müssen.

    Standardmäßig wird dabei Port 8000 verwendet. Ist dieser belegt, so wird 8001 verwendet, usw. bis ein freier Port gefunden wird. --> Dieser wird für die TouchOSC App veröffentlicht, sodass dieser in den Optionen unter "OSC" ausgewählt werden kann (Rechnername - DmxC3).

    Parallel dazu wird nach laufenden OSC Geräten gescannt und diese als "Output" Devices registriert.

    Grundsätzlich werden alle OSC Kommandos an alle registrierten Output Devices gesendet.

    Das bedeutet, das bei der Verwendung von mehreren OSC Geräten mit verschiedenen Layouts, darauf geachtet werden muss, dass die OSC Tags eindeutig über alle Geräte sind. Ansonsten werden die Werte auch von allen Geräten verarbeitet.

    ACHTUNG: Bei Verwendung der TouchOSC App auf einem IPAD ist mir aufgefallen, dass die Kommandos nur erkannt werden, wenn im OSC Tags nicht mehr als 2 Ebenen verwendet werden (z.B.: "/Page1/Fader1"

    Das ganze ist sich er noch nicht ganz ausgereift, daher bitte um Rückmeldung, wenn etwas nicht wie gewünscht funktioniert.

    Gutes neues Jahr euch allen und viel Spaß beim ausprobieren.

    Versionen und Changelog

    V1.1.0.3

    Touch Osc GUI Plugin_V1.1.0.3.zip

    Kompatibilität:

    DMXControl V3.3.2

    Änderungen:

    - Kompatibilität hergestellt zu V3.3.2

    - Bugfix beim laden des Projektes. Hier kam es vor, dass die In-/Outputs Fehlerhaft eingefügt wurden.

    V1.1.0.0

    Touch Osc GUI Plugin_V1.1.0.0.zip

    Kompatibilität:

    DMXControl V3.3.0

    Änderungen:

    - Nur Kompatibilität hergestellt, noch nicht vollständig getestet.

    V1.0.0.7

    Touch Osc GUI Plugin_V1.0.0.7.zip

    Kompatibilität:

    DMXControl V3.2.3

    Änderungen:

    - Bugfix Lernmodus von Slider und XY Rule. Der Lernmodus konnte nicht manuell beendet werden.

    V1.0.0.6

    Touch Osc GUI Plugin_V1.0.0.6.zip

    Kompatibilität:

    DMXControl V3.2.3

    Änderungen

    - Kompatibilität DMXControl V3.2.3

    - Behebung Versionskonflikt DLL Abhängigkeit

    V1.0.0.5

    Touch Osc GUI Plugin_V1.0.0.5.zip

    Kompatibilität: DMXControl V3.2.2

    Änderungen

    - GUI für das Anlegen von Devices erweitert: Edit Funktion, Enter/Esc Unterstützung, F5/Del Unterstützung.

    - Darstellung im Input-Assignment überarbeitet. Dazu gibt es bei manchen Rules die folgenden 2 neuen Properties:

    -- IsMultiTouchItem: Kennung dass es sich in TouchOSC um eine Multi Komponente handelt. Bei TRUE werden Touched und Color nur beim 1. Eintrag für diese App Komponente angelegt.

    -- MultiItemName: Name für die Gruppierung im Input-Assignment. Wird nur verwendet, wenn IsMultiTouchItem=TRUE, ansonsten wie bisher der Rule Name.

    - Touched Input je TouchOSC Control hinzugefügt. Liefert TRUE, solange ein Control in der App berührt wird. Für MultiControls (Push, Toggle, Fader) gibt es aber nur 1 Input für die Gesamte Komponente und NICHT je einzelner Sub Komponente.

    - Color Ausgang je Komponente hinzugefügt. Wie bei Touched nur 1 mal je Hauptkomponente der App. Es werden die Farben

    "Red (1), Green (2), Blue (3), Yellow (4), Purple (5), Gray (6), Orange (7), Brown (8), Pink (9)"

    von der TouchOSC App unterstütz. Bei jeder anderen angelegten Farbe wird auf Default "Gray" geschaltet.
    Als Eingangswerte werden folgende Objekte Unterstützt:

    -- Color Objekt, z.B.: aus "HSV to Color" Converter

    -- Text mit dem Farbnamen, z.B.: "Red" (Groß-/Kleinschreibung wird ignoriert)

    -- Text mit RGB Farbwerten entweder mit ";" oder "," getrennt, z.B.: 255; 0; 0

    -- Zahlwert 1-9. Der Wert je Farbe ist oben in der Liste in () mit angegeben.

    - Alle Neuerungen werden im Projekt gespeichert, wieder geladen und auch beim Import entsprechend des Layouts gesetzt / upgedated.

    V1.0.0.4

    Touch Osc GUI Plugin_V1.0.0.4.zip

    Änderungen

    - Manuelles anlegen und löschen von Output Devices hinzugefügt.

    - Speichern und laden der manuell angelegten Output Devices im Projekt

    - Import von *.touchOSC Dateien unterstützt jetzt auch ein Update von bestehenden Regelsätzen.

    Die Regeln werden auf Basis der Namen (Control in TouchOSC und Regelname in DMSC) verglichen. Fehlende Regeln werden angelegt, bestehende angepasst und zu viel vorhandene Regeln gelöscht.

    - Bugfix Layout Parser (Manche Tags waren noch nicht optional)

    V1.0.0.3

    Touch Osc GUI Plugin_V1.0.0.3.zip

    Änderungen

    - Text Komponente unterstützt alle Datentypen die sich als Text ausgeben lassen (war vorher auf String eingeschränkt)

    - LED Komponente unterstützt auch Numerische Werte zwischen 0-1 (Leuchtkraft der LED). Bool wird direkt in 0 bzw. 1 übersetzt.

    - Um Regelsätze hinzuzufügen gibt es jetzt unter "Tools" eine Import Möglichkeit für "*.touchOSC" Dateien, die sämtliche Komponenten aus einem Layout importiert und auch die Tags übernimmt.
    ACHTUNG: Es ist (noch) kein Update möglich. Es wird ein komplett neuer Regelsatz angelegt.

    V1.0.0.2:

    Touch Osc GUI Plugin_V1.0.0.2.zip

    Änderungen

    - XY Komponente gibt nun die Werte zusätzlich als Positionswerte kombiniert aus.

    - Diverse Min/Max Grenzen im Code entfernt --> Es wird bei allen "Werte" Komponenten nun 1:1 der erhaltene Wert verwendet.

    - Für den Encoder müssen Min/Max Werte eingestellt werden.

    V1.0.0.1:

    Touch Osc GUI Plugin_V1.0.0.1.zip

    Änderungen

    - Reaktionszeit verbessert

    - BackTrack auch aus Optionen entfernt, da ohnehin nicht genutzt.

    - Endlosschleife durch erkennen des eigenen InputDevices behoben.

    V1.0.0.0

    Touch Osc GUI Plugin.zip