blitface
v0.1.1
Published
Unified, configurable interface to artnet, DMX, FadeCandy and other LED and lighting devices
Downloads
2
Readme
Blitface
Note, this is experimental software, requiring final testing & docs before release and production usage.
Blitface is a unified, configurable interface for LED and light control. It is designed to be an adapter between various inputs and outputs and javascript. The following protocols are supported:
- Art-Net input and output of DMX over IP.
- E1.31 sACN input.
- ENTTEC DMX output to DMX serial devices.
- FadeCandy output with automatic management and configuration of server.
- Open Pixel Control input and output.
- Pixel Pusher output.
- xterm True Colour output for debugging.
Examples
Javascript
const Blitface = require('blitface')
let config = {
output: {
// Fake output to 40 columns of terminal.
terminal: {
length: 120
}
},
input: {
// Fake input, starting 9 addresses in,
// representing 3 RGB pixels.
rainbow: {
offset: 3,
length: 111
}
},
}
let root = new Blitface( config )
root.open()
.then( function () {
// Blit Red, Green and Blue to first 3 pixels of output.
root.blit('ff0000 00ff00 0000ff')
})
Command Line
# Install module globally
npm install -g blitface
# Load configuration file
blitface config.yaml
# Configuration straight from command line
blitface --input.rainbow true --output.fadecandy.path ../fadecandy
Configuration
Common
input:
foo:
name: foo
type: rainbow
offset: 0
length: 0
output:
bar:
name:
Art-Net
- Lengths longer than
universeSize
are sent to incrementing universes. - Tested with MadMapper 3.6.2.
universeSize
should be set to510
in most cases.
input:
artnet:
port: 6454
universe: 0
physical: 0
universeSize: 512
output:
artnet:
host: localhost
length: 512
universe: 0
physical: 0
port: 6454
universeSize: 512
Fade Candy
- You must clone or download the Fade Candy server to use this subsystem.
output:
fadecandy:
# Required! Path to root directory of fadecandy install
path: ''
# Useful server config
pinsPerDevice: 8
pixelsPerPin: 64
interpolate: false
dither: false
order: 'rgb'
#
# Everything below is pretty pedantic
#
binary: fcserver-osx
searchPath: ['.','bin']
keepOpen: true
retry: 500
# Log server output to console
verbose: true
# Set host to 0.0.0.0 to allow outside use.
public: false
host: localhost
port: 7980
led: true
tmp: /tmp
file: ''
keepFile: false
OPC
- OPC output may be used when a Fade Candy server is created elsewhere.
- OPC input server only accepts raw OPC pixel data. It does not emulate a real Fade Candy server instance, and as such is incompatible with many OPC implementations.
Pixel Pusher
output:
pixelpusher:
strips: 8
pixels: 60
controllers:
- d8:80:xx:xx:xx:xx
- 1
Terminal
terminal
outputs RGB data straight to the console. Useful for debugging.
- For best results with iTerm2, turn down 'Minimum contrast' in Preferences / Profiles / Colors.
output:
terminal:
# Width of display. Defaults to console width on startup.
width: 0
char: "◉ "
channels: 3
Similar Projects
- Open Lighting Architecture is a very powerful, mature project.
- PixelNode seems to be a similar project, with a variety of interfaces and features such as filters. It is still under development.
Acknowledgements
Development of this module is supported by HFour Studio.
Pixel Pusher code adapted from heroic-pixel-pusher by ajones.