This might be a mad idea - please @support tell me if it is!
Playing around with the DSP options in 1.3 it occurred to me that it might be possible to use Roon as an active crossover by using 2 Roon endpoints with Raspberry Pis and App HATs (e.g. IQAudio or HiFiBerry)
On first RPi (left speaker):
A. Use DSP - Mix - on first endpoint so that L goes to both L&R
B. Add DSP Parametric Low Pass to L output and High Pass to R output
C. Connect L output of HAT to midwoofer and R output of HAT to tweeter
On second RPi (right speaker set A assigns R to both L&R outputs, B and C are the same.
The group the 2 RPi endpoints together.
Two questions:
Is this possible - the bit I am not sure about is whethher A/B work i.e. if, in procedural eq, mix is done first and then 2 parametric eq added with one set to operate on L and the other on R do the 2 parametric eqs work, in effect, on the original L channel?
If the concept is right (i.e. the answer to 1 is Yes) then is the synchronisation of RAAT devices good enough for this concept to work?
RAAT is built for multi-room, not inter-channel, synchronizationāmainly because in order to run on a ton of existing hardware platforms, we canāt depend on the hardware-level networking support required to make accuracy guarantees to that level.
I think you could get great results doing Digital-XO using a multi-channel interface driven from one endpoint, though. MiniDSP makes a USB one that works on Linux (one of our partners tested it out). Thereās also an 8ch Pi HAT coming to market soon. HDMI might be an option too.
@DuckSoup what speaker design are you considering?
I had the same thoughtsā¦in fact with the Allo Piano 2.1 such an option for 2+2 outputs might be doable too on a single hat.
I was interested on the basis of LinkwitzLab LXmini use. Which I have built using miniDSP 4x10 but I would love to try something keeping everything in the digital domain until the last moment. The miniDSP means I have to drop to 24/96 doing another round of a/d and d/a after the DAC
I was thinking maybe with the Allo VANA option or IQAudIO digi-AMP+ but Iām not sure as amp hats go if they have enough output for the mid bass for the LXmini
You can always try something like a motu 828 mk3 hybrid (i just got a cheap second hand one for my lx521ās), or an rme ufx.
Iāll get it going first with acourate convolver, but will for sure also try Roon, which i expect to work just great
@brian I was considering the same idea as the original poster. Do you guys have any experience on what RAAT latency to expect in a fully wired ethernet network?
I read in the documentation that the RAAT guaranteed latency is 1ms. That is 1kHz audio wavelength of possible phase shift. To be somewhat phase correct, the crossover between the two PIās should then be really high, and not realistic for a normal speaker.
However I am curious what I can expect (not guaranteed, of course) as latency in a wired, fully controlled network of say, 1gbit. If low enough, it might make the project possible.
1ms is a target for clock synchronization, not a guarantee for the worst-case difference between two playback points at any point in time. We run on way too large a variety of hardware to make hard guarantees, and drift compensation is a complicated topicātry to go too tight and you end up performing too many corrections and producing extra artifacts. Since multi-room is what we are shooting for, we are making tradeoffs that are not ideal for digital-XO type applications.
For this to work, youād have to figure out a hardware solution for running both Piās off of the same master clock. After that, a lot of the problems will melt away, since that eliminates the complexities of drift correction completely. Once thatās out of the picture, weāre back to the clock synchronization accuracy aloneāwhich should be very good over gig-e.
I donāt think Iād bother with this style of solution at all, but especially not without getting them running off of the same master clock. Were you to solve the master clock issue, youād want to measure that in your actual system to get the real number, but I suspect the result would be much better than 1ms over a clean GigE network with both Pis plugged into the same switch.
I have some other ideasā¦
You might consider using the HDMI output from the Pi (*) into an AVR that can handle the PCM and turn that into 8 analog outputs or 8 channels of speaker wires. An inexpensive/used AVR from a few years ago could probably do that really well and for less money than buying something like a miniDSP UDAC-8 + separate amplifiers.
Thereās also an 8ch HAT coming out soon. You could probably pair it with a couple of these.
(*) Iām not sure if anyone has gotten this working with Roon yet. I think it should be possibleāwe know that multichannel support works fine with other ALSA devices.
Thanks for that insight @brian I think you raise some very valid points.
One of the issues for HDMI AVRās is that the outputs are often not treated equally in the AMP sections, and sometimes the DSP processing side is often difficult to remove from the path to have an unaltered stream passed out to either pre out or amps.
What are your thoughts for say 2.2 output cards like the Allo Piano 2.1 that has essentially 2 DACs on the same HAT ā¦ forgive me if I have that all wrong - is there some way to take advantage of that within the confines of the RPi setup and Roon? Of course this only gets to 2 active channels, but it might be enough for some.
I think the Allo Piano might only take in 2 channels, and then it has some processing stuff on it to do more. Maybe Iām wrong.
Minidsp makes a product that takes HDMI in and gives you 8 analog outsā¦but I think it goes through a 96kHz phase in there where you can do some processing. And itās more expensive than just buying their 8ch USB DAC. And at that point, you may as well just do the digital XO in one of their other productsā¦hm.
The RPIās I2S bandwidth is fairly limited. 384kHz x 2ch. It might be possible to get something going with this by wiring up the I2S manuallyāsince itās not a HAT. Iāve been wanting to play with their stuff for a while, but no idea if itās any good.
There is an ASP (all analogue) 4 channel crossover now for the Linkwitz LX521.4 that many are looking at, to get out of the miniDSP and other DSP situation of a-d-a again so some are trying to keep this in the digital domain as much as is possible - hence the interest in the DSP options now available in 1.3 ā¦ I guess as time goes by the capabilities of external DSP will get past the 24/96 limits and we might not have to worry about it in 2-3 years time. In the mean time its fun to try and stretch the boundaries of the current infrastructure.
Iām not that interested in external DSP, even if it gets there. Itās always limited compared to what you can do on a computer (or if not, itās more expensive than the computer).
@brian thank you for your quick response, and suggestions!
You suggested that if I get the master clocks linked, it could work. However while that means that during playback the PIās are in sync, how do they start in sync?
I can imagine the below happening:
user presses play for a song in Roon interface
Roon server tells PI roon bridges to start pulling data
PI1 and PI2 both start pulling data and play
PI1 and PI2 both get data, but transfer lag means at slightly different moments
PI1 and PI2 both start playing, but at slightly different offset in the music
linked master clocks makes sure that PI1 and PI2 both stay exactly at that same offsetā¦
I looked at the solutions like the Piano 2.1 and 8ch HAT, however for my case they are not usable, since I need at least for the mid/high channel a digital out (I2S or SPDIF) for a quality DAC. Perhaps it is possible to tap the after-DSP output of the Piano 2.1 as I2S?
RAAT already manages synchronized starts, and over Gig-E they should be pretty goodāthe start procedure is much different than the one you imagine. Data gets buffered up first, then RAAT performs clock synchronization, then it instructs each device exactly when to start the stream.
I was playing some RAAT devicesā¦Mac mini running bridge and RPi with volumio and bridge installed.
Everything ran fine at the start but after a few songs things started to slip out of sync. As this was in 2 areas of the house on different systems but effectively one long room it was very apparent when walking between the 2 areas - not more than about 8-10M apart
I was having a dinner party and eneded up with just music in one area.
Iāll try it across 2 RPi setups at some stage too see if that helps.
Fascinating topic. I found this after doing this myself and thought to myself āI wonder if anyone else has tried thisā?
Iām prototyping a speaker design (for my own consumption) and my analog active crossover hasnāt shown up yet (keeping this one analog - Marchand) so in the interim, I thought to throw together two Roon endpoints as a group and use DSP to create two crossover points, a simple LP and HP 36dB/oct.
So far so good, itās working and keeping music in sync to the best of my awareness. Lots of moving pieces here so Iām sure itās not perfect by any means.
To do this right one should use two identical endpoints with identical DACās so that their capabilities arenāt hindered by each other, as it is in my situation, but itās tiding me over until my crossover shows up.
My idea was to run my woofers with a separate Pi and implement XO in Roon.
Some days ago I took two Pis running Roon Bridge. Bundled them in one zone. Send a square wave signal to both, attaching my old oscilliscope and was disappointed.
After each start of the track the time offset between the devices was different. Even worth the time offset drifts over time between the two units. This will cause phase and amplitude errors.
My conclusion: Time sync between zones is much too bad in Roon to be used for XO.
What is the solition? Either run RME digiface and attach some DACs to it but Toslink is not my favourite.
I decided to go with RME ADI-2 Pro FS R Black. Ist has a multichannel mode and two separate very good DACs ohne with XLR and one asym. at itās headphone outputs. Enough for my Woofers and Horns. If you need more you can connect two additional DACs.
I plan to include an other Roon Extension in https://rooExtend.com this year that creates XOs for the Roon convolution engine.