• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Dirac Live cost vs RAW approach – advice needed

Which quality Toslink adapter do you recommend me to buy?
I don't have a clue. I use internal PCI-E card on desktop with Toslink I/O on purpose even it whose slight downgrade to one I had previously (AE-5 to SB Z SE). It's also used for reproduction in my 2.2 setup. WiiM is quate limited in many ways as you will find out soon on your own. I am certain someone will give you good suggestions regarding convertor.
Tap/click on the Keith_W name, go to about tab in the post above and scroll a little bit down to get to signature, get the book and start reading.

Screenshot_2026-02-05-09-11-13-840_com.android.chrome-edit.jpg
 
Last edited:
Is this the correct approach?
Laptop > USB > USB-to-TOSLINK adapter > Optical IN on WiiM Ultra

Or you can do "offline measurements" by saving the sweep signal to your laptop and play it through whatever music app you are using.

edit: not sure if that'll work with MMM and RTA though.
 
Hi.Could you take a look at the tutorial workflow I used below?
I want to know if it is good or if someone could send me some corrections.
When I used the automated RoomFit tool, it applied 10 parametric EQ filters. It sounded okay, but I wasn't completely satisfied with the sound.
Then I used REW manually instead. I restricted it strictly to the lower modal region from 95 Hz to 500 Hz with a strict "cut-only" rule. REW decided to add just 2 parametric EQ filters, and the sound became definitely better, clearer, and much more natural.
How come RoomFit applied 10 filters and couldn't satisfy me, while REW decided to apply just 2 targeted cuts?

1. Signal path

Windows 11 PC (USB Host) -> SMSL PO100 PRO (U2.0 Mode) -> [Optical Toslink] -> WiiM Ultra -> [Line Out] -> Audiophonics AP300-S250NC-> AsciLab C6B

Playback Interface: SMSL PO100 PRO digital bridge set to U2.0 (USB Audio Class 2.0).
Measurement Microphone: Dayton Audio iMM-6C calibrated USB-C microphone placed at the primary listening position (ear height), oriented towards the speakers.

2. Windows Core Audio Engine

Device Configuration
1. Open the legacy Sound Control Panel (mmsys.cpl).
2. Under the Playback tab, locate SMSL USB AUDIO, enter Properties, and rename the device to Converter for systematic tracking.
3. In the Advanced tab, set the Default Format to a locked sample rate of 24-bit, 48000 Hz (or 16-bit, 48000 Hz).
4. Under the Enhancements tab, check Disable all enhancements.
5. Switch to the Recording tab, select the Dayton Audio iMM-6C, and match the Default Format sample rate explicitly to 1-channel, 48000 Hz to prevent clock-drift resample errors between the subsystems.

3. Hardware & REW Preferences

1. Open the WiiM Home App, select Optical Input as the active source, and ensure the EQ/PEQ module is toggled completely OFF to avoid masking the raw room response.
2. Launch REW, open Preferences, and select the Java driver.
3. Set the Output Device to Converter and the Input Device to the Dayton Audio iMM-6C microphone.
4. Confirm the global Sample Rate is set to 48 kHz.
5. Load the unique .txt/.cal calibration file provided by the microphone manufacturer to correct capsule frequency deviations.

4. Acoustic Sweep Execution

1. Open the Measure dialog in REW.
2. Define the execution parameters:
* Start Frequency: 20 Hz
* End Frequency: 20,000 Hz
* Output Level: -20.0 dBFS
* Length / Resolution: 256k
3. Execute a Check Levels pink noise burst and adjust the WiiM Ultra physical master volume until the real-world acoustic output registers at roughly 75 dB SPL.
4. Clear the acoustic space, ensure total environmental silence, and initiate the Start sweep sequence.

5. Algorithmic Filter Optimization & PEQ Generation

