FINAL EDIT 5/12/23:
For the moment Kushview Element, the app used in this guide is no longer stable for macOS11+ or perhaps it's just the Apple silicon based Macs affected. I rely on the Hang Loose Convolver app now to do channel routing in a similar way but everything after part 2 below is depreciated process.
For the moment Kushview Element, the app used in this guide is no longer stable for macOS11+ or perhaps it's just the Apple silicon based Macs affected. I rely on the Hang Loose Convolver app now to do channel routing in a similar way but everything after part 2 below is depreciated process.
Edits on 9/15/22 to update used apps and plugins
For the past 10+ years I've been working with my evolving system set up of 3 way speakers with active crossovers + subs. Initially, I went with an external MiniDSP 4x10 to keep things simplified and lower my learning curve. But a couple years ago my MiniDSP board fried and I was faced with the dire situation of no music in my studio space so I started experimenting with different ways of implementing a solution via software in both Windows and Mac. I've done it in both JRiver and Roon with their built in DSP abilities and, while functional, it was not exactly easy with 8 channels.
As many of you are aware, there are precious few multichannel consumer DACs out there and even fewer for Mac so looking at pro-audio solutions like Motu or Focusrite are good options but even the cheap Asus USB or PCI sound cards can be used with a PC. As mentioned, mapping out a XO can be done in JRiver or Roon but it is somewhat limiting with filter slopes and then you are tied to using those paid apps to route your playback through. Not so much a problem in Windows with JRiver and it's WMD but for Mac that's not an option. What if you need to host those convolution files from a DRC program or are so tied to the Apple ecosystem you can't give up your Apple Music subscription but want to use impulse correction or EQ? Add web browsers Tidal or Qobuz desktop apps to that list too.
Much of this was worked out in a AVNirvana thread I participated in here, a good resource for working out other details or configurations.
Disclaimer: I use my system for mostly audio. Video sync issues will depend on filter sizes, VST efficiency and other factors.
Disclaimer: I use my system for mostly audio. Video sync issues will depend on filter sizes, VST efficiency and other factors.
Considerations:
- When I stream from Youtube on my system I have no noticeable synching issues (with basic XO filters) but when I, for instance, set up another zone in Roon then I do have to play with zone delays a little.
- This process is still good for 2 channel listening if you want to use pro audio tools (VSTs) to do EQ for apps that otherwise lack EQ.
- How many channels? If you are just into stereo then a simplified version of this approach is still a good one for systemwide sound use but for Mac users a simple host for a VST/AU reverb is all you really need and Element is still a great low cost candidate.
- I've no idea how this could apply to multichannel 5.1 or 7.1 configurations but presumably this information should be valid for some of that use as well.
- Using some audio plugins (specifically X-MCFX) in Mavericks - Montery can be problematic as the new security "gatekeeper" that is part of the OS will block them from loading. Naturally, there is a way around this as plenty of professional audio creatives NEED their audio plugins to work. Check out post #34 in the AVNirvana thread for one solution using the terminal or google around a bit.
- If you are just looking for EQ solutions check out @Doodski's great thread here: EQ Software for Windows, Linux, macOS, iOS/iPadOS and Android.
- To route audio from other apps: Loopback: $99, Blackhole, (free) [Mac] or Jack, (free) [Mac & Win], VAC, ($30), or VB Cable (donation) [Win & Mac]
- Element: $2, Kushview's Element is a brilliant app that acts similarly to a mixing board in a DAW by hosting VST, VST3, AXX, AU plugins with an easily understandable GUI and seemingly limitless application use. (Win, Mac, Linux)
- Plogue Bidule $95 Like Element but costs more. (Win, Mac)
- Soundsource $39, [Mac] optional, simplified menubar audio controller for routing app audio and basic plugin (AU only) hosting but limited to 2 channels.
- Hang Loose Convolver: $129, as a standalone app (but comes with the AU & VST plugins) that works with 2ch to 7.1.4 and beyond. It can also host some other audio plugins but it is not as versatile as Element.
- rePhase: free, For creating XO filters
- Audacity: free, or similar app for making multichannel .wav files from the XO impulse responses created in rePhase.
- REW and a measurement microphone for testing results.
VST/AUs used:- Hang Loose Convolver: $129, AU & VST plugins that work with 2ch to 7.1.4 and beyond. I'm now using this instead of X-MCFX to host my XO.wav filters because its signed software for Mac and has much more versatility. $129
- X-MCFX: multichannel .wav plugin
- Sir3: $98 reverb convolution known for zero latency and good updates across OSs. There are 2ch free options out there like MConvoltionEZ & XvolverEssential
- TDR Nova: great low latency parametric EQ with compressor/expander. Other free EQ options are MEqualizer, QRange, Marvel GEQ, Toned.
- Voxengo Sound Delay: for setting individual delay for drivers/subs
A frugal user could get all this working for less than $10
Skip ahead to step 4 if you are just looking for systemwide convolution or EQ
1) Creating a digital XO for 2 or 3 way speakers or sub integration
In rePhase it is relatively simple to create crossovers, no need for any measured file exports from REW, we're just creating frequency filters. In the "linear-phase filters" or "minimum-phase filters" (your preference but minimum phase will have less latency) tab within rePhase create your XO filters for each channel and export them as .wav files. There is an App Note on the MiniDSP site that gives insight on how these filters are created here, scroll down to "Example 2: A linear phase crossover". For 2 or 3way XO we will need to generate L&R mono .wav filters for woofer, mid, tweeter and also filters for subwoofers if you use them. In practice, your W/M/T XO will be the same for both speakers so only need to generate 3 filters + sub(s) if used.
Remember to create filters in all the sample rates you wish to use and to keep your impulse settings the same! - Bass41, Mid41, Tweet41, Sub41 - B48, M48, T48, S48 etc.
You will need to generate filters at 48000 regardless as this is what REW will need and it is the sample rate for the Umik1 as well.
This can also be done with Accurate and Audiolense.
2a) Creating the multi-ch .wav matrix in Audacity for X_MCFX
First in Audacity preferences, under export select the "Advanced Mixing Options" box. When you select the multiple mono tracks in Audacity, you choose to export all files. Choose "32bit float" option and .wav format and when it's time to export you will have a screen to create one combined multichannel .wav file.
Import your individual .wav files into Audacity (so total of 8 files for me = 8 tracks in Audacity) then export it as a .wav - the order of tracks top to bottom in Audacity will then correspond with the numbered audio channels in your OS. Don't worry if your driver order gets mixed up, it's pretty easy to sort out later in Element.
Remember again you'll need to create this file with each sample rate you want to use.
2b) Creating the multi-ch CFG filter for HLC
HLC implements the standard convolver "config" file as specified HERE using the individual wav files created in rePhase rather than an 8ch.wav so you will need to create the .cfg text file manually for HLC as demonstrated in the above link. It's my understanding that Accurate and Audiolense create this file automatically. With the purchase of HLC you also receive a sample cfg file and a pdf manual which explains things quite a bit better than the Sourceforge documentation.
@mitchco's HLC is exceeding good for this purpose. You can load 6 filters (with any specified number of channels) and switch between them in real time, level matched and with zero latency. Shown below are six different 4-way XO filters loaded into HLC. The XO frequencies are noted in the file names and are quite similar in frequency settings but have different slopes, min vrs linear phase or are asymmetrical. With this tool in the signal chain I can implement a filter, measure it acoustically, switch to another filter - repeating until I have all the information I need, quickly and without any changes in the measuring environment, to proceed further with my XO design or use as is with a 2ch impulse in front of it.
3) Applying that multichannel .wav
This is where Element comes in, alternately you could use Plogue Bidule but I find Element easier and cheaper! Element is really the backbone to this whole plan - an application that can host AU / VST / VST3 / AAX Plugins and this is how we are going to further shape our sound with reverb convolution plugins, EQ, delay and any other of the thousands of audio plugins out there. The key VST plugin we're going to use is HLC, X-MCFX also works, which will host our multichannel .wav file with x channel input and x amount of outputs depending on your needs. If you use X-MCFX when you load the multichannel .wav file in X-MCFX be sure to select "diagonal values" and you are limited to only using one filter. Do NOT try to change filters while sound is playing in X-MCFX.
As you can see in the above pic, routing audio becomes pretty simple via the very visual GUI. In my system I use six channels for the 3way XO and an additional two for 2 subs being equalized. In Element the input source is Blackhole 2ch and output is (in my case) Okto DAC8 Pro. Rogue Amoeba's Loopback app works much the same as Black Hole but allows selecting which apps are routed at all times, more importantly it can route your OS system sounds away from playing on your output, its just a more refined way of directing audio but Blackhole works fine, is free and not limited to 2 channels.
4) Refining the sound - adding EQ / Convolution
In my example, the Blackhole stereo input then enters Sir3 which hosts a 2 channel L&R .wav file that was created in REW using the MMM method to smooth each speakers response up to room transition frequency. The signal then goes into a trial of Dirac I was experimenting with both of which can be switched on and off by ticking the little blue button on the plugin to compare or combine.
* Here is where you could insert your convolution file from Audiolense, Acourate or any other app that creates filters in a variety of file formats though the multi ch filters are better off hosted directly with HLC.
I add a couple inactive volume controls on L & R channel so I can just mute the channels when channel mapping, troubleshooting or balance control, Then it goes into HLC or X-MCFX where the stereo signal is split into the 8 channels using the XO we created in step 2.
From HLC Audio then goes to a Compressor (for the subs left channel summing only, room quirk) then to Voxengo Sound Delay to set the correct delays for drivers that need it and finally to the inputs of the DAC8Pro.
All of the modules within Element can be set to active or bypass with the little blue button and there is a mute button as well which is handy for dialing in sub integration or channel mapping. So even though I have a fair number of plugins present in Element only 7 of them are active or needed. There is a handy channel strip on the bottom that also has the active/mute buttons and a volume slider for each module loaded into Element, the tab becomes highlighted when you click on any module for easy reference.
Everything you do in Element is in real time. These are pro audio VSTs we're using in a DAW workspace - the same tools that are used to mix the music you are listening to. Comparing and level matching two or more different convolution filters is instant on my system. Changing the XO in X-CFX with music playing is not advisable, HLC does it without breaking a sweat.
Below is a screenshot with some of the various plugins open to their respective windows demonstrating the ease and efficiency of the set up. BTW, there are plenty of plugins with lots of bling or meters, these can be set to display on the desktop without the rest of Element open. So yes, you can have dB meters on your screens bouncing away if that's your thing...
5) Additional thoughts
Obviously, the amount of signal processing is pretty limitless within Element with the use of audio plugins. One can implement compressors, play with mid-side channels, cross fade, pitch, distortion or anything you want and apply it to individual speakers or bandwidths quite easily with a couple button clicks. Those of you familiar with MiniDSP's GUI will be set to go in Element once you have all the plugins in place you wish to use along with many other options. It's basically an expandable modular system that gives you the complete control of DAW effects processing.
On my M1 Mac Mini running the above example of Element with audio playing through Roon taxes the CPU by about 15%
Automatic sample rate conversion is reported to work with Blackhole and the Hang Loose Convolver but maybe not necessarily with all streaming apps. Since I am a Roon user I just convert all music to one sample rate which suits my needs fine so further exploration of this issue will need to be worked out.
There are many other ways to do this, especially in Windows and quite a few for Linux but not much for Mac OS. Hopefully this will help some of you explore the possibilities of what can be done and at least provide some useful links for tools that will get you there. Looking forward to any discussion that follows this post so I can learn more from the collective wisdom of ASR and the smart folks here that have definitely helped me get this far!
Last edited: