bitfocus / companion-module-requests

Repository for tracking module requests
97 stars 10 forks source link

ADJ DMX Operator 384 #972

Open phillipkliewer opened 1 year ago

phillipkliewer commented 1 year ago

ADJ DMS Operator 384 is a DMX lighting controller. Using a USB to MIDI adapter you can send "notes" to change the Bank/Scene/Chase of the lighting.

Pg 18 http://adjmedia.s3-website-eu-west-1.amazonaws.com/manuals/DMX%20Operator%20384%20-%20User%20Manual.pdf

MIDI Control: This unit can receive MIDI data to trigger or activate Banks 1-30, Chases 1-12 and the Blackout function. See Midi chart below. MIDI Note 0-11: Turn on/off Chase1-12 12-19: Turn on/off Scene1-8 20-49 Select Bank1-30 50: Enable/disable Audio 51: Enable/disable Auto 52: Enable/disable Blackout

I've tried the midi-relay module, and while it works to send commands, it's cumbersome and needs more logic.

It'd be nice if Companion would keep track of the last sent midi commands as the DMX controller toggles between on/off with a scene when sending the same command, hence turning off the lights - if logic could be written to keep track of the last command sent and not resend unless it's a new midi command that would help greatly.

Also instead of just sending the note, logic to set Chase / Scene / Bank would adjust based on the note chart above. ie, the interface in Companion would ask what Scene to set (1-8) but would then add 11 to that number for the midi note it sends (12-19 per the chart above)

josephdadams commented 1 year ago

I could see this being possible once Companion has native midi support, but it would require Companion to be running on the same device that has the USB>midi adapter.

phillipkliewer commented 1 year ago

2 possible current solutions:

Program a scene/bank into the DMX Operator that turns off all lights, and call it quickly before calling the actual desired scene. Example: 4 midi commands, call bank 5, scene 6 (turns off lights) and a few milliseconds later call the actual scene you want (bank 4, scene 1).

Or use an internal variable that keeps track of the last set bank/scene (4,1) and use "internal: Button Press and Release if Variable meets Condition" to press a button to change the scene. Takes twice as many buttons but can be put on an unused page and called with "internal: button Press and Release"