Inexpensive software for doing XO design, driver linearization, time alignment, etc?

Status
Not open for further replies.
From what I can find, Acourate is the gold standard for doing full digital speaker treatment (driver linearization, time alignment, driver level matching).

Problem is, Acourate is more expensive than any of my hardware. Is there other software I can use to generate the FIR filters to build a great set of active XO speakers?
 
Any good tutorials for putting them all together?

There's a handful of great Acourate tutorials which guide you through everything from driver linearization to room correction.

If not, maybe I'll need to just put on my DIY hat and start writing the tutorial myself 🙂
 
Last edited:
Starting from scratch ?

If starting from zero in active speakers (i.e. if you don't plan to buy tons of coils, résistors and caps to test your measurements):

You may want a streamer to test the design as well to load the FIR file you generated: Jriver, Foobar, ... if Windows pc and no active XO DSP Appliance (e.g. MiniDSP).

A calibrated mic and a sound card with Phantom power supply if the mic need it. There are also usb calibrated Mic.

Two or three stereo amps (one per speaker way : treble/mid-woof, etc !) (and the soundcard which has enough outputs if PC and no XO DSP appliance (e.g. MiniDSP stuffs).

my two cents
 
I purchased a 2-way DIY speaker kit from Parts Express. I intend to skip the included crossovers and drill another set of speaker posts.

I've got a UMIK-1 for measurements, and a Seas 4ch class D for amplification. I'm still shopping for a multichannel USB DAC/Soundcard to come off the Raspberry Pi 2.

I'll be running the convolutions through BruteFIR on an installation of Volumio or Rune Audio (whichever proves easier). The RPi2 should be able to handle tens of thousands of taps.

However, for developing the filters, it would probably be easier to use something like foobar on my Windows PC for faster iteration.
 
:up:cool!

I didn't know Pi was enoughpowerfull for such post treatment or Volumio or Rune were able to be loaded with an external brutFilter file either !

I know some experienced member like xrq971 e.g. are using a cheap usb soundcard for active filter and are happy with it. From my experience with passive speakers a good dac with a sota layout is needed for a good sound (and not just a good speaker I mean) : I guess it's the same with active, that's why I talked about the Asus STX soundcard in an another thread here! Although I don't know if Asus makes an USB equivalent in quality layout term. As the Pi has some issues on its USB output due to its own layout, maybe a soundcard with galvanic isolation should help... few soundcards seems to have such refinments but the the STX I talked has it.
 
Last edited:
From what I can find, Acourate is the gold standard for doing full digital speaker treatment (driver linearization, time alignment, driver level matching).

Problem is, Acourate is more expensive than any of my hardware. Is there other software I can use to generate the FIR filters to build a great set of active XO speakers?

mwillems has a good tutorial on the JRiver forum: Guide to Speaker/Room Correction Using Freeware and JRiver
Pano lists all of the software required. If you don't use JRiver, you could use Foobar.
 
RPi is a little slow for BruteFIR, by RPi2 is *much* faster.

Neither Volumio nor Rune Audio have FIR convolvers built-in, but both can be setup to pipe through BruteFIR before going to the DAC.

As far as USB goes, my biggest concern would be jitter on the RPi2 USB output. I'd use HDMI, or I2S, but they each have their own issues. Long-term, I'll upgrade to an Asynchronous USB DAC, but that's too rich for my budget right now.
 
If you know what crossover slopes are, how phase works, and what the goals are for crossover design, a tutorial is not needed. You can use measurements to dial in everything. Seems to me like you are familiar with it.

I wouldn't worry about driver linearization. That's a useless step, IMO, if you are going to do full room correction in the end.

I would do it this way: Measure, design the crossover, do full room correction. You can combine the crossover and room correction into one step using DRC. It lets you put in the target curve. Include the crossover slope in the target for each driver. Let DRC do its magic. Then combine it all. I think it should it work. You may have to adjust the delay later to get the phase in sync.
 
No. DRC does not do any time alignment. It just takes the impulse and makes it follow the target. You may get flat phase in the passband. But to align it with the other driver, you will have to manually adjust the delay later in the configuration file. There are others here with more experience using DRC that could clarify if this will work.

Thinking about it again, maybe DRC is not your best option. Maybe RePhase to do the crossover and correction and REW or Holm to do the measurements should work. Check out RePhase, there is a thread here on diyaudio. It is easy to work with and it is all that you should need together with a convolution configuration file:
Config file

Basically, there are many ways to skin this cat, and if you're looking to do this for free, there is some learning ahead of you 🙂
 
If you are familiar with C language programming, and the math, writing your own software to do whatever you like with audio is very cheap. Wrangling with alsa is not particularly fun because of its poor documentation, but once you get something going on your machine you're off and running. Doing it yourself also greatly helps with your understanding of what you are doing.
 
Thanks Pano!

I'm hoping to find a tutorial for the full digital treatment (XO, driver linearization, time alignment, and DRC), using free tools.

There's a great tutorial here: Computer Audiophile - Advanced Acourate Digital XO Time Alignment Driver Linearization Walkthrough

But it relies on Accourate.

I am the author of that article. Did you have a look at the JRiver thread I pointed to you earlier? As mentioned, if you don't have JRiver, you can use Foobar, but it takes some work.

Driver linearization is worthwhile and provides an audible improvement, as can be seen in my Acourate article. If the drivers measure +-2 dB near field in their passband, then one can skip the individual driver linearization step. However, in my case, because I use compression drivers and waveguides, there is more frequency response variance and driver linearization, including the bass driver, made a measureable and audible difference.
 
I am the author of that article. Did you have a look at the JRiver thread I pointed to you earlier? As mentioned, if you don't have JRiver, you can use Foobar, but it takes some work.

I obviously didn't look closely enough 🙂 I've been looking to your Accourate tutorial as the gold standard for the full digital speaker treatment--thank you for that work.

I didn't realize until just now that there is a JRiver port for the Raspberry Pi. While the $400 Accourate software is out of reach, a $40 JRiver license fits the budget. And I don't mind spending time--this is intended to be a fun project. I'm no hardware guy, but if I can be an audiophile in software, that works for an old CompSci guy like me.

Now I'm curious to see how the performance of the jRiver convolver compares to BruteFIR on the RPi2 platform.
 
If you are familiar with C language programming, and the math, writing your own software to do whatever you like with audio is very cheap. Wrangling with alsa is not particularly fun because of its poor documentation, but once you get something going on your machine you're off and running. Doing it yourself also greatly helps with your understanding of what you are doing.

My background is in computer science and I'm fairly comfortable in C (with even a little assembly). Without much education in signal processing, I come up a bit short on understanding the maths on all this so far, but I can learn.
 
I am a CompSci guy as well. And was going to develop some software to perform this functionality, but others have already done it, open source and commercial. If you want to go down the path of developing, I can recommend this book: The Audio Programming Book: Richard Boulanger, Victor Lazzarini, Max Mathews: 9780262014465: Amazon.com: Books Also, this free DSP resource: The Scientist and Engineer's Guide to Digital Signal Processing

JRiver's 64bit audio engine is as good as it gets: Audio Bitdepth - JRiverWiki

There is quite a bit of information about their Convolution engine: Convolution - JRiverWiki

mwillems JRiver tutorial using free software is a great place to start and he is very helpful responding to q's on his thread.
 
Getting the measurements isn't too hard, tho it can take some practice. Creating the crossover files will depend on the software you use, of course and some on your hardware.
It's actually designing the crossover that's the tricky part. Most of us just sit down and hack thru it. Active crossovers with DSP are much faster and easier to get right than doing it with analog circuits, so you'll have that advantage. 😉

What hardware or DSP processing will you be using?
 
Status
Not open for further replies.