All Projects → margau → dmxnet

margau / dmxnet

Licence: MIT license
ArtNet-DMX-sender and receiver for nodejs

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to dmxnet

mqtt-dmx-controller
A simple ArtNet / DMX Controller with MQTT Interface 💡🎬
Stars: ✭ 48 (+11.63%)
Mutual labels:  artnet, stage-lighting, dmx512
sparklemotion
Sparkle Motion
Stars: ✭ 24 (-44.19%)
Mutual labels:  artnet, dmx, artnet-controller
dmx usb module
Linux kernel module for Enttec Open DMX dongle
Stars: ✭ 36 (-16.28%)
Mutual labels:  dmx, dmx512
dmx
Go DMX controller with ArtNet discovery + Angular Web UI with WebSockets
Stars: ✭ 24 (-44.19%)
Mutual labels:  artnet, dmx
TeensyDMX
A full-featured DMX library for Teensy 3, Teensy LC, and Teensy 4. "Programmable DMX and arbitrary USB serial device emulation."
Stars: ✭ 82 (+90.7%)
Mutual labels:  dmx, dmx512
h3dmx512-zip
Images for Allwinner H2+/H3 DMX512 / RDM / Art-Net / sACN / USBPro / Pixel / WS28xx / TCNet / SMPTE
Stars: ✭ 57 (+32.56%)
Mutual labels:  artnet, dmx512
open-fixture-library
A library and website for lighting technology's DMX fixture definition files.
Stars: ✭ 113 (+162.79%)
Mutual labels:  dmx, dmx512
ArtNode
Art-Net library for Arduino, Teensy, etc.
Stars: ✭ 27 (-37.21%)
Mutual labels:  artnet, dmx
ledcat
Control lots of LED's over lots of protocols
Stars: ✭ 89 (+106.98%)
Mutual labels:  artnet, dmx
lightningj
Core implementation of the lightningj API implementations.
Stars: ✭ 41 (-4.65%)
Mutual labels:  lightning
Chordly
Chordly is a javascript library that may be used to detect and act upon key sequences entered by a user.
Stars: ✭ 14 (-67.44%)
Mutual labels:  event
umbrel-middleware
RESTful Bitcoin and Lightning API for Umbrel
Stars: ✭ 21 (-51.16%)
Mutual labels:  lightning
ESPAsyncE131
Asynchronous E1.31 (sACN) library for Arduino ESP8266 and ESP32
Stars: ✭ 97 (+125.58%)
Mutual labels:  dmx
php-event-manager
PHP event manager. simple, fully functional event management dispatcher implementation. 简洁,功能完善的事件管理实现,支持快速的事件组注册,设置事件优先级,通配符事件的监听。
Stars: ✭ 25 (-41.86%)
Mutual labels:  event
EnhancedLightningGrid
Component that allows you to sort and filter data within the Lightning Experience. Use as a replacement for a Related List, or create a new grid that shows results from a custom query.
Stars: ✭ 110 (+155.81%)
Mutual labels:  lightning
DevSoc21
Official website for DEVSOC 21, our annual flagship hackathon.
Stars: ✭ 15 (-65.12%)
Mutual labels:  event
jquery-clickout
Handle clickout events with jQuery
Stars: ✭ 23 (-46.51%)
Mutual labels:  event
lightningtip
Get tips via the Lightning Network
Stars: ✭ 91 (+111.63%)
Mutual labels:  lightning
dead-simple
💀💡 Dead simple PubSub and EventEmitter in JavaScript
Stars: ✭ 21 (-51.16%)
Mutual labels:  event
sfdx-lwc-fullcalendarjs
Full Calendar JS - Lightning Web Components
Stars: ✭ 44 (+2.33%)
Mutual labels:  lightning

dmxnet

GitHub release npm GitHub issues GitHub stars GitHub license GitHub last commit Github All Releases npm Travis (.com)

dmxnet is an ArtNet-DMX-sender and receiver for nodejs, currently under heavy development!

