DIY digital crossover project

boxerfan88

Well-known member
Starting this thread to document my experiment / project journey in setting up a digital crossover to replace the analog crossover.

We begin with the architecture diagram of what I have in mind...

xxx.png

Hardware settings:
  • Soekris
    • Source = USB
    • Filter = Green (minimum phase fast rolloff)
    • Volume = -12
  • SMSL
    • Source = USB
    • Filter = FL1 (intermediate phase fast rolloff)
    • DPLL = dp3
    • Volume = 74
 
Last edited:

boxerfan88

Well-known member
Follow on with the ASIO channel mapping.
  • configure ASIO4ALL
    • enable SMSL DAC
    • enable Soekris DAC
    • enable HiFi cable (not sure why, with this enabled, no stuttering at all, perfect operations)
  • configure ASIO channel mapping
    • LFE goes to SMSL
    • L/R goes to Soekris
2023-09-08 14_41_48-Preferences_ ASIO.png
 
Last edited:

boxerfan88

Well-known member
Ran the test setup for about 3 hours, verifying that the ASIO channel mapping is working well and stable, moved on to the next stage.

Since the two DACs are very different, their volume levels will be different. This stage is to level match the two DACs, which can be quite tedious to do.

Since I know the Soekris DAC very well, and that -12 volume corresponds to about 75dB at the MLP, I decided to use it as a reference; and then try to match the SMSL as closely as possible. These were the steps:
  • Place mic at MLP.
  • Measure RTA for 200 averages (Soekris)
    • Volume = -12
      • L ch = 75.4dBC
      • R ch = 75.5dBC
  • Measure RTA for 200 averages (SMSL)
    • Volume = 75
      • L ch = 76.0 dBC
      • R ch = 75.9 dBC
    • Volume = 73
      • L ch = 74.9 dBC
      • R ch = 74.8 dBC
    • Volume = 74
      • L ch = 75.3 dBC
      • R ch = 75.3 dBC
Result:: Soekris volume -12 is matched with SMSL volume 74.


Since the SMSL volume control is not by dB, just digits; I decided to map a higher level, just in case visitors wanna listen loud.
  • Measure RTA for 200 averages (Soekris)
    • Volume = -6
      • L ch = 81.4dBC
      • R ch = 81.4dBC
  • Measure RTA for 200 averages (SMSL)
    • Volume = 86
      • L ch = 81.4 dBC
      • R ch = 81.4 dBC

Result:: Soekris volume -6 is matched with SMSL volume 86.

Now that the volume/level matching is done, will now move to the next stage - choosing the crossover frequency.
 
Last edited:

boxerfan88

Well-known member
Ooo ... I found a chap in Japan who also did a DIY digital crossover project. Nice to have a reference to cross check methods.

Software stack is similar (ASIO4ALL, HiFi-Cable) except for crossover module, which he used EKIO. I have played with EKIO but decided not to use it, because the crossover processing is locked into a fixed sample rate.

 

boxerfan88

Well-known member
Graphical representation of my system crossover points -- pretty good distribution of responsibilities amongst the 4 drivers.

System Crossover 60Hz.png


Now that I am listening to a full range (20Hz-20kHz) system daily, it is going to be challenging to revert to a stereo system without subwoofer.
 
Last edited:

boxerfan88

Well-known member
The time alignment kept nagging at me at the back of my mind. Had a little spare time this hot Sunday afternoon. Devised a test to find the time differences (if any).

I had the idea of creating an interesting test signal, comprising of one timing chirp (as a reference point), followed by 1 second sine waves at 60Hz, 70Hz, 80Hz, 90Hz, 100Hz, 110Hz, 120Hz. Each of these sine waves had a spacing of 2 seconds of silence. These frequencies were chosen on both sides of the crossover point.

So how do I produce this test signals? I used REW to generate the base files -- the sweep with timing chrip, and various sine waves. After that, I used Audacity to edit and piece them together. This is the result.

2023-09-17 20_50_36-Wave timing test.png
 

boxerfan88

Well-known member
Next step was to record the played signal using Audacity. One recording without the subwoofer contribution. Second recording with the subwoofer in play. To capture the recording without the subwoofer contribution, all I did was to shift the XO to 20Hz.

After the recording was done, next up was to align both recordings such that the timing signal is aligned. This is done by zooming in and deleting signal sections until the timing signal is aligned.

2023-09-17 20_59_04-wave compare 2.png

2023-09-18 19_57_36-wave compare 2023-09-18-L.png
 
Last edited:

boxerfan88

Well-known member
After that, zoom in and analyze for signal delays...

2023-09-18 20_00_47-wave compare 2023-09-18-L.png

After all the experiments with various delays, I couldn’t detect any impact to the sound. Liddat I’m going back to 0ms.
 
Last edited:

boxerfan88

Well-known member
After 3 days of listening, I still came across a couple of tracks with a tiny bit of “whoop” “whoop” bass. After a fair bit of troubleshooting, I found out that by lowering the crossover point, it gets lesser and lesser. Finally I settled on 65Hz crossover where I could no longer detect the “whoop” “whoop” bass when listening to the troublesome track. Redo PEQ for the whole system. Now for the listening test these few days.
 
Last edited:

boxerfan88

