Minimalistic Python library for Sinette DMX levels. No checking, just getting levels.
- Subscribe and get DMX levels
- With uv:
uv add sinette- With pip
pip install sinetteimport time
import sinette
sinette_universe = 1
sinette_scope = "local"
sinette_receiver = sinette.SinetteReceiver(scope=sinette_scope)
@sinette_receiver.listen_on("universe", universe=sinette_universe)
def on_sinette_dmx(packet):
print(
f"[{packet.scope}] universe {packet.universe}: {packet.dmxData[:16]}",
flush=True,
)
def main() -> None:
sinette_receiver.join_multicast(sinette_universe)
sinette_receiver.start()
print(
f"Listening for Sinette universe {sinette_universe} in scope {sinette_scope!r}. Press Ctrl-C to stop."
)
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
pass
finally:
sinette_receiver.stop()
if __name__ == "__main__":
main()PRs appreciated. You can use uv to get the project setup by running:
uv sync- To format, use ruff
uv format- You can use the pre-commit hooks
uv run pre-commit install- To test, use pytest
uv run pytest