Anfängerfrage zu Prozeduren

We proudly present: The release of DMXControl 3.3.3!


On September 29, 2026, we held our release show for DMXControl 3.3.3. During our usual “hour-long” session, we showed you all the new features in this version and what it now has to offer.
Read all about it in the corresponding news article: We proudly present: The release of DMXControl 3.3.3!


  • Hi Leute,

    ich bin erst vor Kurzem in DMXControl eingestiegen aber schon bei der Notwendigkeit von Prozeduren für meine Geräte angelangt.
    Ein paar einfache Prozeduren habe ich auch schon zum Laufen bekommen (Werte für Controls/Kanäle in Abhängigekeit von anderen Werten setzen). Ich habe zum Beispiel das DDF für den American DJ LED Vision 7 Kanal hochgeladen.

    Allerdings sind mir einige Dinge noch nicht ganz klar:
    Im Tutorial ist die Rede von INITCONTROLS Get- und Set-Prozeduren.
    Kann mir mal jemand erklären, was genau der Unterschied ist?
    Kann es sein, dass INITCONTROLS beim Start von DMXControl für das entsprechende Gerät aufgerufen wird (so wie die "initsequence")?
    Wie/Wann/Wozu genau werden denn Get-Prozeduren verwendet? Wie werden sie angesprochen? Die Set-Prozeduren trage ich meines Wissens und meinen Versuchen nach ja einfach bei "action" bei den Controls ein und verändere damit Werte von Controls bzw. Kanälen.
    Gibt es Zusammenhänge zwischen den Namen SetNAME und GetName?
    Kann man es hinbekommen, dass wenn man an einem Regler im SubMaster schiebt, sich der Regler/Dropdown in der DDF Grafik auch verändert (auch wenn nicht direkt ein Kanal im Control eingetragen ist)?

    Wer kann noch mehr Licht ins Halbdunkel bringen?

    Besten Dank vorab!

    ...Daniel...

  • Hi,

    schön, dass du dich auch mit dem "langweiligeren Pflichtteil" der DDF Erstellung beschäftigst ;).

    Also, die initsequence (korrigiert, eben nicht die INITCONTROLS - siehe nächster Post) ist eine besondere Prozedur in der DDF, die beim Starten von DMXControl bzw. auch nach dem Einfügen eines neuen Gerätes aufgerufen wird. In der stehen dann beispielsweise die ganzen Get-Proceduren (zu denen komme ich gleich) und 2 Anweisungen, die die Pan und Tilt Kanäle auf mittig stellen. Die Initcontrols ist aber kein muss.

    Edit: Daneben gibt es noch die Initcontrols - die hat jetzt aber Stefan schon im nächsten Post beschrieben.

    So, noch zu den Get Proceduren:

    Quote

    Kann man es hinbekommen, dass wenn man an einem Regler im SubMaster schiebt, sich der Regler/Dropdown in der DDF Grafik auch verändert (auch wenn nicht direkt ein Kanal im Control eingetragen ist)?

    War deine Frage... und die Antwort: ja, mit den Get-Proceduren!

    Also die Get-Proceduren sind nicht dafür da, dass nach der Veränderung im DDF ein DMX-Wert ausgegeben wird, dass machen die Set-Proceduren.

    Die Get-Proceduren haben die Aufgabe, die grafische Oberfläche des DDFs so aussehen zu lassen, wie der aktuelle Stand der DMX-Werte ist.
    Zum Beispiel hast du einen einfachen Scanner mit 5 Kanälen: PAN, Tilt, Gobo, Color, Dimmer/Shutter (kombiniert). Dafür im DDF das PAN/TILT Feld, ein Gobo- und ein Colordropdown und einen Slider für den Dimmer sowie ein Dropdown, das z. B. die Strobefunktion auswählt.

    Außerdem hast du den Dimmer auch auf den Submastern liegen. Veränderst du nun den Dimmerwert mit den Submastern oder zum Beispiel über die Kommandozeile oder die Kanalübersicht, zeigt das DDF immer noch die vorherigen Werte an.

    Hast du eine Get-Procedur geschrieben, liest das DDF beim öffnen des DDFs die aktuellen DMX-Werte des Kanals aus und setzt entsprechend die Controls des DDFs so.

    Also in dem Fall wäre das z. B.


    !if|{channel_4}|lt|128|
    !set_control|shutter_slider|{channel_4}$
    !set_control|shutter_state|0$
    $
    !if|({channel_4} > 127) and ({channel_4} < 240)|
    !set_control|shutter_state|128$
    !set_control|shutter_slider({channel_4} - 128)$
    $
    !if|{channel_4}|gt|239|
    !set_control|shutter_state|240$
    $


    Einfach mal mit Fantasiewerten. Möglich wäre hier, dass von 0-127 die Dimmfunktion auf dem Kanal liegt (das Dropdown "shutter state" wird auf 0 gesetzt, das entspräche dem Eintrag "dimmen" - der Slider für die Helligkeit entsprechend dem aktuellen DMX - Wert.
    Von 128 - 239 die Strobefunktion mit variablem Speed (Dropdown "shutter state" auf 128, der Slider "shutter_slider"entsprechend nach der aktuell ausgegebenen Geschwindigkeit).
    Bei DMX-Werte größer als 239 wird dann das Dropdown einfach auf den letzten Eintrag gesetzt.

    Dein DDF passt sich also nun also den tatsächlich ausgegebenen DMX-Werte an und zeigt wirklich das, was das Gerät gerade macht.


    --> Die Get-Proceduren, genauso wie die Set-Proceduren brauchst du nur, wenn mehrere Funktionen auf einem Kanal kombiniert sind. Gibt es im DDF für einen Kanal nur ein Steuerelement (z. B. nur Pan/Tilt) dann weißt du dem direkt den Channel zu und brauchst keine set- oder Get-Prozedur. Das erledigt DMXControl dann von alleine.

    So, ich hoffe etwas geholfen zu haben, wahrscheinlich war das Beispiel nicht optimal gewählt, wenn da etwas unklar geworden ist, einfach fragen.

    Und hier hab ich schonmal was ausführlicheres für Set-Proceduren geschrieben:


    [Frage] 3 Slider für einen Kanal, wie sieht die Prozedur aus ?

    Damit Viel Erfolg - Gruß

    Christian

    PS: Registrier dich doch gleich mal im Forum... das kostet bei uns nichts ;).

    Edit: Initsequence /Controls Fehler behoben - thx @ Stefan, das meinte ich zwar, aber irgendwie hab ich mich beim runterschreiben des Posts vertan.

    Edited once, last by Christian S (March 14, 2010 at 10:15 PM).

  • Vielen Dank Christian für die Erklärungen!

    Also, die INITCONTROLS Prozedur ist eine besondere Prozedur in der DDF, die beim Starten von DMXControl bzw. auch nach dem Einfügen eines neuen Gerätes aufgerufen wird. In der stehen dann beispielsweise die ganzen Get-Proceduren (zu denen komme ich gleich) und 2 Anweisungen, die die Pan und Tilt Kanäle auf mittig stellen. Die Initcontrols ist aber kein muss.


    Was du hier beschreibst ist allerdings die "initsequence". Die "INITCONTROLS"-Prozedur hat eine andere Aufgabe: Sie wird bei jedem Öffnen des DDFs aufgerufen und soll dafür sorgen, dass alle Steuerelemente entsprechend gesetzt werden. Dazu ruft sie meist einfach die normalen Get-Prozeduren auf.

    Die Namensgebung ist übrigens beliebig, Get/Set ist nicht festgelegt, aber halt eine sinnvolle Benennung.

    Stefan

  • Hi Leute,

    vielen Dank für Eure schnellen Antworten! Sehr gutes Forum hier! Das mit der Anmeldung im Forum hab' ich glatt gleich erledigt.

    Christian, den Beitrag, den Dein Link beschreibt, hatte ich schon gelesen. Auch der hatte mein Verständnis schon etwas angereichert. Meine Vermutungen/Erkenntnisse waren Euren Aussagen nach ja schon recht nah an der Wirklichkeit.

    Eine Sache habe ist mir endlich nach mehrmaligem Lesen des doch leider recht kurzen DDF Tutorials selbst eben noch klar geworden:
    Meine Get-Prozeduren muss ich einfach unter DDF Eigenschaften / DMX Kanäle bei "action" des entsprechenden Kanals platzieren. Dann ändern auch die Controls, welche nicht direkt einen Kanal zugeordnet haben, in der DDF Grafik ihre Position, wenn man anderswo im Programm (z.B. Submaster) was ändert. Natürlich nur, wenn man die Prozedur ordentlich geschrieben hat :) Genau das war mir bis vor Kurzem noch nicht ganz klar.

    Juchuuh, eine Erleuchtung! :thumbup:

    Bei der Gelegenheit hab' ich mein DDF zum American DJ LED Vision (im 7 Kanal Betrieb) gleich noch etwas nachgebessert.
    Den Kanälen für R,G,B habe ich zum Beispiel noch je eine Get-Prozedur spendiert. Nun ändern die sich mit, wenn ich z.B. an zugeordneten Submastern schiebe. Ist schöner :D
    Kann ich irgendwie das von mir bereits hochgeladene File ersetzen?
    Das aktuelle angepasste habe ich auch hier mal angehangen.

    Abermals beste Grüße!

    ...Daniel...

  • Hallo,

    kann mir keiner die Frage "Kann ich irgendwie das von mir bereits hochgeladene File ersetzen?" meines letzten Postings beantworten?

    Wäre schön, wenn ich das (für mögliche User des DDFs) in der Online-Device-Datenbank glatt ziehen könnte.

    ...Grüße - Daniel...

  • Newly created posts will remain inaccessible for others until approved by a moderator. The last reply was more than 365 days ago, this thread is most likely obsolete. It is recommended to create a new thread instead.