A Node.js library for controlling DMX-512 lighting systems with support for multiple hardware interfaces and animations.
node-dmx is a DMX-512 controller library for Node.js that allows developers to programmatically control lighting systems, fixtures, and devices over DMX protocols. It solves the problem of integrating professional lighting control into software applications by providing a unified API for various hardware interfaces and enabling dynamic lighting animations.
Developers and hobbyists working on lighting projects, stage productions, interactive installations, or smart home systems that require DMX control via software.
Developers choose node-dmx for its extensive driver support, easy-to-use animation system, and event-driven architecture, making it a versatile and lightweight solution for DMX control in Node.js environments.
DMX controller library for node.js
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multiple drivers including Enttec USB DMX Pro, Art-Net, BeagleBone-DMX, and DMX4ALL, as listed in the README, enabling integration with diverse DMX interfaces.
Provides a flexible DMX.Animation class with easing functions, delays, loops, and real-time filtering, allowing creation of smooth, complex lighting sequences without external tools.
Allows adding and controlling multiple DMX universes via dmx.addUniverse(), with configurable drivers and device IDs, facilitating scalable lighting setups for events or installations.
Emits update events on channel changes, enabling synchronization, monitoring, and easy integration with other application components for real-time feedback.
The included devices.js file has only a few entries like generic dimmers and specific LED bars, requiring manual configuration for most real-world fixtures, as noted in the README.
Specifically, the Enttec Open DMX USB driver is described as 'not very stable' with known hardware limitations, limiting reliable hardware choices for budget-conscious projects.
The web interface was moved to a separate repository (dmx-web), adding overhead for teams needing graphical control without additional installation and setup.