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

Just gave it a quick test - using Apple silicon I can't select a house curve, it only gives me the default tilting curve.

I had to jump through Apples security hoops to get GSonic and libglfw.3 to start in Terminal app but otherwise, aside from the house curve, it generated some decent filters. I'll have to listen and compare a bit.
 
  • Like
Reactions: OCA
would you really need a complete matrix? intuitively that would seem quite unusual (aka not all speakers in a typical multichannel setup are similarly capable)

on 1st impression, I'm not sure why it wouldn't work in jriver, you certainly can't do multipass convolution (whereas cdsp, afaik, can) but you can do multipath for any channel which is all you need in this case isn't it?
The problem is not multi-path, it's the one convolution filter per channel limit. JRiver can in fact do it with a VST plugin, others don't accept VST plugins. But I wrote a cross-mimo VST3 plugin for JRiver and the experience was sub par although it worked when it did. It's cleaner and a lot more reliable to play JRiver to my convolution engine.
 
v1.0.14 is uploaded!

Change summary:
  • Added byPass filters - FL_Reference.wav, FR_Reference.wav, Stereo_Reference.wav — these filters will be generated in parallel with the same volume reduction (averaged L/R gain) but zero correction (pure Dirac pulse) - provided for proper A/B switch testing.
  • House curve browse fix (macOS/Linux) - targetCurves/ folder issue when run from terminal now resolved.
  • Sweep timeout - 30s timeout - prevents permanent hangs on misconfigured audio.
  • Scrollable log - Measure tab log now has borders and scrolls properly.
 
Last edited:
Did a quick initial testing and must say I am very impressed, the correction looks very reasonable and sounds nice, better than any automatic tool I had tried in the past as DRC, Acourate, Dirac and Sonarworks, which can be seen also in the correction curve which mainly just corrects the bass and the lack of upper treble in my room on the loudspeakers I used at testing.

Exemplary a comparison of a moving microphone measurement of the left loudspeaker before and after correction with the default -1dB/oct target

1775199800313.png


and for me most impressing the simultaneous left plus right moving microphone measurement which doesn't have the severe dip around 55 Hz due to different phase rotations, something where most automatic DRC tools fail, even sometimes creating such new dips that didn't exist before.

1775199991804.png


What is also very impressive to me that it works so well despite just using 3 measurements currently. Till now I always preferred the sound of my own IIR MMM based minimum phase based measurements but this is the first FIR correction tool which works great for my room and preference.
 
The problem is not multi-path, it's the one convolution filter per channel limit
You can use more than one filter per channel via a cfg file but perhaps you mean some specific configuration that doesn't work?
 
  • Like
Reactions: OCA
IS there an editable cfg file exposed?

Edit: I'll test the new Apple silicon version tomorrow.
 
IS there an editable cfg file exposed?
This one doesn't need any .cfg file to work with at least Roon & JRiver (tested).
 
Really looking forward to trying this as soon as I get chance.

I can see that some people have measured the Gsonic results with REW. I'll be using Roon for the filters, but am unsure how then to measure in REW. Can someone advise please?

At the moment I've got a 2 channel DAC feeding my mains and stereo subs. @OCA will the premium version have similar functionality to a miniDSP for bass management when using a 4 channel DAC?
 
  • Like
Reactions: OCA
I can see that some people have measured the Gsonic results with REW. I'll be using Roon for the filters, but am unsure how then to measure in REW. Can someone advise please?
Export the test signals from REW and import to roon, then play the track in roon whilst measuring.
 
GSonic Reference v1.0.16 released!

A summary of recent updates:

v1.0.11Fixed MSVCP140.dll crash (static CRT)
v1.0.12Fixed measurement count, timestamped measurement folders
v1.0.13Bypass filters for A/B, playrec timeout, exe-relative paths
v1.0.14Native OS browse dialogs, scrollable log
v1.0.15Phase extractor v2.0 — unwrap before smoothing, full-range correction
v1.0.16Timestamped filter folders, version display, YouTube link

For those interested, an introductory/tutorial YouTube video is premiering in less than 2 hours GS Reference video
 
Last edited:
My listening area covers a 172cm wide couch, which has space available for three sitting positions. Here are the results for all three positions (i.e. across the whole couch) after the GSonic correction. Left speaker:

1.jpg


and right speaker:

2.jpg


The above is just to show how well the correction works over a large listening area with just three close spaced measurement points - I have made some adjustments to the VLF since then. So here's an MMM measurement of both speakers at the MLP with the newest version of the software, which was my latest effort.

3.jpg


My own subjective conclusions are quite clear: FIR-based correction is king when latency and ringing can be kept in check; all the hardcore DSP guys here were right - you DO want flat phase, preferably over much of the reproduced frequency band; it DOES make a difference. My speakers are currently producing very scary sounds. In a good way - bass never sounded this good.

The only tiny gripe I have left can't be alleviated - the volume reduction is a thing and has to be compensated for if one already uses replay gain (volume correction) tags on one's music. That's fine - we can always apply some gain and monitor EQAPO for digital clipping.
 
