~hp/osc2ftdidmx

Append Issues/Patches section to readme
0ab3da86 — builds.sr.ht 3 months ago
Update ci to release-0.2.0
3204fa50 — builds.sr.ht 5 months ago
Update ci to release-0.1.2

clone

read-only
https://git.open-music-kontrollers.ch/~hp/osc2ftdidmx
read/write
git@git.open-music-kontrollers.ch:~hp/osc2ftdidmx

You can also use your local clone with git send-email.

#osc2ftdidmx

#OSC to FTDI DMX bridge

builds.sr.ht status

Control your DMX devices via an OSC server that talks to FTDI-DMX USB adapters..

#Dependencies

  • LV2 (LV2 Plugin Standard)
  • libftdi (Library to talk to FTDI chips)

#Build / install

git clone https://git.open-music-kontrollers.ch/~hp/osc2ftdidmx
cd osc2ftdidmx
meson build
cd build
ninja
sudo ninja install

#Compatibility

Should be compatible with any FTDI-based USB-DMX adapter, e.g

#Usage

#Discover your type of FTDI-DMX device via e.g. dmesg when plugging it in
[user@machine ~] dmesg
[  132.718684] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00
[  132.718689] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  132.718691] usb 1-1.4: Product: KMtronic DMX Interface
[  132.718693] usb 1-1.4: Manufacturer: KMtronic
[  132.718695] usb 1-1.4: SerialNumber: ABCXYZ
#Run osc2ftdidmx with the information gathered above
osc2ftdidmx \
	-V 0x0403 \                   # USB idVendor
	-P 0x6001 \                   # USB idProduct
	-D 'KMtronic DMX Interface' \ # USB product description
	-S ABCXYZ \                   # USB product serial number
	-F 30 \                       # update rate in frames per second
	-U osc.udp://:6666            # OSC server URI
#Control osc2ftdidmx with your favorite OSC client

osc2ftdidmx supports 32 priority levels per channel. If priority level 0 on a given channel is set, and now priority level 1 gets set, the latter takes precedence. When priority level 1 is cleared, value is taken from priority level 0 again. If no priority level is set on a given channel, the channel's value is assumed to be 0.

#/dmx/[0-511]/[0-31] {i}+ [0-255]+

To set channels, send your OSC messages to given OSC path with integer argument(s) being subsequent channel/priority values.

# set channel 0, priority 0 to value 255
oscsend osc.udp://localhost:6666 /dmx/0/0 i 255

# set channel 12, priority 31 to value 127
oscsend osc.udp://localhost:6666 /dmx/12/31 i 127

# set channels 23,24,25,26, priority 1 to values 1,2,3,4
oscsend osc.udp://localhost:6666 /dmx/{23,24,25,26}/1 iiii 1 2 3 4

# set all channels, priority 3 to value 0
oscsend osc.udp://localhost:6666 /dmx/*/3 i 0

# set channel 0, priorities 0,1 to values 1, 2
# set channel 1, priorities 0,1 to values 3, 4
oscsend osc.udp://localhost:6666 /dmx/[0-1]/[0-1] iiii 1 2 3 4

# set channel 0, priorities 0,1 to values 1, 2
# set channel 1, priorities 0,1 to values 3, 3
oscsend osc.udp://localhost:6666 /dmx/[0-1]/[0-1] iii 1 2 3

# set channel 0, priorities 0,1 to values 1, 2
# set channel 1, priorities 0,1 to values 2, 2
oscsend osc.udp://localhost:6666 /dmx/[0-1]/[0-1] ii 1 2

# set channel 0, priorities 0,1 to values 1, 1
# set channel 1, priorities 0,1 to values 1, 1
oscsend osc.udp://localhost:6666 /dmx/[0-1]/[0-1] i 1
#/dmx/[0-511]/[0-31]

To clear values, send your OSC messages to given OSC path without any arguments.

# clear all channels, priorities
oscsend osc.udp://localhost:6666 /dmx/*/*

# clear channel 0-1, priorities 0-1
oscsend osc.udp://localhost:6666 /dmx/[0-1]/[0-1]

#Issues/Patches

Please report issues to https://todo.open-music-kontrollers.ch/~hp/issues

Please submit patches to https://lists.open-music-kontrollers.ch/~hp/patches