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.9

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.9
File Size Uploaded
netaudio-0.3.9.tar.gz 702.0 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for netaudio 0.3.9
File
netaudio-0.3.9-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
netaudio-0.3.9-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details
netaudio-0.3.9-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details
netaudio-0.3.9-py3-none-macosx_11_0_x86_64.whl Python 3 none macOS 11.0+ x86-64 Details
netaudio-0.3.9-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.9.tar.gz

Download URL netaudio-0.3.9.tar.gz
Size 702.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c281d9d249eba05429c185a44a8f308fccdb2f200df551c17452764633d2b65d
BLAKE2b-256 checksum
How to use checksums
20549e614c68de0e1a1f530836842211eec34c838f061d018ccd293c0cc2d3cd
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.9-py3-none-win_amd64.whl

Download URL netaudio-0.3.9-py3-none-win_amd64.whl
Size 1.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
dc98aa48c12f782f27a763b183e86d7b5f1c018846ce23e2faaed754b09a098a
BLAKE2b-256 checksum
How to use checksums
fe285de1236cdd35814c0c684b8a0892e01e8554d1b7686c10b312ac7b7ebca9
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.9-py3-none-manylinux_2_28_x86_64.whl

Download URL netaudio-0.3.9-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
5fe4c1bd63d75b69e474dafa46c2fe6885287808cf916964c32bc67403634b0a
BLAKE2b-256 checksum
How to use checksums
affa4449469a9895236976f3bb651a9c51956e5daee0fdda4e7ff5055db3b804
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.9-py3-none-manylinux_2_28_aarch64.whl

Download URL netaudio-0.3.9-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
dd8615b73bbe2278642ef8ca610fc837276b2ca56aea41ccf05362496cfc6e95
BLAKE2b-256 checksum
How to use checksums
ce91d6bbbdecf3fad96eb1154f99e258239e0eec5ea371d5d56690c0e940ae30
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.9-py3-none-macosx_11_0_x86_64.whl

Download URL netaudio-0.3.9-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
485bb93197455c5cb39c53abda86e1bf5755502d8c8bc34115ac67601e102489
BLAKE2b-256 checksum
How to use checksums
753c0d7e2465b7227a83386db8ced8becdc09fa5444e26808b91df8addf8143f
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.9-py3-none-macosx_11_0_arm64.whl

Download URL netaudio-0.3.9-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
b7fcc35a2c9f9598980f9a699b2d7eafc7929b6525f80d344a4af9e3c9918f44
BLAKE2b-256 checksum
How to use checksums
8a3b7448f3d719e4f536295620129cccc8522cee2549e9224c5627911ac357a0
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

This release

0.3.9 This release

6 release files

0.3.7

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