Skip to main content

Python wrappers for the Art-Net protocol to send DMX over Ethernet

Project description

pyartnet

PyPI - Python Version Downloads

pyartnet is a python implementation of the ArtNet protocol using asyncio.

Usage

Fades

from pyartnet import ArtNetNode

node = ArtNetNode('IP')
await node.start()

universe = node.add_universe(0)
channel  = universe.add_channel(start=1, width=3)

# Fade channel to 255,0,0 in 5s
# The fade will automatically run in the background
channel.add_fade([255,0,0], 5000)   

# this can be used to wait till the fade is complete
await channel.wait_till_fade_complete()

Channel handling

Created channels can be requested from the universe through the dict syntax or through universe.get_channel(). If no channel name is specified during creation the default name will be {START}/{WIDTH}.

channel = universe['1/3']  
channel = universe.get_channel('1/3')  

Callbacks

There are two possible callbacks on the channel which make it easy to implement additional logic. The callback takes the channel as an argument. This example shows how to automatically fade the channel up and down.

from pyartnet import ArtNetNode, DmxChannel

node = ArtNetNode('IP')
universe = node.add_universe(0)

channel = universe.add_channel(start=1, width=3)

def cb(ch: DmxChannel):
    ch.add_fade([0] if ch.get_channel_values() == [255] else [255], 1000)

channel.callback_fade_finished = cb
channel.callback_value_changed = my_func2

Output correction

It is possible to use an output correction to create different fade curves. Output correction can be set on the universe or on the individual channel.

from pyartnet import ArtNetNode, output_correction

node = ArtNetNode('IP')

universe = node.add_universe(0)
universe.output_correction = output_correction.quadratic  # quadratic will be used for all channels

channel = universe.add_channel(start=1, width=3)
channel.output_correction = output_correction.cubic       # this channel will use cubic

The graph shows different output depending on the output correction.

From left to right: linear (default when nothing is set), quadratic, cubic then quadruple

Quadratic or cubic results in much smoother and more pleasant fades when using LED Strips.

Changelog

0.7.0 (28.10.2020)

  • renamed logger to pyartnet to make it consistent with the module name
  • callbacks on the channel now get the channel passed in as an argument
  • Adding the same channel multiple times or adding overlapping channels raises an exception
  • Added pyartnet.errors
  • optimized logging of sent frames

0.6.0 (27.10.2020)

  • ArtnetNode.start is now an async function
  • ArtnetNode.step_time_ms renamed to ArtnetNode.step_time (shouldn't be used manually anyway)
  • removed support for python 3.6
  • added more and better type hints
  • switched to pytest
  • small fixes

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

pyartnet-0.7.0.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyartnet-0.7.0-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file pyartnet-0.7.0.tar.gz.

File metadata

  • Download URL: pyartnet-0.7.0.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4

File hashes

Hashes for pyartnet-0.7.0.tar.gz
Algorithm Hash digest
SHA256 2f9bf132eaa94116960d5bcc4cc07d4af01e77f53519961d52e3ba3eee91374a
MD5 7b730449b7a5c31b118f88a394c11c3a
BLAKE2b-256 b5d0b41912b6d1cfca97a17f536cffe237eac63b491baa8c56cad78a25d993c1

See more details on using hashes here.

File details

Details for the file pyartnet-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: pyartnet-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4

File hashes

Hashes for pyartnet-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2e3f93cbf18ab1fc674dca2837a2ea64ff6d48cb268f03931f612c80596e5202
MD5 08bd5df6b793991968e1590c32a6a6b6
BLAKE2b-256 997d66d9d78528fbc12e2e325399e521d4d345083280c33547a2deffc8bb9069

See more details on using hashes here.

Supported by

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