This is a very cool project idea... and it will help you get way more familiar with how lighting consoles 'think.'
I agree that the
Enttec Open or Pro is the best hardware choice for getting the
dmx out of the computer. Hippy's Open
DMX resources (
Hippy's Open DMX USB Resources ) has mid-level drivers and visual basic examples that will get you started with that part of it, as well as a list (pretty ancient by internet standards, but still worth browsing) of software that will use the
Enttec dongles so you can look at how other people are doing things.
As for the actual program... I'd recommend designing it modularly... start with the piece that actually sends the
dmx and get it working... then develop the interface and memory parts. Visual basic isn't hard to work in, and there's a fairly capable free version available from microsoft these days... Really think through the challenges of making lighting software and plan how the pieces work. Once you have the outputs working... you need a way to capture channels... then a way to store a captured look... then a way to recall it with a certain
fade time... But you have to think through what advanced features you'll eventually want before you start on the easy stuff because you'll waste days rewriting things that could have been good the first time if you had done them the way you needed to in the end... for example when I first started playing with lighting software I wrote an routine that handled timed fades before I decided I wanted the ability to write part cues... which required totally rewriting the
fade routine... if I'd made a list of what it had to do from the start, I would have written the routine to allow part cues in the first place.
If you want to go beyond software generating
dmx, and include a physical control surface, so it feels more like a 'light board' then you're into a different challenge... but one that I think is actually much easier than the actual software part. I'd recommend looking into learning (or making a friend who's learned) about microcontrollers. Getting a microcontroller to read values from buttons (or even from linear pots (the electronics catalog name for faders)) and pass those values via usb to a computer isn't a terribly difficult project. I would recommend writing the software part first... and writing it so it's usable without the control surface... but writing it in such a way that it's a simple matter to add a control surface. How do you do this? It's easy in visual basic where everything is event driven. When you click a
button onscreen, it triggers a subroutine in the program that is called the 'event handler' for that particular
button press. Likewise, when a command is received from the microcontroller, it will trigger an event handler which can THEN
call the event handler for the
button press... so the software that was coded to work with a virtual
button press on the
screen can be extended to work with a physical
button press on the control board fairly easily.
If all of this is over your head, don't be discouraged. I'm dumping a smattering of several topics on you right up front here so you'll know what things you need to be thinking about. If you want to talk more about basics, or about details of any of the areas I've mentioned, feel free to ask. I'd recommend as a first step that you make (and post here if you'd like) a list of exactly what requirements you want to set for your lightboard... (how many channels? does it do moving lights? Does it record cues? Part Cues? Do you want multiple
cue stacks? Do you want a soft patch ability? And a big one that I should have asked up front... Who's going to use this? As in, is it just a learning project for you and your friends, are you hoping to actually use it at your school (and if so... do you know that there are easier and just as cheap or free software solutions already made for you that will save you a lot of time and be just as good?) or are you hoping to someday
release your software and/or hardware either for free or for zillions of dollars to be used by the adoring public?)
Anyway. Hope all that helps!
Art Whaley
Art Whaley Design