Skip to content

Instantly share code, notes, and snippets.

@njh
Last active February 19, 2024 16:54
Show Gist options
  • Star 50 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save njh/c9196c465ea33ae9f97db782870464ef to your computer and use it in GitHub Desktop.
Save njh/c9196c465ea33ae9f97db782870464ef to your computer and use it in GitHub Desktop.
AES67 Open Source Software Wishlist

AES67 (an open standard for high quality audio over IP) is becoming mainstream in the world of broadcast and professional audio industries, however there is a very limited amount of open source software available to interoperate with it. As a result we are often just replacing XLRs with Ethernet, without taking advantage of the possibilites the software give. While Virtual Soundcards enable some of this, native network implementations would allow greater flexibility.

This is my wishlist of things that would help change that. Hopefully one day it can be turned into a AES67 Awesome List.

As open source has resulted in very rapid evolution of the web, I believe the same is possible for professional/broadcast audio.

It is possible that some of this already exists and I just havn't found it yet. Please add a comment below if you know of something!

The Wishlist

  1. A guide to setting up a PTP master using Linux + GPS (Raspberry PI + UBlox gps module?)
  2. Long-running Stream recorder / Recording of Transmission archiver
    • Either write 1 hour audio files to disk
    • Or write chunked audio (~6 seconds per audio file) to disk, that can then be streamed back using HLS/DASH
    • Write files based on the PTP/RTP clock
    • Ensure that missing packets don't skew time (replace with silence/repeat previous packet?)
  3. A test tone generator
  4. A talking clock (based on 'wall clock' PTP time)
  5. Play an audio file directly to the network
    • Looping (allowing line identification streams)
    • with resampling to make the audio match the rest of the network
  6. A AES67 stream router
    • Web interface to make remote control/monitoring easy
    • Relay multicast/unicast streams from one subnet to another
    • Monitor the parameters of multicast streams on the network
      • Samplerate
      • Number of subscribers
  7. Silence detector
    • Trigger the execution of a command
    • Trigger the sending of an MQTT message?
  8. Level meter
    • Allow remote monitoring in GUI / Text console
  9. Software mixer
    • Mix together multiple input streams into an output stream
    • Remote control of the levels of each incoming stream (MQTT?)
    • Other tunable parameters?
  10. LADSPA host
    • AES67 → LADSPA Plugin → AES67
  11. Make jackd interoperable with AES67
    • Could you then run jackd without any native audio / kernel support?
    • How different is Netjack to AES67?
  12. Apple AirPlay bridge
    • Playing audio on iOS device → AES67
    • AES67 Audio → AirPlay speakers
@nettings
Copy link

nettings commented Aug 4, 2019

At least the Airplay wish is now "reduced" to getting JACK running, as shairport-sync has JACK support enabled in the latest pre-release.

@dsseng
Copy link

dsseng commented Feb 4, 2023

12.2) might work on PipeWire (likely the upcoming 0.3.66), since it should be able to capture AES67 RTP packets and send to AirPlay. Not really reliable for now, but testing appreciated.

@dsseng
Copy link

dsseng commented May 27, 2023

You can track PipeWire support improvements on our tracker issue: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3217 . Feel free to add comments, especially if you have compliant devices and are willing to sometimes build PW from source and test our development effort

@prk0ghy
Copy link

prk0ghy commented Feb 11, 2024

#2 honorable mention:
https://github.com/voc/aes67-recorder
also
#8 here might be some hints (also source for first link)
https://blog.mazdermind.de/2019/01/01/aes67-auf-dem-35c3/index.html

@dsseng
Copy link

dsseng commented Feb 12, 2024

We're happy to announce more successful tests and major improvements for PipeWire AES67 support. PipeWire 1.1.0 release will include all the improvements necessary for AES67 (verified interoperable with Dante and RAVENNA). Check out the docs for setup guide and tested hardware: https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/AES67

You can use PipeWire's AES67 implementation to work with other audio hardware, PulseAudio, ALSA and JACK clients. Devices are visible to common software just as general audio cards are.

Any feedback welcome either via Freedesktop Gitlab or reaching me another way. Would be glad to help and hear your success or demands for improvements.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment