Skip to main content

Description

This is a python program for controlling Dante network audio devices (and possibly others in the future). It's early, so expect things to break or switches to change. Use this at your own risk; it's not ready for anything other than a test environment and could make the devices behave unexpectedly. The first goal is to do everything that Dante Controller can do that would be useful for control of the devices from a command-line interface or within scripts.

For more information, check out the gearspace discussion.

Features

Current

  • AVIO input/output gain control
  • AES67 readiness in the browser: supported and active modes, pending changes, and DDM-reported RTP flow availability
  • Add/remove subscriptions
  • CLI and browser interface
  • Cross-platform daemon
  • DDM-enrolled device settings in the browser, including latency, encoding, analog gain, preferred leader, network configuration, reboot, and sample-rate controls for supported models
  • Primary and secondary DHCP/static network configuration on supported Wing devices, through the browser, CLI and API, including DDM-managed control
  • Device lock/unlock
  • Display active subscriptions, Rx and Tx channels, devices names and addresses, subscription status
  • JSON output
  • Set device latency, sample rate, encoding
  • Set/reset channel names, device names
  • mDNS device discovery

Installation

To install from PyPI:

uv tool install netaudio

Or with pip/pipx:

pip install netaudio

To install from a clone (requires Python 3.9+ and a Rust toolchain):

uv sync
uv run netaudio

Arch Linux

To install from AUR, build the package with aur/netaudio.

Usage

Run netaudio if installed globally, or uv run netaudio from a clone. Use --help to list commands and options.

To open the browser interface:

netaudio daemon start
netaudio daemon web --open

The server reports its installed version at GET /server-info and during local-network discovery. A Git revision is included when the installation metadata identifies a Git commit.

Run tests:

uv run pytest -q
cargo test --manifest-path packages/netaudio-core/Cargo.toml

Lint and format:

uv run ruff check .
uv run ruff format .
HTTPS

The daemon serves plain HTTP by default. If you already have a certificate for the machine, the daemon can additionally serve HTTPS on a second port; nothing is generated or managed for you:

[daemon]
tls_certificate = "/etc/netaudio/daemon.crt"
tls_key = "/etc/netaudio/daemon.key"
tls_port = 9443

Relative paths resolve against the config file's directory, tls_port defaults to 9443, and the HTTP port keeps working for local tools. netaudio daemon tls shows the active configuration and the certificate's SHA-256 fingerprint; netaudio daemon web lists the HTTPS addresses alongside HTTP. The Bonjour record carries the HTTPS port as tls_port. Clients trust the certificate through their normal trust store, so a certificate signed by a CA your devices already trust is the least friction.

Documentation

Release files for netaudio 0.3.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for netaudio 0.3.7
File Size Uploaded
netaudio-0.3.7.tar.gz 697.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for netaudio 0.3.7
File
netaudio-0.3.7-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
netaudio-0.3.7-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details
netaudio-0.3.7-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details
netaudio-0.3.7-py3-none-macosx_11_0_x86_64.whl Python 3 none macOS 11.0+ x86-64 Details
netaudio-0.3.7-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details

Total release size: 7.1 MB

Release files / netaudio-0.3.7.tar.gz

Download URL netaudio-0.3.7.tar.gz
Size 697.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f077f9416f7c20c83084bcef7ed333ee1b672852aebe1668001e420f11876aca
BLAKE2b-256 checksum
How to use checksums
04f5efa4439a6442938994198e99649037264def27b17c1435b2b10ec1c6a1cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / netaudio-0.3.7-py3-none-win_amd64.whl

Download URL netaudio-0.3.7-py3-none-win_amd64.whl
Size 1.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
d6ea351bdc378d3b0e7134798602b924ab708949ee923f5c59daf20dcd996092
BLAKE2b-256 checksum
How to use checksums
6eca647227f971f9daaede952005eb89019860eca5a6403784b6272549dd6471
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / netaudio-0.3.7-py3-none-manylinux_2_28_x86_64.whl

Download URL netaudio-0.3.7-py3-none-manylinux_2_28_x86_64.whl
Size 1.3 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
48f210072d8abd5f78ae6536ed3342ae7cde90028458c2dd9516445524963025
BLAKE2b-256 checksum
How to use checksums
0f882e6878b0b926c00313582dec5bbd634b99dda0252b29bd3d731b0ec9e552
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / netaudio-0.3.7-py3-none-manylinux_2_28_aarch64.whl

Download URL netaudio-0.3.7-py3-none-manylinux_2_28_aarch64.whl
Size 1.3 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
4fd6fdd9f139b01fa6ce420d544b8942442a9bb5467bb94345c4bb893ae99511
BLAKE2b-256 checksum
How to use checksums
f151b5509c25762c0d8bbf2cc8416fd7325cdd402bb3b9260e5e01eab740d91a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / netaudio-0.3.7-py3-none-macosx_11_0_x86_64.whl

Download URL netaudio-0.3.7-py3-none-macosx_11_0_x86_64.whl
Size 1.3 MB
Tags Python 3 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
0329114c78d736c0603f2289e7cbe6952eb2292960702f7543813e19f53fbe96
BLAKE2b-256 checksum
How to use checksums
3c3ce094c5105e5bf06b453493937572e4f4363e87b9aef84ccb5837f648dbfe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / netaudio-0.3.7-py3-none-macosx_11_0_arm64.whl

Download URL netaudio-0.3.7-py3-none-macosx_11_0_arm64.whl
Size 1.3 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
63e1aa1812dd205dc06a2d49a3fc4704ce41627f21d3c0a9152d35427da3363e
BLAKE2b-256 checksum
How to use checksums
4306bcbd6e08c44fb0f9a17c646da6b8860a8db95f98c31a0d4d11ca974b2049
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.14

6 release files

0.3.13

6 release files

0.3.12

6 release files

0.3.9

6 release files

This release

0.3.7 This release

6 release files

0.3.6

6 release files

0.3.5

6 release files

0.3.4

6 release files

0.3.3

6 release files

0.3.1

6 release files

0.3.0

6 release files

0.2.5

5 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page