Linux driver for RAVENNA / AES67

Merging Technologies is proud to deliver to the community an ALSA Linux driver designed to provide high performance RAVENNA/AES67 support for the Linux ecosystems.

Merging is strongly committed to foster the adoption of AES67 networking capability by making available a simple to integrate AES67 ALSA Linux driver with all required functionalities for Linux based OEMs to take advantage of this rapidly evolving market.

Merging being also heavily involved in the RAVENNA adoption on a general manner and in its own products, this ALSA driver also fully supports RAVENNA, up to the highest quality including DSD.

The driver is available on two flavors, a public build for non-commercial applications available to anybody interested in AES67/RAVENNA, and an OEM build for commercial products integration.

For discussions, bug reports and comments, a public forum is available.

If you are interested as an OEM integrator and want more information, simply contact us with your demand.

Features

  • 1fs to 8fs support
  • PCM up to 384kHz
  • Native DSD playback (64/128/256) support (DOP not supported)
  • Interleaved and non-interleaved (2) 16/24/32 bit integer formats
  • No software channel limitation (1)
  • Volume control
  • PTP driven driver

(1) OEM build only or when a Merging device is present. Public build is limited to 8 I/O
(2) Not available in capture mode

Architecture

The RAVENNA ALSA implementation is split in two parts:


  • A linux kernel module (LKM) :
    MergingRavennaALSA.ko

  • A user land daemon called the 'Butler' :
    Merging_RAVENNA_Daemon

ALSA RAVENNA AES67 architecture

The kernel module part is responsible for:

  • Registering as an ALSA driver
  • Generating and receiving RTP audio packets
  • PTP driven interrupt loop
  • Netlink communication between user and kernel

The Butler daemon part is responsible for:

  • Communication and configuration of the LKM
  • High level RAVENNA/AES67 protocol implementation
    • mDNS discovery
    • SAP discovery
  • RAVENNA devices sample rate arbitration
  • Web server
  • Remote volume control

Note : The Butler daemon cannot be launched if the LKM has not been previously inserted. The LKM cannot be removed as long as the daemon is running

Licensing

Although the kernel part (MergingRavennaALSA.ko) of this software is licensed under GNU GPL, the user land part (the daemon, named 'Butler') is divided in two licenses according to your use case :


  • OEM Build: OEM integration into commercial products; simply contact us with your demand.

  • Public Build: Personnal use; as long as the driver is not included in a commercial product.

    Licence is available here (butler/licence) AES67 / RAVENNA ALSA Driver EULA

Performances

Expected performance is 5ms latency on a intel Core i7 running other applications and a non-real-time linux kernel.

OEM Build:
  • 64 channels maximum recommended
    • There is no software limitation preventing the driver to work at lower latencies or higher channel count.
  • Merging can assist integrators in tuning your system and achieving maximum performance.
    • Performances can NOT be guaranteed on every platform, as it is dependant on the kernel features, overall system load, and hardware specifications.
Public Build:
  • Limited to 8 channels
    • Performances can NOT be guaranteed on every platform, as it is dependant on the kernel features, overall system load, and hardware specifications.
      Only available for x64 based platform.

Docs & Downloads

For discussions, bug reports and comments, a public forum is available.

Current Installer
File Name Description

Merging ALSA RAVENNA/AES67 Documentation

Documentation to build & install the Merging ALSA RAVENNA/AES67 Driver.

Merging ALSA RAVENNA/AES67 Driver bundle

Tar.gz archive of the ALSA driver to enable RAVENNA and AES67 audio over IP protocols support to various Linux distributions

Merging ALSA RAVENNA/AES67 Driver source

Source to build & install the Merging ALSA RAVENNA/AES67 Driver.

git clone https://bitbucket.org/MergingTechnologies/ravenna-alsa-lkm.git
make