Does JUCE have any classes available to use for DMX protocol control?
Not that I’m aware.
DMX is in essence very similar to MIDI, so there is no reason why it shouldn’t be possible to use the MIDI subsystem as a model
and implement your own module for handling DMX.
DMX is fairly simple in structure, so it shouldn’t be a hard barrier to do that.
All the DMX<->USB or DMX<->Ethernet interface hardware that I’ve seen uses some sort of DRM to prevent it from working with your own software. That’s why they charge an arm and a leg for those stupid dongles and you’re stuck with the crappy software that comes with it.
Note how there is no robust market of competing DMX over Ethernet or DMX over USB hardware and software.
I don’t think that’s true of Enttec’s DMX USB Pro. You can talk to it like a serial port and they post source code examples of how to do so.
But to respond to the original question, there isn’t anything like CoreMidi built into your operating system for DMX that would allow you to talk to all DMX devices in the same way. So, there couldn’t be something like a general Juce module for DMX. There could only be a modules for talking to Enttec’s DMX device or Lanbox’s device and so on that share some general DMX messages running over different transport protocols…
Then you obviously haven’t seen this:
Even at £25 I’m sure they’re still making a tidy profit on it as it’s just one of those ftdi serial usb chips plus an rs-485 driver. Beats having to make it yourself though. R-Pi lighting controller anyone?
Maybe I’m thinking of DMX over Ethernet
Doubtful. ArtNet is the most popular and that’s an open spec and fairly trivial. There’s Streaming ACN, which is more complex. Neither has a charge associated (although ACN tries to charge for the spec).
We support the Enttec’s DMX USB Pro device, that’s quite simple to get going.
ArtNet is a mess though. DMX is fun once you get it running though, it’s always satisfying if you can tilt, pan or blind your co-workers with a huge MovingHead using your mouse.