New personal project: AoIP / AoE / networked audio in Linux

I’ve spent a long time researching how I can:

  • record classical/chamber music on location using up to 16 mics,
  • control and monitor 100+ ft away from the stage,
  • avoid buying large analog snakes, hopefully only a single ethernet cable.

The obvious answers for Mac/Win folks are all the (mostly proprietary) AoIP systems, but I’ve still yet to see anyone using them reliably on Linux. (In fact, I don’t see many people admitting to recording classical music in Linux at all.)

My research up until a month ago had me replacing my Cranborne 500R8 with multiple preamps from Miillenia, Grace Design, etc. and either cobbling together something that might work with Linux, or migrating back over to one of the dark side operating systems (gulp).

My second option was to chuck the whole ‘remote’ idea and buy nearly $2000 (and 40lb) worth of analog snakes. I nearly pulled the trigger on this. Yuck.

But I decided to go a different route and try to make my existing interface and rack work for remote recording and networked monitoring via Cat5. (Obviously, I won’t be controlling the 500 series preamps or the summing mixer remotely.)

I’m nearly finished with this lengthy project. Once I’m done stress-testing it, I’ll probably make some videos on the subject. But here are the basics:

Stage Rig

  • 500R8
  • ADA8200
  • Fanless PC running Ardour recording
  • zita-bridge sending 16ch 24/48 audio direct from the USB capture from the interface
  • zita-bridge receiving 2ch from monitoring talkback
  • multiple OSC dashboards running on the stage PC, controlling/watching Ardour, accessible via Laptop or smartphone browser
  • Cranborne C.A.S.T. devices delivering summing bus mix + talkback to headphones near stage

150’ of Cat5e with ethercon connectors

Monitoring Rig

  • Laptop running Ardour for monitoring
  • Behringer UMC202HD interface
  • Monitors / headphones
  • Talkback mic
  • zita-bridge receiving 16ch audio from the stage rig
  • zita-bridge sending 2ch 24/48 talkback from UMC202HD back to the stage rig

All that just to say that I’m stoked, and I’ll be putting together some videos to show it off soon.

I’m curious if anyone else has been working on something similar. I’ve seen others discuss aspects of Linux AoIP occasionally, but nothing concrete showing it in use. And I’ve also seen zita mentioned, but not really for this application.

If you’ve done something similar, I’d like to know.

3 Likes

Open source AES67 daemon.
Based on the ALSA driver which was released by Merging Technologies (now part of Neumann), which was originally released with a closed source user space component. This project has an open source upper layer, as well as improvements to the original ALSA kernel driver.

Do you have experience using it reliably? Curious whether using it is cumbersome (as I believe you described Linux AoIP in another thread).

Maybe one day there’ll just be AES67 compatible I/O with configuration that you can access via a browser (instead of the current mess of drivers and custom config apps - even though there are way more class compliant USB devices now than there were, ironically as a result, in part, of one of the most proprietary smartphone companies refusing to allow third-party drivers on its (i)OS).

I used to have a modest setup where I was leveraging zita-nbridge in the same way. The two PCs were connected via Cat6 directly to each other, there was no hub in-between (closed static subnet exclusive to these PCs) and the distance was rather small. One PC was used as a live box with Bitwig and other soft synths. My Scarlett 18i20 was connected to that one as I used Bitwig as an FX box on some of the analog channels. The other PC was running Ardour for recording, receiving audio streams via the zita bridge. I was sending back some stereo streams back to the Bitwig PC and out from the Scarlett to some stage speakers.

It worked really nicely but the setup was quite modest, nothing like recording some orchestral ensemble. I moved recently and could not afford to maintain this setup, so I am back to one PC only with Ardour and Bitwig coexisting on the same box.

I think most Ravenna devices are like that, but they tend to be more expensive both because of having a processor with enough power to run a web server while also running the audio engine, and because the devices tend to aim higher in the market. At least the Merging/Neumann Ravenna and Lawo devices have web based configuration, and the aes67daemon for linux project has a web based configuration.

Not with high channel count and over extended time. I have a 16 in, 8 out Dante stage box I have been meaning to try with all channels active. If anyone knows of a good way to monitor for audio glitches automatically let me know, I don’t really want to (or have a way to) monitor 16 channels continuously for hours to see if there are ever glitches that might go unreported as xrun by the driver.

Mostly because Dante devices are the easiest/cheapest way to get an AES67 compatible device, and AES67 configuration is kind of a grudging compromise by Audinate, they definitely make it a second class configuration compared to running native Dante tools, and you have to use a Mac or Windows installation to run the Dante configuration tool to get the device channels into AES67 mode.
Some people reported success running the Dante config tool under wine, but I could never get that to work, and had to setup a Windows 11 VM to run the Dante config.

My goals are:

  1. recording on fanless PC whose sole purpose is that, optimized for limited potential for disruption
  2. monitoring rig just accepts a UDP stream, not recording, need not be sample-perfect (resampling enroute); if it borks, stage rig unaffected
  3. automated rsync session WAVs from stage → monitor laptop while recording for backup during session
  4. limiting use of vnc monitor <-> stage for session setup only, then closing vnc, and using OSC dashboards record control
  5. OSC dashboards also monitoring stage rig for xrun total (w/ separate zero-able counter), space left on SSD, etc.

The compromise I’ve had to make over Dante etc. is that I have to set gain and summing mix (only for aux to C.A.S.T. headphones). But with quiet preamps, I’m just going to be very conservative and leave lots of headroom.

At first, I was frustrated to think that I couldn’t use the 500R8’s talkback, but I then realized I could just pipe a mic from the monitoring interface via zita back into DAW 1 or DAW 2 returns on the 500R8. Talkback works great. (All of my gigs thus far have been live recordings, but I’m planning to do some multi-take recordings soon.)

Thanks for all the info. I actually feared creating this thread due to my lack of knowledge of AoIP. My research got me to: “maybe it’s possible on Linux, but it’s going to be painful.”

I believe what I’m doing isn’t strictly AoIP, but I’m not sure there’s a well-known acronym for it. (Actually, I also feared that someone would tell me there’s a really easy way to do everything I wanted with Dante/AES67.)