1. Apply Variable Smoothing (Var Smoothing) to the resulting raw frequency response curve to isolate true modal trends from comb-filtering artifacts.
2. Launch the EQ interface in REW and set the Equaliser target to Generic.
3. Under Target Settings, choose Full range speaker and select "Calculate target level from response" to align the target baseline (typically across the 74 to 76 dB zone).
4. Expand Filter Tasks and configure the optimization parameters to target only the critical room modal region:
* Match Range: 95 Hz to 500 Hz (Prevents the algorithm from forcing corrective filters into non-correctable deep bass nulls or high-frequency reflections)
* Individual Max Boost: 0 dB
* Overall Max Boost: 0 dB
5. Enforcing this strict cut-only architecture preserves amplifier headroom and protects driver excursion from clipping-induced distortion.
6. Click Match response to target.
7. Open the EQ Filters window, extract the computed Frequency, Gain, and Q-Factor variables, and enter them manually into the WiiM Ultra's Parametric EQ bank. Run a secondary confirmation sweep to verify the elimination of the targeted room modes.

TIDAL Exclusive Mode Configuration
1. Launch the TIDAL desktop application.
2. Open the audio output device menu and change the target from System Default to Converter (SMSL USB AUDIO).
3. Access More Settings for the device and toggle Exclusive Mode to ON.
 
Hi everyone, just adding a quick comment here because I think my original post looked like a finished tutorial rather than a question, so it didn't get any replies!

I am actually looking for a second pair of eyes to critique my workflow. If any of the experienced members here see any technical blind spots, setup errors, or areas where my REW math and target parameters could be better optimized, please let me know.

I’d really appreciate your feedback and guidance!
 
3. Hardware & REW Preferences

1. Open the WiiM Home App, select Optical Input as the active source, and ensure the EQ/PEQ module is toggled completely OFF to avoid masking the raw room response.
2. Launch REW, open Preferences, and select the Java driver.
3. Set the Output Device to Converter and the Input Device to the Dayton Audio iMM-6C microphone.
4. Confirm the global Sample Rate is set to 48 kHz.
5. Load the unique .txt/.cal calibration file provided by the microphone manufacturer to correct capsule frequency deviations.

Firstly, I would not trust the IMM-6 to take measurements for DSP, and i'm not sure the "calibration file" is a real calibration file and not some batch file they make for a whole bunch of microphones. At the very least, you need to:

1. Check the output of the IMM-6 against a known "good" microphone.
2. Make sure the IMM-6 is properly mounted on a tripod with no nearby reflective surfaces. Including the tripod itself.
3. Examine the ETC and impulse response to make sure you are not correcting high frequency reflections - i.e. spurious measurement artefacts.

If you are unsure, I would simply cut off any correction above 300Hz.

As for your procedure above, make sure you use REW's EXCL mode in Java. This is very important!

4. Acoustic Sweep Execution

1. Open the Measure dialog in REW.
2. Define the execution parameters:
* Start Frequency: 20 Hz
* End Frequency: 20,000 Hz
* Output Level: -20.0 dBFS
* Length / Resolution: 256k
3. Execute a Check Levels pink noise burst and adjust the WiiM Ultra physical master volume until the real-world acoustic output registers at roughly 75 dB SPL.
4. Clear the acoustic space, ensure total environmental silence, and initiate the Start sweep sequence.

1. Measure at your normal listening volume, it does not have to be 75dB. Some loudspeakers have different frequency response at different playback volumes. If you apply DSP correction for a measurement taken at a higher SPL, when you listen at a lower SPL the correction will be erroneous.

2. I recommend a 512k or 1M measurement for better signal-noise ratio.

3. If your purpose is to correct the bass, you are better off with a MMM or a averaged sweeps as the basis of your correction.

5. Algorithmic Filter Optimization & PEQ Generation

