Stereo's Blind Spot: Only X, No Y


Put on headphones and play a well-mixed stereo recording. The drums sit dead center, guitar on the left, keys on the right, bass slightly left of center — the picture is very clear. But one problem:


Everything sits on a single plane.


No depth, no front-back layering, no sense of "a car approaching from afar." Stereo left-right positioning relies on the pan pot's left/right channel level difference — essentially one-dimensional (X-axis) information.


Whether a sound comes from the front or the back cannot be distinguished in traditional stereo — because the left and right channels carry identical information (when the image is centered).


This is the Kakeya conjecture projected into audio: observations from one dimension are insufficient to uniquely determine a solution in another dimension. Given identical left/right level data, you cannot tell whether the sound comes from +Y (front) or -Y (back).


How the Human Ear Perceives Depth


In the physics of the human head, sound reaching the eardrum is not a simple "loud or quiet" matter — it undergoes:


  • Head diffraction — when sound travels around the head to the opposite ear, phase and amplitude change
  • Pinna reflection — sound from different directions takes different reflection paths in the pinna, producing direction-specific comb filtering
  • Interaural time difference — the arrival-time difference between ears varies with angle

Scientists use artificial heads (like the KEMAR mannequin) in anechoic chambers, placing speakers at hundreds of directions; each direction plays a short pulse recorded by microphones in the ear canal — this recording is the spatial impulse response.


M/S + Spatial Convolution: What We Do


DpdoEngine's original spatial processing uses M/S encoding plus dual-direction convolution:


  1. M/S decomposition — split L/R stereo into M (Mid = L+R) / S (Side = L−R)
  2. M channel → convolved with the front impulse response → center image placed in front
  3. S channel → convolved with the rear impulse response → side image placed behind
  4. Recombine — merge back into L/R

This already produces decent directionality, but has a fundamental limitation: depth (Y axis) is a fixed binary mapping — either front or back, with no continuous transition in between.


DpdoDepth: Multi-Angle Data Interpolation


To break the binary limitation, we need measurement data at more angles, then interpolate continuously between them.


Core Idea


Using the public KEMAR measurement dataset or real-human measurements, load 13 horizontal-direction spatial impulse responses at once (0°–180° every 15°):


0° 15° 30° 45° 60° 75° 90° 105° 120° 135° 150° 165° 180°


Then introduce a depth parameter D ∈ [−1, +1]:


D valueMeaningCenter image perceived fromSide image perceived from
+1straight ahead180°
+0.5front, spread45°135°
0ear level90°90°
−0.5rear, spread135°45°
−1straight behind180°

Each channel maps to a target angle, and interpolated convolution is performed between the two nearest loaded angles: two independent convolution engines each process the signal, and outputs are blended by interpolation weight.


Why 13 Directions?


The 15° step is a practical compromise between precision and compute. Human horizontal resolution is roughly 1° (front) to 10° (side), so a 15° step covers most perceivable variation. Compute only grows from 2 to 4 convolutions — negligible on modern CPUs.


When a full external measurement file is provided, the angle count is fixed at 13. If embedded data (0°/180° only) is used, the original binary logic applies and depth only controls front/back swapping.


How Depth Maps to Angle


The depth parameter D maps to angles via a simple linear mapping:


angleM = (1 − D) × 90°
angleS = 180° − angleM

Verification:


  • D=+1 → angleM=0°, angleS=180° (center in front, sides behind → wide stage with the main image forward)
  • D=0 → angleM=90°, angleS=90° (center and sides both from the side → flat stage, no front-back layering)
  • D=−1 → angleM=180°, angleS=0° (center behind, sides in front → whole stage shifts backward)

The Kakeya Connection


One intuitive reading of the Kakeya conjecture: data observed on a one-dimensional line cannot uniquely determine a position in two-dimensional space. In audio, this manifests as: L/R levels alone cannot determine front vs back.


DpdoDepth doesn't "solve" this problem — it circumvents it. Instead of computing a mathematical solution, it directly uses real human-head physical measurements as templates, embedding the perception of "this sound arriving at the eardrum from some direction" into the signal via convolution.


The Kakeya conjecture says: one-dimensional information is insufficient for a unique two-dimensional solution. DpdoDepth says: then I won't rely on computation — I'll feed you the physical measurements directly.


Future Directions


DpdoDepth's current implementation focuses on horizontal front-back depth. Extensions under consideration:


  • Multi-elevation interpolation — add the vertical dimension for 3D spatial positioning
  • Personalized profiles — support individual spatial perception data
  • Dynamic depth — adjust depth in real time by band or time, creating source movement trajectories in space
  • ITD enhancement — superimpose fine interaural time differences to sharpen directional precision

Conclusion


The value of DpdoDepth:


  1. Combines the mature M/S + spatial convolution framework with multi-angle measurement interpolation
  2. Provides a continuous depth parameter (not just front/back binary), letting listeners freely adjust spatial placement
  3. Integrates seamlessly with DpdoEngine's existing mastering toolchain (noise reduction, EQ, limiting, DSEE)

If you're interested in DpdoDepth's implementation, or want spatial optimization on your SACD master, contact us.