• 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!

GSonic Reference – Free Stereo Room Correction Tool (Measurement + FIR Export)

OCA

Major Contributor
Joined
Feb 2, 2020
Messages
1,388
Likes
1,694
Location
Germany
I released a new tool yesterday and wanted to share it here:


GSonic Reference is a cross-platform room/speaker correction tool for stereo systems. It includes built-in measurement capability and generates convolution filters (FIR) that can be used with engines like Equalizer APO, CamillaDSP, Roon, JRiver, HQPlayer, etc.

Key points:
- Integrated measurement workflow (no external tools required)
- Automatic filter generation in a few minutes
- Designed to keep the process simple and repeatable
- Exports dual mono or stereo .wav convolution files

The goal was to reduce the barrier to getting good correction results without needing to learn a complex toolchain.

It’s completely free, and I’d be very interested in feedback especially measurements, listening impressions, or compatibility with existing workflows.

If there’s interest, I can also share more details on the processing approach and design choices.

Thanks!
 
Last edited:
Looks really interesting, I will see if I can try it this week.

Do we need to do anything special when it comes to subs?
 
Looks really interesting, I will see if I can try it this week.

Do we need to do anything special when it comes to subs?
It is designed from the ground up for precision stereo reproduction and focuses entirely on optimizing the left and right channels as a cohesive pair. Because it operates in the stereo domain, it assumes any subwoofer is already integrated into those channels. That means it won’t handle crossover alignment or sub-to-speaker time alignment; those elements are left to the user’s own integration.

That said, there will be a premium option soon with its own multi‑channel processing convolution engine which adds up to 6 support channels - including subs to the front speaker pair for active room mode cancellation.
 
Wow, sounds like a great additiin to the toolchest.

So your speaker compensation can be applied first,

then do bass management crossovers, phase / timing fixes with another tool, say REW + Acourate?

I plan to have co-located stereo midbass couplers

and also test co-located stereo subs (not too deep)

So with that setup can also generate filters with your GSonic tool, correct?

How about the rear L/R?

Then the Center + deeper mono Sub(s) which get freely placed, leave those out for using GSonic, tack them on later to use with REW + Acourate?
 
99% of the music tracks do not have any content below 30-40Hz and most floor standing speakers will not need a sub for good stereo music production IMO but if you need to use subs for any specific reason, once your sub(s) are integrated with your stereo speaker pair, it's the same stereo chain for GSonic to measure and correct. You can do near perfect sub integration using REW's alignment tool. Here's a quick tutorial for how to do that right:

Speaker & Subwoofer Integration
 
So getting everything all set up and integrated

including mono subs placed wherever in addition to the L/R front

Then run GSonic Reference for the final overall room correction aspect

and Centre and L/R rear too?

The filters are for convolving 2-channel signals at the front end right?

GSonic not distinguishing the individual multi-channel outputs after those signals have been split up, is that right?

Assuming very clean signal paths and ADC/DAC conversions, if necessary to go back and forth twice, any distortion from DSPing a signal that's already been DSP'd is likely inaudible?
 
That said, there will be a premium option soon with its own multi‑channel processing convolution engine which adds up to 6 support channels - including subs to the front speaker pair for active room mode cancellation.
That would be great, I would love something simple that can give me results like Audiolense can. Do you have a price or ETA? Will it support L/R subs, or they will be summed?
 
That would be great, I would love something simple that can give me results like Audiolense can. Do you have a price or ETA? Will it support L/R subs, or they will be summed?
It's basically production ready. I haven't figured out the exact pricing yet, but it'll be very reasonable for what it brings to the table. It's still for stereo music listening but the big differentiator is how it handles the room. Existing solutions can only process standard single-path or multi-input filters. I wanted true cross-channel processing (MIMO), where the speakers/subs actively interact to clean up the room acoustics. As far as I know, there's no tool or convolver that can generate and run these kinds of filters. The closest comparison is Dirac ART, but that requires buying into their specific hardware ecosystem. I wanted something we could actually control ourselves.

That being said, I don't want to derail this thread into a sales pitch for an unreleased app and would rather focus on the free stereo tool I posted above. It's incredibly capable on its own and I highly recommend trying it out.
 
Great news !!!

As usual @OCA releasing great tools :)

Tried on MacOS Sequoia ARM64. Had to install glfw using brew (I suppose for the UI part) and reset permissions (xattr -c) but when I run it through terminal it just exits without any errors.
 
  • Like
Reactions: OCA
Great news !!!

As usual @OCA releasing great tools :)

Tried on MacOS Sequoia ARM64. Had to install glfw using brew (I suppose for the UI part) and reset permissions (xattr -c) but when I run it through terminal it just exits without any errors.
Thanks for the feedback. Some issues with Mac & Linux versions were expected since I am on Windows.

1. Turns out macOS requires GLFW_OPENGL_CORE_PROFILE + GLFW_OPENGL_FORWARD_COMPAT + version 3.2 minimum. Without these, glfwCreateWindow() returned NULL and the app exits with code 1 silently. Fixed with #ifdef __APPLE__ platform-specific hints.

2. The binary was dynamically linked to GLFW, requiring you to brew install glfw. Now the CI packages the libglfw.dylib alongside the binary and uses install_name_tool to rewrite the path to @executable_path/.