1. Apply Variable Smoothing (Var Smoothing) to the resulting raw frequency response curve to isolate true modal trends from comb-filtering artifacts.
2. Launch the EQ interface in REW and set the Equaliser target to Generic.
3. Under Target Settings, choose Full range speaker and select "Calculate target level from response" to align the target baseline (typically across the 74 to 76 dB zone).
4. Expand Filter Tasks and configure the optimization parameters to target only the critical room modal region:
* Match Range: 95 Hz to 500 Hz (Prevents the algorithm from forcing corrective filters into non-correctable deep bass nulls or high-frequency reflections)
* Individual Max Boost: 0 dB
* Overall Max Boost: 0 dB
5. Enforcing this strict cut-only architecture preserves amplifier headroom and protects driver excursion from clipping-induced distortion.
6. Click Match response to target.
7. Open the EQ Filters window, extract the computed Frequency, Gain, and Q-Factor variables, and enter them manually into the WiiM Ultra's Parametric EQ bank. Run a secondary confirmation sweep to verify the elimination of the targeted room modes.

You could go up to 500Hz depending on the quality of your measurement and the Schroder frequency of your room. I personally wouldn't. Your Ascilab is a very good speaker, it does not need high frequency correction. Just correct the bass, maybe up to 200Hz, and leave it at that.
 
There is NO way you can replicate the kind of room correction available with Diract ART via EQ or other fiddling. Audyssey is nearest option, but still not anywhere in the league with Dirac. Without subs, this isn't a huge issue, but once you add a sub, Dirac is the best, bar none. There are many posts on other forums, like What'sBest where owners of six figure systems discuss for page after page why they can't integrate their subs. This is a solved problem, and for those folks, pocket chiange. Yes, Dirac is expensive, but this isn't a hobby for those who are very short of cash. It's hard to find decent speakers on the cheap, same gos for subs, so if you really want to aspire to make the most out of your system, find a way towards Dirac as well. Many who have had difficulty with Dirac have messed with their myriad of options, especially in ART. You really can't go wrong using basic (and good) measurements, and then letting the target curve do its thing. Messing with Dirac options without understanding them can lead to bad sound. If you read about Dirac's technology, or look at some of their videos, you'll see why there is no way to replicate what their software does; it's truly unique, and, you'll find, very much worth the cost.
 
I have used both manual REW calibration and automated tools across a few systems. My experience is that manual correction can work very well, but the value is mostly in learning how the room behaves.

I would start with a UMIK, REW, careful measurements, and the WiiM PEQ before buying more hardware. Use filters and verify with more than one measurement position.

Manual REW will not replace Dirac ART, especially for active multi speaker or multi sub correction, but it can still deliver a meaningful improvement and teaches you enough to judge any automated system later.
 
If you read about Dirac's technology, or look at some of their videos, you'll see why there is no way to replicate what their software does; it's truly unique, and, you'll find, very much worth the cost.

Umami Audio MIMO
Custom MIMO

And I believe @OCA's GSonic might have MIMO as well.
 
Thanks for the insights, everyone.

To clarify my setup, I am using a dedicated PC for my Hi-Fi system with REW installed, outputting digitally through an SMSL PO100 Pro, and measuring with the Dayton iMM-6C. Right now, I'm fully in the phase of researching, trying, and experimenting to learn how my room behaves.

Regarding Dirac...while the hardware processors look fantastic, they are simply too expensive for my budget right now. However, I have been looking into the standalone Dirac Live Room Correction Suite for PC. Since my PC is my primary source, the software version might be a functional, hardware free path for me to consider down the road once I've maxed out what I can do manually.
 
Umami Audio MIMO
Custom MIMO

And I believe @OCA's GSonic might have MIMO as well.
I wrote the MIMO version before everything else, took me months but decided to release a free stereo only GSonic first. That was downloaded a total 150 times since its launch months ago although almost everyone who tried loved the results. I expect 4 downloads in total with the MIMO version so I am not rushing ;)
 
Last edited:
I wrote the MIMO version before everything else, took me months but decided to release a free stereo only GSonic first. That was downloaded a total 150 times since its launch months ago although almost everyone who tried loved the results. I expect 4 downloads in total with the MIMO version so I am not rushing ;)
A free stereo tool that generates proper convolution filters sounds exactly like what I need. I'm going to download your software and give it a try probably tomorrow to see how it handles my room and speakers.
 
  • Like
Reactions: OCA
Thanks for the insights, everyone.

