Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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
@ahogen

This comment has been minimized.

@calmcl1

This comment has been minimized.

Copy link

@calmcl1 calmcl1 commented Sep 10, 2018

Regarding item 2, the ROT archiver, I've got a project on the go (though admittedly on the backburner at the moment, as it's silly season at work) called Chronicle. It's an hourly ROT archiver, though at the moment the timing is based on the system clock, so the system would have to be synced to an NTP/PTP server. It's currently in 24/7/365 use at Halton Comunity Radio in the UK, and being trialled in a couple of other stations. Maybe it's worth a check?
https://github.com/hcr923fm/chronicle

@rshamsnejad

This comment has been minimized.

Copy link

@rshamsnejad rshamsnejad commented Oct 12, 2018

Hi !

I am very excited to find this wishlist, because I am currently stirring a lot of things related to open-source AES67 support for Linux. I am an audio engineer and former IT nerd, and I have a LOT of motivation about this. Let me comment your list :

Wish 1 : it is actually pretty easy, I will try to draft a tutorial as soon as I have tested every case I can think of. But all in all, on a fresh latest Debian install, it does not take me more than half an hour to fully configure a master ptp server.

Wish 4 : I don’t understand what you mean by a talking clock ?..

Wishes 2, 3, 5, 7, 9, 10, 11 : all these ideas could be gathered in one : we need an AES67 virtual soundcard ALSA module. That way, every need of streaming or recording audio to/from the network is narrowed down to using a simple audio device. (See Audinate’s Dante Virtual Soundcard, Merging’s Virtual Audio Device, Lawo’s R3LAY VSC, etc). I found this github with some guidelines, wrote to the author but did not get an answer yet : https://github.com/SimonTait/alsa67

I would like to start laying some milestones on this driver, but kernel programming involves a pretty steep learning curve for me :D

Wishes 6 and 8 : they could also be gathered : it could become a unique discovery/monitoring/routing software, much like Audinate’s Dante Controller or Merging’s ANEMAN.

Wish 7 : something could be derived from this project : https://github.com/WMFO/Silence-Detector

Wish 12 : why would like this feature ?

@edglazer

This comment has been minimized.

Copy link

@edglazer edglazer commented Nov 29, 2018

I've been tracking open source AES67 and axia/livewire implementations for a couple of years now and these are the tools I've found:
An example of a loudness meter/gui, like number 8:
https://github.com/kylophone/AXIA-LUFS

There are also several related players/recorders from network devices (for #2):
https://github.com/kylophone/xplay
https://github.com/kylophone/axiadump
https://github.com/kylophone/AACAxiaDump

An example of transcoding, in this case to feed an icecast stream:
https://github.com/ykmn/livewire-streamer

and an example of being able to play to and play from network sources: (#5, possibly #9? Haven't tried it):
https://github.com/openbroadcaster/obplayer

And lookslike someone has made progress on a jack<-->AES67 interface as well (#11):
https://github.com/markmcconnell/mai

#12 is probably never gonna happen for a couple of reasons (airplay being a proprietary and undocumented protocol, for one). As example, this dude is working on sending between ESP32 devices on wifi and has gotten a latency of 2ms, where AES67 requires 0.25ms (according to his readme):
https://github.com/sfc-arch/esp32_aes67_sender

Would love an ALSA driver, but AES67 is probably too niche for now. I seem to recall a buddy telling me that he was seeing job postings for AES67 knowledgeable engineers to work on car audio, and if that becomes a common practice, I can imagine it getting more traction.

But it's always great to see people sharing resources on AES67, so anything y'all come up with is awesome!

@dewiweb

This comment has been minimized.

Copy link

@dewiweb dewiweb commented Feb 3, 2019

Finally, Merging technologies has published yesterday an Ravenna/aes67 alsa driver with some limitation for personal use. More information here: https://merging.com/products/alsa_ravenna_aes67_driver

@njh

This comment has been minimized.

Copy link
Owner Author

@njh njh commented May 27, 2019

For anyone interest in AES67 and Audio over IP, I have created this Google Group:
https://groups.google.com/d/forum/audio-over-ip

@nettings

This comment has been minimized.

Copy link

@nettings 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.