Well-known member
Did some room simulations ... it looks like the performance would be better with the sub in the middle, between the L/R speakers where the dips are not so bad. Currently the sub is in the front right corner of the room. To shift the sub to the middle of the room is gonna be a massive re-arrangement of all the equipment...

Sub locations.png

Middle subwoofer will also solve the "bass shift" to the right when crossing over higher up.

KIV for the future experiment, when i am ready to shuffle all the equipment at the front area.
 
Last edited:

boxerfan88

Well-known member
After much listening, research, reading, and learning; I think there could be a better way to integrate the subwoofer with the mains. I feel that the subwoofer is triggering the room modes and eventually overwhelming the room, which require huge EQ cuts (up to -18dB) just to tame them.

I found out that the subwoofer has a built in PEQ. My theory is to use the subwoofer hardware PEQ to tame the subwoofer output in the room mode area such that the room modes are not strongly triggered. Then use fb2k EQ to even out the frequency response.

Today after work I measured the sweep without any EQ. After that, I switched the PEQ switch to ON position. And then repeated measurement multiple times with different subwoofer hardware PEQ settings. After trying numerous combinations, I decided to use this one:
  • Frequency = 40Hz +2clicks
  • Gain = -12dB -6clicks
  • Bandwidth = Max -6clicks
  • Delay = 0
HW PEQ Picture.jpg


The resulting waveform (top is the original without any PEQ, bottom is with hardware PEQ).

2023-09-22 22_05_33-05-XO65 -0dB L.png

One can see the two huge humps are tamed quite a bit. The subwoofer average amplitude (left side) is roughly similar to the main average amplitude (right side). After that, I use REW to redo the PEQ, and then load up for listening test.

Take a look at the EQ differences (EQ8 is before hardware PEQ, EQ11 is after hardware PEQ). Huge difference in the EQ adjustment @ the 44Hz room mode. From cutting -17.5dB to cutting -7.5dB, a difference of 10dB.

EQ8_EQ11.jpg


From the listening test tonight, I seem to hear a little bit more bass at the very lowest registers (below the room mode region). So far so good.
I have not heard the "whoop whoop" bass when playing those troublesome tracks. Need to listen & monitor.
 
Last edited:

boxerfan88

Well-known member
Day 2 with subwoofer hardware PEQ experiment. Two observations:
  • at low listening levels, the bass is more present than before
  • at normal listening levels, i hear/feel more "heft" in the bass.
HWPEQ11 LR.png

Comparing the above sweep EQ11 with the earlier posted EQ6, we can see that at the lowest end, the 20Hz line is still within the +/- 3dB band, whereas the earlier EQ6 chart, it shows the response already dropped below the +/- 3dB band. That may explain hearing the "heft" in the bass.

I played the test track that has pipe organ, and the 18Hz tone I can "feel" circulating around the room a little bit more.
 
Last edited:

boxerfan88

Well-known member
Playing around with subwoofer plate amp delay settings:

0ms vs. 8ms vs. 16ms (max)

Sub plate amp delay.png

Thankfully the REW RTA with pink noise can see the changes in realtime, no need to sweep.

Tedious, but quite fun :)
 
Last edited:

boxerfan88

Well-known member
Finally settled in on the following changes:
  • Subwoofer plate amp delay = 8ms
  • Subwoofer plate amp slope = 50Hz @ 24dB/oct
  • Digital crossover can push upward to 70Hz.
Doing listening test now... so far just subtle changes ... don't have "night & day" changes ;)
 
Last edited:

boxerfan88

Well-known member
On this wet and rainy Sunday afternoon, I decided to experiment with DO100 DAC simultaneous XLR and RCA output.

This means that the full range signal is sent to both KH310 & subwoofer. The digital crossover is removed. The subwoofer has to be configured to low pass the signal.

After huge number of trial and errors, I settled for:
  • Subwoofer PEQ
    • Freq = 40Hz+1click
    • Gain = -12dB
    • Bandwidth = Middle
  • Subwoofer plate amp delay = 0ms
  • Subwoofer plate amp slope = 80Hz @ 24dB/oct
 
Last edited:

boxerfan88

Well-known member
I totally lost track of how many measurements I did this afternoon, I hazard a guess, maybe 80 (there were about 80 .wav files in today's working folder). I also lost track how many times I did a EQ analysis and tuning, maybe 30 times.

Here's the frequency response comparison of various subwoofer integration methods (final versions):

AXO DXO DO100 compare 5024.png

AXO DXO DO100 compare 8024.png


Listening impressions

1. AXO (R2R DAC via Analog Crossover)
  • Full Range Sound
  • Very cohesive
  • Slight veil in the midrange onward
    • maybe due to the analog crossover quality
  • Well balanced tonality

2. DXO (Digital Crossover via R2R DAC for mains, DO100 for subwoofer)
  • Full Range Sound
  • very articulate bass
    • probably because of the crossover filter slope is minimising the overlap
  • Not so cohesive - sometimes the bass sounds just very slightly disjointed with the midrange & highs.
    • could it be because the 2 independant DACs slowly drift out of sync over time?
  • No veil, superb clarity in the midrange & highs.
  • Well balanced tonality

3. DO100 (simultaneous XLR & RCA output, no crossover)
  • Full Range Sound
  • Very cohesive
  • No veil, good clarity across the full range.
  • Well balanced tonality

Each have their own pro's and con's.
 
Last edited:
Top