A method for implementing realtime DMX control into a VRChat world for previewing DMX lights and FX. Not intended to replace video for mass operation.
Currently this project assists local light programming and is unsynced. You'll still need to do the usual VRSL video stream for everyone else. A synced mode may come later if it's requested.
Supports VRSL, VRSL 9 Universe Mode, and MDMX.
For gridnode developers and the curious, the protocol is documented here.
➡️ Add to Creator Companion ⬅️
When a compatible gridnode connects, MIDIDMX automatically replaces the DMX texture with it's own for as long as MIDI data is sent.
If you're using VideoTXL, drop the prefab into scene and upload.
Other setups may require a toggle or another method. Please submit an issue or PR if you run into a case like this!
Requires a compatible gridnode, such as FGrid or HNode, and a midi loopback.
For loopback, loopMIDI with feedback detection turned off is recommended.
Ensure you have VRChat launched with the launch option --midi= set to your loopback device.
There's a small API for getting the current connected state of MIDIDMX.
You can get a callback when a connection is made or broken with:
mididmx._Register(this,_nameof(callbackFunctionHere))
And get the current status with:
mididmx.GetState();
- If your gridnode supports editor log watching, you can test in editor by going to
VRChat SDK -> Utilities -> Midiand picking your input MIDI device.
- Ensure you have your midi loopback device or software enabled before launching VRChat and your gridnode software.
- Make sure you spelled your device name correctly in the VRChat launch options.
- If you're using a software loopback, make sure feedback detection is disabled. Some applications do not support disabling this. loopMIDI does.