DMX.NET is a compact library that makes it easy to communicate with your USB to DMX512 interfaces.
! WARNING ! Currently, the library is targeting the x86 platform mainly due to the lack of a 64-bit uDMX driver.https://www.nuget.org/packages/DMX.NET
Interraction with the library is mostly done through the ControllerManager.
Additionally there is a build-in DmxTimer, which is used to synchronize multiple controllers together.
You can learn on real world examples by exploring projects in the Samples directory.
For the impatient here's the minimal code to get things working (you can find the whole project here):
var timer = new DmxTimer();
var controller = new OpenDmxController(timer);
// Make sure your Open DMX interface is connected!
controller.Open(0);
// Set values of the channel range (1-4)
controller.SetChannelRange(1, 255, 255, 255, 255);
// Don't forget to start the timer.
timer.Start();
// Keep console open
Console.ReadKey();
// Cleanup, ensure all channels are set to 0
timer.Dispose();
controller.Dispose();I'm a full-time programmer and maintain this project in my free time. It's far from finished, but I'm doing my best to deliver regular updates. Additional help is very much wanted, mainly in terms of adding support for more controller modules. If you're interested in contributing to this project, please see Contributing section below.
| Interface | Support status |
|---|---|
| Open DMX | Full |
| uDMX | Experimental |
- Provide required driver files
- Make library 64-bit
- Improve handling of USB disconnecting and reconnecting
- Art-Net support
Contributing to the project is very desireable. I mostly encourage creating controller modules for other vendors. I physically don't have access to more USB interfaces, which makes debugging impossible.
You learn on how to contribute to this project here.
This project is under MIT license. You can find it in the LICENSE file.