Personal HRTF capture — one speaker, a rotating listener
Measure your own head-related transfer functions with blocked-canal microphones in both ears, one fixed loudspeaker and a chair you rotate about a marked head-centre point. A reference sweep with the microphones at the head-centre and your head absent cancels the speaker and microphones out of the result. Each ear pair is captured simultaneously and gated to about 5 ms, so the room drops out and interaural timing is preserved to microseconds. Finish with an optional headphone sweep to compare what the headphone delivers to your ears against your own frontal HRTF.
Each step folds away once it is done; click a heading to reopen it.
1. Microphones, speaker and headphone
Audio devices have not been scanned.
One sample is 20.8 µs at 48 kHz, 10.4 µs at 96 kHz. Interaural timing is refined below one sample, but 96 kHz or higher on the interface is the comfortable choice. The rate in use is reported after the first capture.
2. Geometry and headroom
Headroom: pinna resonances can sit 20 dB above the reference, so the reference sweep should peak near −25 to −30 dBFS. Set the interface gain during the reference and leave it alone for every ear capture.
3. Measurements
Graph
4. Export
- The personal frontal target is the average of both ears at 0°, 1/6-octave smoothed: the curve a headphone should produce at your blocked canal to sound like the frontal speaker. Drop it into any EQ tool as a target.
- The headphone correction is frontal HRTF minus the headphone's response at your ears, smoothed per region as recommended (tight through the ear gain, broad above 4 kHz).
- The SOFA pack holds ready-to-load
.sofafiles (SimpleFreeFieldHRIR) with free-field compensated HRIRs and directional transfer functions (DTFs), at the capture rate and at 48 kHz, written in the browser. Beside them sit the same impulses as stereo WAVs per azimuth,positions.csv, every attribute insofa.jsonand amake_sofa.pythat rebuilds the files with the Pythonsofartoolkit if you want to verify or extend them. - Nothing is kept in the browser between visits: export the project before leaving, and load it again to continue — its captures are added to this session's, so a second sitting can fill in angles or add the headphone step.