To clarify my setup, I am using a dedicated PC for my Hi-Fi system with REW installed, outputting digitally through an SMSL PO100 Pro, and measuring with the Dayton iMM-6C. Right now, I'm fully in the phase of researching, trying, and experimenting to learn how my room behaves.

Regarding Dirac...while the hardware processors look fantastic, they are simply too expensive for my budget right now. However, I have been looking into the standalone Dirac Live Room Correction Suite for PC. Since my PC is my primary source, the software version might be a functional, hardware free path for me to consider down the road once I've maxed out what I can do manually.
Watch out for FOMO, while DIRAC ART and other automatic systems are great (but DIRAC ART is not available for PC , rumour maybe this year) there really is nothing it can do that a determined DIY enthusiast can't do. See this post for an example https://www.audiosciencereview.com/...on-objective-and-subjective-comparison.71466/

For your case since you have great speakers to start just take some MMM measurements and create some filters in REW to knock down the peaks below 250 Hz. That will get you much of what DSP can offer. Anything beyond this and you have to be careful as it is easy to cause more harm than good.

In any case have fun and enjoy your speakers.
 
Last edited:
ART is the practical high performance solution. You pay more, but it works well across different content and listening scenarios with minimal effort.

Custom MIMO is the expert's maximum control solution. It requires significant time, skill, and maintenance.

Manual IIR DSP is the middle ground. It takes measurements and patience, but offers excellent flexibility for bass management, routing, and content specific tuning.
 
First thing this morning, I measured my room and generated a custom Harman target correction filter using GSonic Reference. Since the WiiM Ultra does not support direct convolution file hosting( as I discovered), I installed Equalizer APO on my Windows PC source to run the filter.

The filter originally suggested a -8.6 dB preamp reduction. With the WiiM Ultra's digital volume at 85%, the loudness was too low for my preferences, so I manually adjusted the global pre-amp gain in Equalizer APO to -5.00 dB.

To limit the correction to the bass region below the transition frequency, I added a 12 dB/oct High-shelf filter at 300 Hz with a +4.00 dB gain immediately following the convolution block. The net attenuation for the frequencies above 300 Hz is -1.00 dB (-5.00dB + 4.00dB).

I am running the WiiM Ultra's volume at 80%, which provides the same perceived loudness as my old uncorrected setup did at 55%.

The sound is clear, precise, and completely free of boominess. I am very satisfied with the improvements in sound quality from GSonic Reference.

The soundstage feels wider and more three dimensional. I'm also noticing more atmospheric depth and physical presence in the room.

Thank you.

Screenshot.jpg
 
Watch out for FOMO, while DIRAC ART and other automatic systems are great (but DIRAC ART is not available for PC , rumour maybe this year) there really is nothing it can do that a determined DIY enthusiast can't do. See this post for an example https://www.audiosciencereview.com/...on-objective-and-subjective-comparison.71466/

For your case since you have great speakers to start just take some MMM measurements and create some filters in REW to knock down the peaks below 250 Hz. That will get you much of what DSP can offer. Anything beyond this and you have to be careful as it is easy to cause more harm than good.

In any case have fun and enjoy your speakers.

Idk about Dirac, but I would be surprised if someone could hand roll a calibration that measured better than one produced by my algorithm.
 
Hey guys,

I’m working on integrating my 2.1 setup and want to verify if my proposed workflow makes sense technically, or if I’m missing a glaring issue with phase or timing.

My gear:

  • Source/DSP: PC running Equalizer APO\WiiM Ultra
  • Power Amp: Audiophonics AP300-S250NC
  • Speakers: AsciLab C6B
  • Subwoofer: Arendal 1723 1S
  • Measurement: Dayton iMM-6C
Instead of doing everything inside a single software ecosystem, I want to split the workload to let each piece of hardware/software do what it does best.

Here is the exact step by step approach I'm planning to take:

Step 1: Establish the Hardware Routing & Crossover​