Features

  • Send DMX-Data as ArtNet
  • Use multiple senders with different Net, Subnet and Universe-Settings
  • Receive ArtNet-Data
  • Use multiple receivers with different Net, Subnet and Universe
  • Receive ArtPoll and send ArtPollReply (dmxnet is found by other software, e.g. DMX-Workshop)

Contributors

See https://github.com/margau/dmxnet/graphs/contributors

Changelog

v0.8.0 Dependency Updates, constructor improvement (@soimon)

v0.7.0 Improve logging (thanks to @Patrick-Remy)

v0.6.0 Add typescript definitions (thanks to @she11sh0cked)

v0.5.0 Dependency Updates, add hosts option (thanks to @gaelhuot)

v0.4.0 Added support for receiving ArtDMX packets.

v0.3.0 Added support for base_refresh_interval, add sender.reset()

v0.2.0

Added support for receiving ArtPoll and sending ArtPollReply.

v0.1.3 Improved logging trough use of simple-node-logger

v0.1.2 Added subuni option to sender

v0.1.1 Added prepare channel

v0.1.0 Initital Release, sending ArtDMX working

Installation

How to install latest release:

npm install dmxnet

How to install current development version:

npm install git+https://[email protected]/margau/dmxnet.git

Usage

See example_rx.js and example_tx.js

Include dmxnet lib:

var dmxlib=require('dmxnet');

Create new dmxnet object:

var dmxnet = new dmxlib.dmxnet(options);

Options:

{
  log: { level: 'info' }, // Winston logger options
  oem: 0, //OEM Code from artisticlicense, default to dmxnet OEM.
  sName: "Text", // 17 char long node description, default to "dmxnet"
  lName: "Long description", // 63 char long node description, default to "dmxnet - OpenSource ArtNet Transceiver"
  hosts: ["127.0.0.1"] // Interfaces to listen to, all by default
}

Structure

dmxnet works with objects: You can create a new Sender or Receiver-instance at any time, each transmitting or receiving data for a single ArtNet-Universe.

Each combination of net, subnet and universe is possible.

Notes

dmxnet can propagate max. 255 Sender/Receiver-Objects to other nodes. This is a limitation based on the internal structure of ArtPollReply-Packages. You can of course use more Sender/Receiver-Objects, but they won't propagate trough ArtPoll.

Transmitting Art-Net

Create new sender object:

var sender=dmxnet.newSender(options);

Options:

{
  ip: "127.0.0.1", //IP to send to, default 255.255.255.255
  subnet: 0, //Destination subnet, default 0
  universe: 0, //Destination universe, default 0
  net: 0, //Destination net, default 0
  port: 6454, //Destination UDP Port, default 6454
  base_refresh_interval: 1000 // Default interval for sending unchanged ArtDmx
}

Set Channel:

sender.setChannel(channel,value);

Sets channel (0-511) to value (0-255) and transmits the changed values .

Fill Channels

sender.fillChannels(min,max,value);

Sets all channels between min and max (including these) to value and transmits the values.

Prepare Channel:

sender.prepChannel(channel,value);

Prepares channel (0-511) to value (0-255) without transmitting.

Change is transmitted with next

sender.transmit();

call, or the next periodically transmit. Useful for changing lots of channels at once/in parallel from device view.

Transmit:

sender.transmit();

Transmits a new ArtDMX Frame manually.

Reset:

sender.reset();

Resets all channels of this sender object to zero.

Please Note: dmxnet transmits a dmx-frame every 1000ms even if no channel has changed its value!

Receiving Art-Net

Create a new receiver-instance:

var receiver=dmxnet.newReceiver(options);

Options:

{
  subnet: 0, //Destination subnet, default 0
  universe: 0, //Destination universe, default 0
  net: 0, //Destination net, default 0
}

Wait for a new frame:

receiver.on('data', function(data) {
  console.log('DMX data:', data);
});

The receiver is emits an "data"-event each time new values have arrived.

The current values are stored inside the receiver.values-array for polling.

ToDo:

  • Act as Controller (Sending ArtPoll, Receiving ArtPollReply)
  • Maybe support sACN?

Please feel free to contribute!

Credits

Art-Net™ Designed by and Copyright Artistic Licence Holdings Ltd

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].