Both issues should have been fixed now.
  1. Download GSonic-Reference-v1.0.1-macOS-ARM.zip from the v1.0.1 release
  2. Extract, then run xattr -c GSonic libglfw* to clear Gatekeeper
  3. Run ./GSonic — should now launch correctly with no brew required.
 
Last edited:
Wow, will give it a try on Linux! Thanks for sharing.

99% of the music tracks do not have any content below 30-40Hz and most floor standing speakers will not need a sub for good stereo music production IMO but if you need to use subs for any specific reason, once your sub(s) are integrated with your stereo speaker pair, it's the same stereo chain for GSonic to measure and correct. You can do near perfect sub integration using REW's alignment tool. Here's a quick tutorial for how to do that right:

Speaker & Subwoofer Integration
I guess that depends a lot of the genre(s) one is interested in. Like for organ music, it's quite common to benefit from clean reproduction even <20 Hz (human audibility reaches down until ~16 Hz) but on the other hand, no need for >10 kHz (in this case): :p

Cameron Carpenter's "Evolutionary" Toccata And Fugue In D Minor, BWV 565
Cameron Carpenter - 02. Evolutionary_Toccata & Fugue in D Minor, BWV 565.png


And most floor standing speakers that reach down below 50 Hz do distort audibly too early = their headroom's too small, so that good subwoofers can make a difference in many more scenarios. But proper integration remains quite a challenge, so thanks for the tutorial link.
 
so that good subwoofers can make a difference in many more scenarios.
I hear you and don't disagree but sub integration in the classic sense is a whole different ball game and I wanted to keep this one simple to set up and powerful on the DSP front. The other tool will integrate subs at a different level.

It's great that you're on Linux. I hope it works hassle-free on Linux out of the box but I will sort any bugs out quickly regardless.
 
Thanks for the feedback. Some issues with Mac & Linux versions were expected since I am on Windows.

1. Turns out macOS requires GLFW_OPENGL_CORE_PROFILE + GLFW_OPENGL_FORWARD_COMPAT + version 3.2 minimum. Without these, glfwCreateWindow() returned NULL and the app exits with code 1 silently. Fixed with #ifdef __APPLE__ platform-specific hints.

2. The binary was dynamically linked to GLFW, requiring you to brew install glfw. Now the CI packages the libglfw.dylib alongside the binary and uses install_name_tool to rewrite the path to @executable_path/.

Both issues should have been fixed.
  1. Download GSonic-Reference-v1.0.1-macOS-ARM.zip from the v1.0.1 release
  2. Extract, then run xattr -c GSonic libglfw* to clear Gatekeeper
  3. Run ./GSonic — should now launch correctly with no brew required.

Thanks ! Working now. Haven't tried it but I will test it on my stereo (miniDSP SHD + DL).
 
  • Like
Reactions: OCA
[...]

It's great that you're on Linux. I hope it works hassle-free on Linux out of the box but I will sort any bugs out quickly regardless.
That's great news! Will definitely let you know if I find anything that looks odd to me.

I like that only "A total of 3 positions are measured for spatial averaging" as per your Quick Start, as opposed to the Dirac Live approach. As shown by Archimago, in most cases too many measurement positions don't improve things - on the contrary!

Actually, if one uses loudspeakers with excellent horizontal directivity, then the measurement at only 1 main position = the sweet spot should suffice or even provide better results, as the speakers' wave guide tech will provide a predictable and stable soundstage in the listening area around the sweet spot.
 
  • Like
Reactions: OCA
I like that as well. For even the-just-me LP focus, I still want a foot to the side of each ear since I do shift positions.

For 3-4 on the couch not quite as precise a result, a 10'-spread is a decent compromise
 
  • Like
Reactions: OCA
Quick test on v1.0.2. "Test Audio" button on MacOS got this error:

[RtAudio] openStream failed: RtApiCore::probeDeviceOpen: the device (129) does not support the requested channel count.

Audio output: Macbook Speaker and external DSP (DSPi project recently reviewed on this forum :) )

Midi Console show both outputs as 2-Channel 48Khz 32 bits.
 
I wanted true cross-channel processing (MIMO), where the speakers/subs actively interact to clean up the room acoustics. As far as I know, there's no tool or convolver that can generate and run these kinds of filters. The closest comparison is Dirac ART, but that requires buying into their specific hardware ecosystem. I wanted something we could actually control ourselves.

This little quote by OCA deserves special emphasis. At the moment the only MIMO on the market is Dirac ART. If OCA's MIMO (or whatever he wants to call it) comes to market, there will be no need to pay Dirac's inflated license costs and be locked into their hardware ecosystem. Pay attention here and wait and pray that he gets it working and that it comes to the market soon.
 
Last edited:
I love OCA‘s contributions to our hobby. I also second what Keith said - I’d purchase a tool working like that on PC in a heartbeat.

Going to test the software pertaining to this thread in the coming days, sounds very interesting. Can I assume that some amount of latency will be present with the filters active?
 
I love OCA‘s contributions to our hobby. I also second what Keith said - I’d purchase a tool working like that on PC in a heartbeat.

Going to test the software pertaining to this thread in the coming days, sounds very interesting. Can I assume that some amount of latency will be present with the filters active?

Filters are calculated by GSonic but applied by your DSP engine (Roon or whatever). I tried to test the tool on MacOS (I really hate Windows and now even more that I'm on audio stuff). AFAIK you can get 32K taps. Anyway this is for stereo not movie so cares about latency on that application ? Please correct me if I'm wrong.
 
Last edited:
Back
Top Bottom