Before running any software calibration, I activate the crossover network so the software sees the system exactly how it will play music.

  • Enable the Subwoofer output in the WiiM Ultra app.
  • Set the crossover point to 80 Hz using 24 dB/Oct Linkwitz-Riley slopes for both the mains and the sub.
  • Result: The AsciLabs are now high-passed at 80 Hz, and the Arendal is low-passed at 80 Hz.

Step 2: Measure and EQ the Subwoofer Individually (REW)​

I want to clean up the brutal sub-80 Hz room modes natively on the sub's hardware before the main calibration.

  • Turn off the Audiophonics power amp so the AsciLab speakers are completely silent.
  • Open REW and run measurement sweeps (20 Hz – 200 Hz) to capture just the subwoofer playing through the WiiM’s 80 Hz low-pass filter.
  • Use REW’s EQ tool to target the room peaks below 80 Hz.
  • Manually enter those generated Parametric EQ (PEQ) values directly into the Arendal App.
  • Result: The subwoofer's native response is now flattened and tamed within the room.

Step 3: GSonic Reference​

Now that the sub is pre-EQ'd and the hardware crossover is set, I treat the whole setup as a standard Left/Right stereo pair.

  • Turn the Audiophonics power amp back on so both the speakers and the sub are live.
  • Open the standalone GSonic Reference app on the PC.
  • Run the spatial average measurement sweeps through the app using the Dayton mic. Because the WiiM crossover is already active, GSonic sees the acoustical summation of the mains and the pre-EQ'd sub working together.
  • Let GSonic calculate the overall impulse response correction and phase alignment.
  • Export the resulting stereo mixed-phase .wav convolution filter.
  • Load the .wav file straight into the Equalizer APO engine on the PC.

My Logic:​

By enabling the WiiM's 80 Hz crossover first, I ensure GSonic isn't calibrating the AsciLabs full-range down to 40 Hz, which would completely break the calibration the moment the high-pass filter is applied later. Instead, GSonic fixes the final, combined response of the system.

Does this sequence hold up logically?

Appreciate any technical feedback or corrections.
 
Hey guys,

I’m working on integrating my 2.1 setup and want to verify if my proposed workflow makes sense technically, or if I’m missing a glaring issue with phase or timing.

My gear:

  • Source/DSP: PC running Equalizer APO\WiiM Ultra
  • Power Amp: Audiophonics AP300-S250NC
  • Speakers: AsciLab C6B
  • Subwoofer: Arendal 1723 1S
  • Measurement: Dayton iMM-6C
Instead of doing everything inside a single software ecosystem, I want to split the workload to let each piece of hardware/software do what it does best.

Here is the exact step by step approach I'm planning to take:

Step 1: Establish the Hardware Routing & Crossover​

Before running any software calibration, I activate the crossover network so the software sees the system exactly how it will play music.

  • Enable the Subwoofer output in the WiiM Ultra app.
  • Set the crossover point to 80 Hz using 24 dB/Oct Linkwitz-Riley slopes for both the mains and the sub.
  • Result: The AsciLabs are now high-passed at 80 Hz, and the Arendal is low-passed at 80 Hz.

Step 2: Measure and EQ the Subwoofer Individually (REW)​

I want to clean up the brutal sub-80 Hz room modes natively on the sub's hardware before the main calibration.

  • Turn off the Audiophonics power amp so the AsciLab speakers are completely silent.
  • Open REW and run measurement sweeps (20 Hz – 200 Hz) to capture just the subwoofer playing through the WiiM’s 80 Hz low-pass filter.
  • Use REW’s EQ tool to target the room peaks below 80 Hz.
  • Manually enter those generated Parametric EQ (PEQ) values directly into the Arendal App.
  • Result: The subwoofer's native response is now flattened and tamed within the room.

Step 3: GSonic Reference​

Now that the sub is pre-EQ'd and the hardware crossover is set, I treat the whole setup as a standard Left/Right stereo pair.

  • Turn the Audiophonics power amp back on so both the speakers and the sub are live.
  • Open the standalone GSonic Reference app on the PC.
  • Run the spatial average measurement sweeps through the app using the Dayton mic. Because the WiiM crossover is already active, GSonic sees the acoustical summation of the mains and the pre-EQ'd sub working together.
  • Let GSonic calculate the overall impulse response correction and phase alignment.
  • Export the resulting stereo mixed-phase .wav convolution filter.
  • Load the .wav file straight into the Equalizer APO engine on the PC.

