Sunday, 5 October 2025

Stereo Crosstalk Cancellation (XTC) / Ambiophonics: Introducing CTXMatrixBeta, a Free VST3 Plugin with XTC Calibration. [Guest post, STC.]

Greetings audiophiles!

As you may recall, Archimago and I (STC) wrote the previous article from October 2023 on stereo crosstalk cancellation (XTC). If you're not familiar with the topic, I recommend a look at that to familiarize yourself with the principles behind the technique.

I now want to introduce CTXMatrixBeta, a free 64-bit VST3 plugin that brings Ralph Glasgal's vision with freely accessible Ambiophonics for all to try. (In the near future, I'm planning to work on adding support with surround channels for the "Domestic Concert Hall" [DCH]. The ideas and logic are ready to implement.)

Regarding CTXMatrixBeta, by harnessing intuitive ear-based calibration, this plugin aims to deliver precise XTC, empowering enthusiasts to experience the immersive, lifelike sound of their 2-channel recordings with unmatched clarity.

From Challenge to Breakthrough: Why I Built CTXMatrixBeta

My XTC journey began simply with a physical wall partition, then to MiniAmbio (MiniDSP with Ambiophonics), a few other techniques in between, and then I settled for awhile with AmbiophonicDSP VST plugin released initially in 2009. While this software remains a capable tool, it's hindered by its 32-bit architecture and 44.1kHz sampling rate, requiring constant readjustments for other rates.

As computers have advanced into 64-bit machines and the developers of AmbiophonicDSP stopped showing interest in releasing updates, I decided to try coming up with my own version using the Reaper DAW. However, the earlier attempts failed to sound as good as the plugin, as there appeared to be additional settings required. The controls for AmbiophonicDSP also remained a mystery as to exactly what they did. Unfortunately, questions to developers were often unanswered or got smothered with technical jargon that never actually addressed the questions directly. It is hard to discuss the technicalities openly when hindered by authoritarian figures with a chip on their shoulders and faithful followers. I questioned the purpose of the plugin's additional controls - were they truly canceling interaural crosstalk or adding effects that strayed from the pure crosstalk cancellation intent?

In discussions, Ralph Glasgal noted that one of the plugins actually introduced more crosstalk and then cancels them to minimize coloration. Is it possible that the so-called 3D sound, claiming to be addressing interaural crosstalk cancellation is actually doing more than cancellation but also implementing a stereo stage enhancer? For example, in the original article, Archimago described the effect of setting Space to 10 (in AmbiophonicDSP) did not yield the most neutral sound in his system which contradicted the sound experience in my system. I asked the developer what this setting is for but only was told vaguely that it's just a sonic adjustment for different tastes! What I found was that at minimum level, the plugin performed the best cancellation but with horrible colorations but at full it gave identical sound to stereo as if no XTC was employed but the 3D effect was slightly reduced.

Why in Archimago's system did it behave differently? To understand several issue like this, for more than a decade, I've been experimenting with band-specific values and solutions for mono center signals, using Reaper and effects like the PingPong plugin to refine cancellation.

Over the years, I've honed the Reaper process and have started using it as my de facto playback system for crosstalk cancellation. Unfortunately, my method relied on multiple plugins, so replicating this across different systems was nearly impossible without significant effort. Calibration was also time-intensive, so I've been using my own system's calibrated values for demos to showcase the effect.

Remarkably, I found that even with non-optimal values, listeners perceived a degree of 3D presence, highlighting the robustness of ear-based XTC. Ralph tried to get some developers to work with me and I too tried to recruit some professionals to help only to be told it would be impossible. I did not give up and did not miss any opportunities with coders who contacted me to help implement my approach as a plugin! Eventually, I started to learn coding, this evolved into CTXMatrixBeta, a streamlined solution that preserves the stereo's tonal character - maintaining the mastering engineer's intended sound - while enhancing clarity, detail, and soundstage immersion.

By following Glasgal's concept of RACE-based XTC, this algorithm excludes EQ adjustments and uses only delay and attenuation, so it should sound neutral (with a minor 3 dB low-frequency difference, often masked by subwoofers in the system). With my crossover-less electrostatic speakers, CTXMatrixBeta I believe rivals the best stereo setups. Here's a demonstration using just an iPhone mic recording:


Hopefully you clearly heard the difference when I bypassed the plugin. Measurements are really just secondary for something like this, so stick with what matters - your sound preference!

Unlocking Stereo Realism: The Science Behind CTXMatrixBeta

Human hearing is a marvel of localization. The pinna (outer ear) shapes sound frequencies, most sensitive at 30° off-center, aligning with the conventional 60° stereo triangle. This creates a conflict: the brain struggles to reconcile a recording's interaural time and level differences (ITD and ILD) with pinna cues that tether sounds to the speakers, blurring imaging and driving the audiophiles' quest for realism.

Ambiophonics recommends an "Ambiodipole" setup with speakers at 20° angle to the listener. This prioritizes recorded cues so the listener can extract natural, externalized sound in the music, without a large amount of pinna coloration added to what is heard.

When speakers are at 30° from midline (typical 60° 2-channel setup), the strong pinna cues (typically above 1.5kHz, unique for each person) would require complex in-ear frequency response measurements to accurately suppress. Such complex cancellation for the purpose of XTC risks undermining sound quality - a challenge not fully addressed in current crosstalk cancellation literature, or at least I am not aware of. Thus CTXMatrixBeta, as with typical ambiophonic setups bypasses these complexities and is optimized for the 20° references angle (up to 30° should still be good), with calibration by ear to achieve high quality XTC.

