# Where can I learn to create my own DMX software?



## michael728 (Oct 15, 2010)

Hello,

I would like to learn how to write software for stage lighting using the DMX512 protocol. Can anyone point me in the right direction? I want to make my own DMX programs. Thank you


----------



## sk8rsdad (Oct 15, 2010)

You could start with the Open DMX project on SourceForge. Personally, I tend to start by typing things like "DMX open source" into a popular search engine.


----------



## TheSwami (Oct 15, 2010)

The *DMX Wiki*[The DMX Wiki] gives a pretty solid introduction to the DMX512-A protocol and lists various manufacturers of DMX distribution solutions. Their Software Tutorials section is a little threadbare, but it's a wiki after all; if you discover new things to contribute, go for it.

It's also worth reading Brady, Dickerson, Ciavonne, and Bazzo's Rambox Thesis for a good look at what the process of implementing a DMX-based control device looks like from start to finish.

Also, are you thinking of computer-based DMX-control software, or a microprocessor-driven standalone DMX controller?

Cheers!


----------



## michael728 (Oct 15, 2010)

TheSwami said:


> The *DMX Wiki*[The DMX Wiki] gives a pretty solid introduction to the DMX512-A protocol and lists various manufacturers of DMX distribution solutions. Their Software Tutorials section is a little threadbare, but it's a wiki after all; if you discover new things to contribute, go for it.
> 
> It's also worth reading Brady, Dickerson, Ciavonne, and Bazzo's Rambox Thesis for a good look at what the process of implementing a DMX-based control device looks like from start to finish.
> 
> ...


 
Thank you,

I would like to program for computer based dmx control. Im trying to find a good book on the subject


----------



## mstaylor (Oct 15, 2010)

Is this just for your own edification or do you have a purpose?


----------



## cpf (Oct 15, 2010)

In my experience, you just pick out a DMX interface that appears to have a decent SDK, then program in your language of choice and use whatever interface method that manufacturer supplies.

E.g. This Enttec adapter comes with C# and C++ examples/libraries premade for you, all you need to do is pull out the functionality and put it into your own application. Beyond that, it's really up to you how you control it. You might be able to find some books on DMX controlling devices from a PC, but personally I don't see a point in a whole book on the subject.


----------



## JChenault (Oct 16, 2010)

I'm unclear as to what you are really trying to do.

Do you want to learn to write software by doing this project?
Do know how to write software and want to create a program to control lights?

If you are trying to learn how to write software, there are lots of good books on the subject. Given the state of the world today, you likely want to start with Java or C#. ( Which one will depend on what OS you are comfortable with. C# is a Microsoft product - Java is more of a linux / mac direction). If you want some recommendations, feel free to send me a PM. Building a system to control lights would be in interesting learning project.

If you are trying to create a control console and only need to know how spit out DMX - I know of two popular ways to emit DMX - all of them require some kind of hardware device. 
The first is to get a USB Dongle device. (A box that connects to your computer via the USB port). The one I find works well ( and I stopped looking once I found it ) is the ENTTEC USB-Pro. The interface is pretty simple and their sample code is not too bad.
The second is to use the ArtNEt protocol and talk over a lan to a device. Again the protocol is not too terrible, but the ArtNet devices do cost a bit more. ( There are other hardware devices that listen to messages on the lan, but most of them are not a public protocol - ArtNet is). 

In general you build up a byte array of the values you want to send out, flush them out to the device either on a timer, or when something changes ( depending on what kind of external device you are using).

You can Google ArtNet to find the protocol, or go to the ENTTEC site to download the APIs for talking to their device. 

As to a book about how to write a program for control consoles - no such animal. Just like there is no book for how to write a word processing program.


----------



## derekleffew (Oct 16, 2010)

michael728, see the thread http://www.controlbooth.com/forums/lighting-electrics/21147-dmx-protocol.html .


----------



## michael728 (Oct 18, 2010)

JChenault said:


> I'm unclear as to what you are really trying to do.
> 
> Do you want to learn to write software by doing this project?
> Do know how to write software and want to create a program to control lights?
> ...


 
Thank you,

I have a programming language picked out that I wanted to learn and I would like to use ArtNet. 

Thank you for explaining that to me


----------