My Logic:​

By enabling the WiiM's 80 Hz crossover first, I ensure GSonic isn't calibrating the AsciLabs full-range down to 40 Hz, which would completely break the calibration the moment the high-pass filter is applied later. Instead, GSonic fixes the final, combined response of the system.

Does this sequence hold up logically?

Appreciate any technical feedback or corrections.
A couple of things to consider.

1. RE: Time alignment. The first thing to do is make sure your subs and mains are time aligned. Most DSP subs have a delay and subs tend to also be delayed by their nature so usually you need to delay the mains to match the subs but placement obviously comes into play. There are a lot of ways to do this, I would recommend REW and looking at the Impulse tab to see the two impulse responses, you can Google details. REW does have an alignment tool but I can never get it to work right on subs to mains, it does seem to work OK for other driver alignment.

2. RE:crossover. You want to create a "acoustic" LR24 crossover, not an electronic one. One method is to "flatten" the FR and Phase and levels of both the sub and the mains, preferably one octave above and below the crossover point, and then apply the electronic 24 dB per octave filters. The other method would be to measure the response of the sub and mains in REW and have REW generate a 24 dB per Octave curve and use REW filters, either manual or automatic, to match the curve. In both cases you create an "acoustic" LR4 crossover which is what you want, if you don't take the natural FR variations/roll offs of the two speakers into account you will end up with something quite different and most likely suboptimal.

3. RE Steps 2 and 3. These are usually combined as a global correction but what you propose would probably work. I usually do the opposite order i.e. after crossover is dialed in I create a global correction and then measure results and go back and fine tune with the subs PEQ's keeping in mind that "over correction" is worse than under correction.

There are a lot different ways to go about this and a lot of different opinions. Make sure you measure and listen so you can correlate what you measure to what you hear. Good luck and have fun.
 
I didn't even know it was possible to convert a .wav filter file generated in QSonic into a parametric EQ that I can import into a WiiM Ultra...

What i did:

1. File Import
In REW, I imported the left and right channel filters generated in GSonic (Harman Kardon_FL_Filter.wav and Harman Kardon_FR_Filter.wav) simultaneously.

2. EQ Configuration
I opened the EQ window and selected "Configurable PEQ" as the equaliser model.
I restricted the number of filters to exactly 10 to match the maximum hardware capacity of my WiiM Ultra.

3. Target and Frequency Range Setup
I set the target type to "Full range speaker" to match the acoustic profile of the GSonic correction files.
I used the automatic calculation to snap the target line to my data level around 109 dB.
I restricted the match range from 20 Hz to 300 Hz to force REW to utilize all available filter bands strictly within the bass region.

4. Channel Optimization (FL)
I selected the Harman Kardon_FL_Filter measurement.
I ran the "Match response to target" command, and REW computed 6 active parametric filters.
I opened the EQ Filters window to extract the precise Frequency, Gain, and Q values for the Left channel.
I did the same for the Right channel.

Did I approach this correctly, or is there a better way?
 
I’m trying to learn audio software by actively researching, testing, and troubleshooting configurations myself, but it would be really helpful if someone could either give me a quick 'you’re on the right track' or point out where my technical logic fails so I can learn from my errors...
 
I’m trying to learn audio software by actively researching, testing, and troubleshooting configurations myself, but it would be really helpful if someone could either give me a quick 'you’re on the right track' or point out where my technical logic fails so I can learn from my errors...
There's nothing obviously wrong with your method but I don't think there is a perfect cookie cutter follow this or follow that because every system/room is different. I think the best thing is just to save all your REW sweeps so you can objectively compare before and after every step of the way. I prefer to just check one minor/major change at a time so I can more easily evaluate with less variables. I think the only thing that really matters is the end result and how it sounds to you
 
Last edited:
Back
Top Bottom