GSonic Reference v1.0.16 released!

A summary of recent updates:

v1.0.11Fixed MSVCP140.dll crash (static CRT)
v1.0.12Fixed measurement count, timestamped measurement folders
v1.0.13Bypass filters for A/B, playrec timeout, exe-relative paths
v1.0.14Native OS browse dialogs, scrollable log
v1.0.15Phase extractor v2.0 — unwrap before smoothing, full-range correction
v1.0.16Timestamped filter folders, version display, YouTube link

For those interested, an introductory/tutorial YouTube video is premiering in less than 2 hours GS Reference video
Hey, OCA.

First of all, let me thank you for all the work you put into these scripts. Acoustix completely changed my ATMOS setup for the better, and all my friends have tried it and love it as well.

I have tested GSonic in my M1 MacBook Pro and everything went great with the measurements and filter generation. They worked pretty great on Roon, but then I got a strange behavior in the Eversolo dmp-a6 I have in the office. I managed to generate the filters and import into the Eversolo's FIR engine, but when I try to play anything with the filters on, no sound comes out. With other filters generated by REW or Eversolo's own correction engine, there are no problems.

Do you have any idea on what could be causing this? (I have added my measurements and filters, for reference).
 

Attachments

Last edited:
Hey, OCA.

First of all, let me thank you for all the work you put into these scripts. Acoustix completely changed my ATMOS setup for the better, and all my friends have tried it and love it as well.

I have tested GSonic in my M1 MacBook Pro and everything went great with the measurements and filter generation. They worked pretty great on Roon, but then I got a strange behavior in the Eversolo dmp-a6 I have in the office. I managed to generate the filters and import into the Eversolo's FIR engine, but when I try to play anything with the filters on, no sound comes out. With other filters generated by REW or Eversolo's own correction engine, there are no problems.

Do you have any idea on what could be causing this? (I have added my measurements and filters, for reference).
I don't see anything wrong with the filters generated. They have around -4dB clipping headroom and otherwise perfectly normal filters. Web search points to an EOS setting that needs to be ON for sample rate conversion on the fly but I have no experience with an Eversolo to help better.
 
Please consider adding measurement output signal gain option, it will be handy for DAC+Poweram setup.
 
  • Like
Reactions: OCA
Gsonic looks good. I have made my measurements (with UMIK01) for my desktop system and generated filter files in .WAV format (using AcoustiX_default.txt) .

Is there some easy way to convert these .WAV files to .TXT for use in, (e.g.), Equalizer APO? Or am I missing something?
 
Gsonic looks good. I have made my measurements (with UMIK01) for my desktop system and generated filter files in .WAV format (using AcoustiX_default.txt) .

Is there some easy way to convert these .WAV files to .TXT for use in, (e.g.), Equalizer APO? Or am I missing something?
In EQAPO, go to the configuration editor. Press the plus sign, then press "Control" and then press "Channel (Select channel). Select L as the channel to be used. After this, you press the plus sign again, scroll down to "Advanced filters" and select "Convolution" there. In the window that pops up now you enter the convolution file for the L speaker. After that, you repeat the procedure for the R speaker. It should look like this in the end:

Unbenannt.png


The convolution files need to be saved in the config folder for EQAPO to recognize them btw (directory looks like this: C:\Program Files\EqualizerAPO\config).
 
Last edited:
I used Gsonic today. I found that when I ran the test signal I had to crank my preamp (Topping Pre90) up to +12dB for the level to register as OK (I'm usually at -15dB!). Then I ran the sweep and it immediately caused my power amp (Topping LA90D) to shut down. I restarted it and listened to the sweep until it sounded OK volume wise by ear, which was around -10dB.

Everything seemed to work fine after that. It took me longer than I anticipated due to aforementioned issues, but otherwise it would have been quick. Unfortunately I ran out of time to have anything but a cursory listen, so will save that for another day. Also, I'm going to measure with REW when I figure out how to do that via Roon (I've downloaded the test files, thanks @Soniclife).

Measurements and filters attached if anyone interested.
 

Attachments

In EQAPO, go to the configuration editor. Press the plus sign, then press "Control" and then press "Channel (Select channel). Select L as the channel to be used. After this, you press the plus sign again, scroll down to "Advanced filters" and select "Convolution" there. In the window that pops up now you enter the convolution file for the L speaker. After that, you repeat the procedure for the R speaker. It should look like this in the end:

View attachment 522763

The convolution files need to be saved in the config folder for EQAPO to recognize them btw (directory looks like this: C:\Program Files\EqualizerAPO\config).

Many thanks for your response!! I haven't tried Equalizer APO before today so I'm ignorant of its nuances.

I've following those instructions my result looks as you show except that the "Convolution with ..." row appears above the "Selected channels row, (if that's a problem). See picture below.

Seems to be working though I had to increase the gain in Equalizer APO.
 

Attachments

  • Eq APO Config.jpg
    Eq APO Config.jpg
    244.5 KB · Views: 70
Last edited:
Any recommendations how I could use these filters on MacOS w Apple Music?
 
Back
Top Bottom