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!
- A guide to setting up a PTP master using Linux + GPS (Raspberry PI + UBlox gps module?)
- 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?)
- A test tone generator
- A talking clock (based on 'wall clock' PTP time)
- 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
- 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
- Silence detector
- Trigger the execution of a command
- Trigger the sending of an MQTT message?
- Level meter
- Allow remote monitoring in GUI / Text console
- Software mixer
- Mix together multiple input streams into an output stream
- Remote control of the levels of each incoming stream (MQTT?)
- Other tunable parameters?
- LADSPA host
- AES67 → LADSPA Plugin → AES67
- Make jackd interoperable with AES67
- Could you then run jackd without any native audio / kernel support?
- How different is Netjack to AES67?
- Apple AirPlay bridge
- Playing audio on iOS device → AES67
- AES67 Audio → AirPlay speakers
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!