Dmx juce module

I notice that juce doesn’t have a dmx module, so I’m looking around to use a library to implement dmx module to use on my programs. So I have 2 question, the first is: (if I well understand about dmx) can you explain me why libraries are done ad hoc for a certain dmx interface? Dmx look very similar to midi, so why this? Do you think should be possible implement a juce module that can works with all dmx interfaces?
Second one: which library do you suggest me to star with? I was looking for Ola, some advices? Thank you

DMX is multiple things… a hardware spec, which requires a bridge device for communicating with that, and the network based protocols, which obviously don’t need extra hardware (beyond an ethernet connection). I did a project a number of years ago implementing DMX in a JUCE application, and due to integration issues I wrote my own code. I don’t recall if the protocols between the hardware and lan based stuff differs much. I recall having issues with device discovery, and this would be related to the socket classes and network config stuff. I did not fully resolve that when I moved on from the contract, and I don’t know if the follow up contractor resolved them.

1 Like

I’ve got my studio hanging off a DMX lighting controller I wrote in JUCE.

I did a driver thing for the interface and it was problematic. So the latest version uses the open lighting architecture library (Olad) for the hardware interface. Everything else was pretty easy.

5 Likes

Ok really thank you :pray: but how can I include Ola in projucer?

You’ll need to build it and then add the library and include paths in Projucer. Note there’s no native Windows build of OLAD yet :frowning:

2 Likes

Beyond linking the library, this tutorial seems like a good place to start: Open Lighting Architecture: C++ DMX Client API Tutorial

I think I might take a shot at this as well, for one project I am working on. Normally if I am working in Ableton, then ShowSync Beam is all I need. But one thing I want to try is sampling pixels in a projector output and dynamically update the lights to match the dominant color(s). Something like that would not run efficiently in Max for Live, if the Beam API would even allow for it. So doing it directly in C++ is the answer I think.

Chopin20 I am also curious why you would like to use DMX directly in a program instead of using an off-the-shelf controller software instead!