Avbutil

From musings of k8
Revision as of 13:24, 23 December 2020 by Kward (talk | contribs)
Jump to navigation Jump to search

`avbutil` is used for the management of AVB features and settings. It enables control of AVB entities using the AVDECC (IEEE 1722.1) protocol.

Typically, the Audio MIDI Setup application is enough for most users to manage their audio interfaces, including routing audio to/from an AVB audio interface. For those users needing more control over the AVB routing, or for those users who are simply curious about the deeper workings of AVB on macOS, the `avbutil` command is for them.

The `avbutil` command is included in macOS since macOS Sierra, which was the first macOS release supporting AVB. Coincidentally, it was also the first macOS release that supported Thunderbolt, which happens to be a corresponding requirement for supporting AVB on Mac hardware.


    1. AVDECC Entity Controller

The AVDECC Entity Controller window is used to see the available AVB devices on the network, and to see (and in some cases alter) their active configurations.

<tbody bgcolor="lightblue"></tbody>
💡Tip:The controller window is started by opening Terminal, and calling the `avbutil` command.

``` $ avbutil avbutil 900.12

avbutil> controller ```

Once started, a window will appear that lists all the available AVB devices on the network. Here you can see three different MOTU audio interfaces that are currently connected.

AVDECC Entity Controller


    1. AVB Audio Entity Configuration

The AVB Audio Entity Configuration window shows the active configuration of an AVB audio entity.

<tbody bgcolor="lightblue"></tbody>
💡Tip:The configuration window is opened by selecting Audio Entity Configuration from the Window menu, or by typing Cmnd-1.

AVB Audio Entity Configuration

Entities can be selected by clicking on their names. In the image above, the MOTU 16A is currently selected. By default, no entities are selected.


    1. Simple Virtual Audio Entity Configuration

The Simple Virtual Audio Entity Configuration window allows the AVB capable Ethernet interfaces of the system to become active AVB entities on the network.

Once enabled, audio can be routed to/from the Mac as though it were an audio interface. This makes it possible for two Mac computers to exchange audio with one another over the network, and for one Mac to remotely manage the AVB connections of another mac using the AVDECC Entity Controller.

<tbody bgcolor="lightblue"></tbody>
💡Tip:The configuration window is opened by selecting Simple Virtual Audio Entity Configuration from the Window menu, or by typing Cmnd-2.

Simple Virtual Audio Entity Configuration


    1. AVDECC Connection Matrix

The AVDECC Connection Matrix window shows what AVB streams are patched where. This tool is used to patch AVB Talkers and AVB Listeners with each other.

<tbody bgcolor="lightblue"></tbody>
💡Tip:The matrix window is opened by selecting AVDECC Connection Matrix from the Window menu, or by typing Cmnd-4.

Talkers are listed across the top, and Listeners across the left.

AVDECC Connection Matrix

In the image above, one can see that the Stream 1 and 2 outputs of the MOTU 24Ai device are patched to the Stream 1 and 2 inputs of both the MOTU 16A and MOTU 24Ao devices. This means that both the 16A and 24Ao devices will receive exactly the same signals. (To note, MOTU AVB streams are 8 channels wide, so this example demonstrates the routing 16 channels of audio.)

The settings demonstrated can also be achieved using the MOTU Pro Audio Control user interface. Any changes made in the MOTU UI will also be reflected in real-time on the connection matrix UI.


    1. Appendix
      1. Known avbutil versions

OS | Version | .0 | .1 | .2 | .3 | .4 | .5 | .6 | .7 |


| ------- | ------ | ------ | ------ | -- | ----- | -- | ----- | ----- |

macOS Big Sur | 11.0 | 900.12 | 900.12 | | | | | | | macOS Catalina | 10.15 | | | 800.17 | | | | | 850.1 | macOS Mojave | 10.14 | | | | | 740.1 | | 760.6 | | macOS High Sierra | 10.13 | | | | | | | | | macOS Sierra | 10.12 | | | | | | | 506.1 | |

(*) v740.1 needs to be verified.

      1. Alternative AVDECC Controllers

[L-Acoustics](https://www.l-acoustics.com/) provide a set of open source libraries for controlling AVB entities using the AVDECC protocol that is compliant with the Milan specifications of the Avnu Alliance. The libraries are available at https://github.com/L-Acoustics/avdecc.

[Pivitec](http://www.pivitec.com/) once produced AVB hardware that interfaced with the Avid S3L console. They provided their own AVDECC Controller to manage the hardware. It is still possible to download their [AVDECC Controller](http://www.pivitec.com/avdecc-controller/), although it has not been updated since mid-2015.