Skip to main content

A Python 3 module to control DMX via Python. Featuring fixture profiles and working with uDMX.

Project description

PyPI

PyDMXControl

PyDMXControl
A Python 3 module to control DMX via Python. Featuring fixture profiles and working with uDMX.

Installation

Install via pip (recommended)

pip install PyDMXControl

Features

  • FIXTURE profiles per manufacturer
  • EFFECT module/library support
  • uDMX works out of the box
  • CUSTOM callbacks supported with an internal ticker
  • THREADED to allow continuous runtime
  • WEBSITE control panel built in

Example

from PyDMXControl.controllers import uDMXController
from PyDMXControl.profiles.Generic import Dimmer

dmx = uDMXController() # create the controller

fixture = dmx.add_fixture(Dimmer, name="My_First_Dimmer") # add the Dimmer and give it a name for quick reference
fixture.dim(255, 5000) # dim to full over 5 seconds

dmx.web_control() # start the web control panel (runs in background)
dmx.debug_control() # enter shell debug mode

dmx.sleep_till_enter() # sleep till enter pressed in shell (once debug mode exited)
dmx.close() # cleanly close PyDMXControl

For a "real life" example, please take a look at tests/home.py which is the setup I use in my office.

Ramble

Just messing around with using Python to control/send DMX.
Supports fixture profiling; Has defaults for a standard fixture and fixtures that need virtual dimmers.
Prebuilt profiles for generic fixtures (Single dimmer, RGB LED, Custom (set your own number of channels)).

Has a debug shell that allows control of fixture channel values and access to general callbacks. Additionally, provides an advanced web control panel with access to global callbacks, fixture helpers, fixture colors and control over individual fixture channels.

Currently only supports actual output via uDMX.
There is also a print controller included that prints the DMX frames to console at the same rate it should output them to a data cable (this can cause issues though with other things printing as well).

If someone wants to buy me an Enttec USB DMX Pro then I'll try make it work with that too.

Thank you to Dave Hocker, author of pyudmx, for his work on pyudmx and his advice via email in solving some of the issues making this library behave with uDMX.

Discussion, Support and Issues

For general support and discussion of this project, please join the Discord lounge server: https://discord.gg/qyXqA7y
Discord Server

To check known bugs and see planned changes and features for this project, please see the GitHub issues.
Found a bug we don't already have an issue for? Please report it in a new GitHub issue with as much detail as you can!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyDMXControl-1.4.1.tar.gz (18.1 kB view hashes)

Uploaded Source

Built Distributions

PyDMXControl-1.4.1-py3.6.egg (4.6 kB view hashes)

Uploaded Source

PyDMXControl-1.4.1-py3-none-any.whl (4.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page