Streamdeck - Wie kann ich Profile wechseln?

  • Hallo zusammen!

    Seit mehreren Tagen bin ich dabeiich mein Streamdeck korrekt einzubinden und versuche auch mehrere Seiten anzulegen. Ich denke vom Prinzip funktioniert auch alles mehr oder weniger, allerdings schaffe ich es nicht, dass ich die verschiedenen Profile umschalten kann.

    Kurz zu meiner Vorgehensweise:
    Ich habe aktuell 3 Macroboard- (Streamdeck) Profile angelegt. Dazu passend 3 entsprechende Banken im Input Assigment. Ist die Denk- bzw. Arbeitsweise von mir so richtig? Ich lege in den jeweiligen Banken die Funktionen für die entsprechenden Buttons aus den Profilen an. (siehe ersten Screenshot)
    Muss ich für jeden angelegten Button die Macroboard-Node einbauen, oder nur einmal pro Bank?!




    Im zweiten Screenshot seht ihr meinen Versuch die Profile umzuschalten. Als ich nur 2 Profile hatte konnte ich umschalten. Jetzt bei drei Profilen wird das dritte nicht angesprungen!
    Und: Dieses Connectionset habe ich in jede der beiden Bänke kopiert und nur den Button geändert, welcher in dem jeweiligen Profil dann zuständig sein sollte.




    Wäre toll, wenn mir jemand weiterhelfen könnte. Finde leider fast nichts im Forum etc. dazu, wie ich zur Lösung kommen könnte!

    Vielen Dank schon mal!

  • Guten morgen,


    erst einmal zu deinem grundsätzlichen Aufbau: An sich ist deine Denkweise gar nicht so falsch. Wie so häufig führen in DMXControl 3 mehrere Wege nach Rom und da ist die Variante, mehrere Banken zu machen auch eine davon. Da du aber nicht über die Banken umschaltest (wäre im Prinzip auch gegangen, aber deine Variante ist da besser), musst du das aber nicht in unterschiedliche Banken packen. Es würde auch reichen, alle ConnectionSets in eine Bank zu packen. Aber es schadet eben auch nicht, weil ja die unterschiedlichen Button von den jeweiligen Macroboard Profilen kommen. Einzig musst du darauf achten, dass dann auch alle Bänke aktiviert sind.


    Zu deiner zweiten Frage: In deinem ersten Bild macht der Macroboard Node unten nichts (weil er nicht verbunden ist). Das Input Assignment arbeitet so, dass es Daten von einem oder mehreren Inputs in ein ConnectionSet reinschiebt, diese Daten an die verbundenen Nodes weiterschiebt, diese die Daten verarbeiten und die Ergebnisse weiterleiten und am Ende die Werte wieder an ein oder mehrere Outputs übergibt. Das können Programmfunktionen von DMXControl 3 sein oder auch ein externes Gerät wie ein Macroboard. Und ein Knoten kann sowohl Inputs als auch Outputs haben. Ein nicht verbundener Knoten bekommt aber keine Daten und trägt mit seinen Daten auch nicht zur Berechnung bei. Daher bringt dieser dann nichts. Du musst daher den Macroboard-Knoten da nicht in jedes ConnectionSet einfügen, sondern es reicht ausschließlich einmal für deine Umschaltfunktion diesen einzufügen. Das liegt daran, dass die Buttons ja bereits zu einem Macroboard-Profil gehören und auf dieses senden.


    Zu deinem Umschaltmechanismus: Die Frage hier wäre, ob du eine Umschaltfunktion haben möchtest, bei der du mit einem Button immer durch alle Seiten durchwechselst, oder ob du zwei Button haben möchtest, mit denen du dann immer hin und her gehst. Für das Durchwechseln habe ich dir mal eine mögliche Logik gebaut. Diese brauchst du insgesamt nur einmal. In dieser sind vorne die drei Buttons auf den drei Macroboard Profilen. Diese sind jeweils mit dem Set-Eingang eines RS-Flip-Flops und mit dem Reset-Eingang der anderen beiden RS-Flip-Flop verbunden. Hierüber bestimmst du, welche Seite als nächstes aufgerufen wird über einen Button. So sollte der Button auf der ersten Seite auf den Set-Eingang des 2. RS-Flip-Flop gehen, der Button auf der 2. Seite auf den 3. Set-Eingang und der Button von der 3. Seite auf den ersten Set-Eingang. Danach kommen Binary Switcher, in denen der On-Value der Nummer des Eingangs am Input Selector entspricht. Wie du siehst, habe ich die drei Seiten am Input Selector auf 1,2 und 3 gelegt. Somit müssen die Binary Switcher von oben nach unten gesehen 1, 2 und 3 im On-Zustand und 0 im Off-Zustand ausgeben. Der Expression-Node rechnet dann noch alle drei Werte zusammen, wodurch man dann den finalen Selektionswert erhält.



    Viele Grüße

    JP

  • Zu deinem Umschaltmechanismus: Die Frage hier wäre, ob du eine Umschaltfunktion haben möchtest, bei der du mit einem Button immer durch alle Seiten durchwechselst, oder ob du zwei Button haben möchtest, mit denen du dann immer hin und her gehst. Für das Durchwechseln habe ich dir mal eine mögliche Logik gebaut. Diese brauchst du insgesamt nur einmal. In dieser sind vorne die drei Buttons auf den drei Macroboard Profilen. Diese sind jeweils mit dem Set-Eingang eines RS-Flip-Flops und mit dem Reset-Eingang der anderen beiden RS-Flip-Flop verbunden. Hierüber bestimmst du, welche Seite als nächstes aufgerufen wird über einen Button. So sollte der Button auf der ersten Seite auf den Set-Eingang des 2. RS-Flip-Flop gehen, der Button auf der 2. Seite auf den 3. Set-Eingang und der Button von der 3. Seite auf den ersten Set-Eingang. Danach kommen Binary Switcher, in denen der On-Value der Nummer des Eingangs am Input Selector entspricht. Wie du siehst, habe ich die drei Seiten am Input Selector auf 1,2 und 3 gelegt. Somit müssen die Binary Switcher von oben nach unten gesehen 1, 2 und 3 im On-Zustand und 0 im Off-Zustand ausgeben. Der Expression-Node rechnet dann noch alle drei Werte zusammen, wodurch man dann den finalen Selektionswert erhält.


    Viele Grüße

    JP

    Hallo!

    Danke für deine Antwort, ich bin leider erst heute wieder zum Testen gekommen. Ich habe versucht dein Connection-Set nachzubauen. Mit sehr mäßigen Erfolg. Es schaltet einfach nicht um und ich weiß einfach nicht warum. Bin schon langsam am verzweifeln.
    Ich hab jetzt hier nochmal einen Screenshot von meinem Nachbau gemacht und dazu geschrieben, welche Werte etc. sich dahinter verbergen. Ich hoffe so ist es nachvollziehbar!

    Hoffe wir können es lösen!

    Danke schon mal wieder!



    Viele Grüße
    Alex

  • Hi,


    kannst du mir das Projekt mal hier anhängen / mir schicken? Dann kann ich mir das mal anschauen. Zumindest sehe ich, dass bei dir zwei der RS-Flip-Flops aktiv sind, was so nicht sein sollte. Eigentlich sollte nur eines aktiv sein. Mit deinem Projekt könnte ich das dann nochmal bei mir damit testen.


    Viele Grüße

    JP

  • PN ist raus! Danke dir!

  • Hast du mal probiert, vor jedes RS-Flip-Flop, an dem mehr als eine Verbindung ankommt, noch ein Logic-Node im OR-Modus zu packen? Denn aktuell ist es meines Wissens nach eigentlich so, dass das Input Assignment es nicht so mag, wenn mehrere Verbindungen direkt auf einen Input gelegt werden. Das vorgeschaltete Logic-Node würde dann die "ordentliche" Verarbeitung der verschiedenen Verbindungen übernehmen, weil du ja hier mehr Inputs hast.

  • Hast du mal probiert, vor jedes RS-Flip-Flop, an dem mehr als eine Verbindung ankommt, noch ein Logic-Node im OR-Modus zu packen? Denn aktuell ist es meines Wissens nach eigentlich so, dass das Input Assignment es nicht so mag, wenn mehrere Verbindungen direkt auf einen Input gelegt werden. Das vorgeschaltete Logic-Node würde dann die "ordentliche" Verarbeitung der verschiedenen Verbindungen übernehmen, weil du ja hier mehr Inputs hast.

    Jetzt hab ich's mal probiert. Aber wenn ich ehrlich bin, keinen Plan, wie ich dann die Nodes einstellen soll!?!
    Also mein Versuch klappte nicht! ||


  • Jetzt hast du das "Problem" nur verschoben, da nun die doppelt belegten Inputs nun an den Logic-Nodes hängen.


    Ich habe das Connectionset nun gerade einmal im linken Teil nachgebaut, wie ich es meinte. Du hattest ja vorher immer an den Reset-Inputs des RS-Flip-Flops mehr als eine Verbindung. Da musste das Logic-Or zwischen.



    Und wieso nun das Math Node im Maximum-Modus anstelle des Expression-Nodes? Ist am Ende das gleiche. Denn durch die Verschaltung der RS-Flip-Flops wird immer nur ein Wert mit >0 an das Expression-Node übergeben.

  • Ich habe nun noch einmal geschaut und mir ist aufgefallen, dass wenn ich einen Stream Deck Button drücke und dann die Page wechsle, dieser dann gedrückt bleibt. Das hatte ich in meiner Verschaltung nicht berücksichtigt. Ich hatte die zwar getestet, aber nur innerhalb von DMXControl 3 mit den Macro Board Profilen offen, aber nicht mit dem realen Stream Deck. Nun habe ich das aber berücksichtigt und entsprechend in dem angehängten Projekt umgesetzt. Genauer gesagt habe ich das einmal für DMXC 3.2.3 und einmal für DMXC 3.3.0 umgesetzt, weil sich da einiges vereinfacht (siehe Screenshots) und auch die nachfolgende Einschränkung nicht mehr gilt.


    Einschränkung für DMXControl 3.2.3

    In DMXControl 3.2.3 muss ich irgendwie die fallende Flanke (also letztendlich das loslassen des Buttons) erkennen, um daraufhin erst umzuschalten. Das mache ich mangels der Funktion "falling edge" im ValueChanged-To-Bool Node, die erst mit der 3.3.0 dazu gekommen ist, mit einem weiteren Delay Node. Außerdem muss der Delay Node eine leicht andere Zeit haben wie der ValueChanged-To-Bool Node. Das funktioniert zwar, hat aber den Nachteil, dass die fallende Flanke unter Umständen nicht korrekt erkannt wird, wenn der Tastendruck zu kurz war. Ich habe die Zeiten zwar schon auf 40ms und 50ms im angehängten Projekt gestellt. Aber selbst damit schaffe ich es noch, einzelne Umschaltungen zu verpassen.


    DMXControl 3.2.3


    DMXControl 3.3.0:


    Beide Umsetzungen habe ich mal in einem ganz kleinen Demo-Projekt gebaut und angehängt. So kannst du dir (und auch alle anderen sich) die Umsetzungen entsprechend anschauen.


    Viele Grüße

    JP

  • Hallo!

    Vielen Dank für deine Hilfe. Jetzt klappt es tatsächlich!! ^^ ^^ Das hätte ich alleine niemals lösen können!

    Allerdings hab ich jetzt ein neues Problem:
    Wenn ich alles eingerichtet habe und auch funktioniert und DMXC beende und wieder starte, dann taucht zwar auf dem Streamdeck die Seite 1 auf, allerdings ist sie "tot". Also komplett ohne Funktion!?!
    Kann ich das auch noch lösen?

    Lieben Dank!