Capabilities and Performance: Immersive Audio, Uncompromised

CTXMatrixBeta, tested with JRiver MC32 and compatible with DAWs like Reaper, guides users through a four-stage calibration process (streamlined from 16 for usability) to fine-tune delay and attenuation. It handles hard-panned and mono sounds seamlessly, preserves the stereo's intended tonal character while enhancing clarity and detail.

Tracks like Chesky's "Edgar the Barber" create snipping sensations behind the ears, while Roger Waters' "Too Much Rope" (on Amused to Death) renders a horse-drawn carriage moving linearly across a 180° path without taking a detour once approaching the right side like most XTCs, including those products costing $$$$ as written by one reviewer! While the reviewer exclaimed about the "Wow!" factor, he did not ask himself if with this QSound recording, meant for 2-channel playback with speakers at ~60°, the intended path was the same as listening through that $$$$ product. Such is the limited nature of reviews written for marketing I guess! (Further discussions here.)

Download and Usage

Download the free beta plugin here. Installation instructions are here. The software is still under development. Once completed, the "beta" will be replaced with a final version featuring test tones and a verification indicator. Check the webpage for updates of when the version with the "Digital Concert Hall" concept is implemented as well. Hopefully soon...

Your feedback will shape the final release. Thank you to Archimago and the community for fueling this journey toward true stereo realism.

ST Chelvam

--------------------

Addendum (Archimago):

Thanks for the post and beta plug-in, STC! Great stuff. It's this kind of work provided free to the rational audiophile community that makes the hobby great.

I didn't get much time to play with it on my end but what I heard before heading off to Europe was impressive with my Tannoy bookshelves spread about 25°.

For those giving this 64-bit VST3 plug-in a try, let me offer some files that might help with the calibration process which can be tricky - and necessarily subjective since this is fine-tuning for best psychoacoustic performance based on your speaker geometry, your room, and idiosyncrasies of your hearing.

Here's a ZIP file with 200Hz-3kHz pink noise (approximately the speech frequency range for intelligibility in telephony) tracks - LEFT, RIGHT and DUAL MONO variants, each file 90 seconds long, 16/48 FLAC. The focused bandwidth should help better localize the position of the sound in the preparation (ie. occlusion steps) and calibration process:

200Hz-3kHz 'Speech' Pink Noise L-R-MONO.ZIP

The L/R tracks can be used for the occlusion phase when preparing for the calibration and the mono track should be all you need for the calibration itself. Make sure you take the time necessary to do the calibration since this will have substantial impact on the outcome. Pay attention to the instructions in the README file in the plug-in folder and have a look at the online README for more.

A quick general summary... In JRiver DSP Studio, use the "Manage Plug-ins..." button to start the CTXMatrix VST as shown above.

I then cue up the 3 pink noise files:


Notice BTW that I also have a few albums in the library which I'll use to test out the sound quality/effect afterwards.


Play whichever of the 3 tracks (mono, left, right) that's appropriate for the preparation/calibration step. Click and hold the left mouse button in the blue circle (Attenuation and Delay) and move mouse up and down to adjust the values to achieve subjective desired sound. Again, take your time.


Once all is done, you can rename the calibration, save the file and listen to some music. It's great to have that "Bypass" switch to turn the DSP on/off for comparison. Also you can attenuate the L/R levels with the trim controls down to -3dB.
[STC - it would be great to have an ability to go back and edit the calibration values after the process is done without needing to fully reset. Great to learn that the latest version 1.1 of the plug-in now will allow greater delay values for those who want to try with >30° speaker angles, plus he has added the ability to adjust gain.]
As you can see in the image above, I'm listening to "Too Much Rope". Excellent maintenance of tonality, I hear the horse-drawn carriage traverse linearly from distant left-to-distant right behind me, Roger Waters' voice located center front, and the Ferrari racing by right front-to-left rear. This is what it sounds like as well if I listen to the BluRay multichannel version of Amused To Death in my Atmos system.

The Jon & Vangelis track "The Friends of Mr. Cairo" sounds very expansive and just plain fun! That expansion of soundstage improves the ability to better hear the multiple parts and layers into the music (like Billy Joel's "We Didn't Start The Fire" or Peter Gabriel's "I Have The Touch"). Also, try flipping between XTC and stereo bypass on some electronica like "Make Us Stronger" by Ghost Rider to hear the obvious wrap-around immersive effect.

The plug-in ran stably, didn't take too many CPU cycles, switched between 44.1/48/88.2/96kHz sample rates without issue in my testing using JRiver. Looking forward to further development of this plug-in and extensions like DCH, ST!

I think uBACCH has serious free competition! 😉 Also, since it can't use external plug-ins, I think it would be great if Roon implemented stereo crosstalk cancellation into their collection of DSP effects as previously suggested.

Taylor Swift released her latest The Life of a Showgirl (2025, DR6 stereo, DR11 multichannel/Atmos, lower 2-channel dynamic range as expected) the other day. Overall an enjoyable collection of pop. Here's a simple, "sweet" track:


One last thing, for an album like this, if one takes the multichannel version, down-mix it to 2.0 and then pass it to CTXMatrix for ambio playback, it sounds really good. Without as much dynamic range compression, it doesn't sound as harsh/distorted as the "modern" typically overly loud native 2-channel mix.

Down-mixing very easy to do in JRiver through the Output Format DSP setting (48kHz standard for most multichannel/Atmos streams these days):


Hope you're enjoying the music, audiophiles!

No comments:

Post a Comment