crosstalk_canceller
NODECancels what each speaker sends to the opposite ear, so the image can extend past the speakers.
Parameters
{
"depth": 0.5,
"speaker_angle_deg": 30,
"type": "crosstalk_canceller"
}How it is computed
1. Δt around the head is derived from speaker_angle_deg
using the Woodworth spherical head model
2. D = Δt in samples at the internal rate
3. the crossing signal is low passed at 2 kHz (the head shadow)
4. blended into the opposite channel, inverted:
L_out = norm · ( L - depth · LPF( R(t - D) ) )
R_out = norm · ( R - depth · LPF( L(t - D) ) )
band_low_hz keeps the cancellation out of the bottom endUsing it
The speaker angle has to be your actual angle.
The delay is derived from it. If the value does not match your room, the cancellation lands at the wrong time and the effect collapses, usually into a hollow sound.
It is for speakers, not for headphones.
Headphones have no acoustic crosstalk to cancel, so the node only adds an inverted delayed copy of the other channel.
It is a narrow sweet spot by construction.
The cancellation is correct at one listening position. Moving your head out of it does not damage anything, but the effect goes away.
Keep it out of the bass.
Cancelling low frequencies across channels removes energy rather than repositioning it, which is what band_low_hz is there to prevent.