< Back to IRCAM Forum

6DOF motion tracking with Spat

Hi all, I am trying to create a navigable audio scene using spat. Has anyone made DIY head tracking with 6DOF? I have pitch/yaw/roll sensors connected to spat and works fine. Suggestions for 6DOF tracking setup would be appreciated. Is near-field binaural a better option than normal binaural decoding for this purpose? I have a patcher containing sofa loader and the hrtf is sent to spat5.spat~ and hoa.binaural~. hoa.binaural~ is in another patcher. Loading sofa takes around 10 seconds. Why does it take so long? Also, can I expect multiple listener option in new updates?

Thanks

Hi,

Has anyone made DIY head tracking with 6DOF?

I haven’t.

Is near-field binaural a better option than normal binaural decoding for this purpose?

Well, nearfield rendering can be interesting, if sources happen to be in the proximity of the listener’s head.
However, nearfield binaural is a somehow subtle effect. Make sure you have “properly tuned” the reverb first; that will likely be a predominant effect.
Also, be aware that nearfield effect will have a little additional CPU cost.

hoa.binaural~ is in another patcher.

As indicated in the help patcher, spat5.hoa.binaural~ is an unfinished prototype. I strongly recommend not to use it at the moment.
If you want to binaurally decode a HOA scene with Spat, you would first need to decode it for a layout of loudspeakers (e.g. with spat5.hoa.decoder~), then virtualize these loudspeakers (e.g. with spat5.virtualspeakers~).

Why does it take so long?

Because the file is large ? Which file are you using ?
SOFA data might be compressed, so it will take a short time to decompress; then, upon loading HRTF data, Spat builds a kd-tree to accelerate future query in the HRTF set. That can take a little time as well.

can I expect multiple listener option in new updates

It is unlikely.
But you can build your own patch with multiple renderers.
In which object(s) would you expect such a multiple listener option ?

Best,
T.

I use “IRC_1102_I_HRIR_48000.sofa” or “IRC_1108_I_HRIR_48000.sofa”. I would like to load a sofa file when the patch is opened. How can I do it?

Idea is have multiple listener in the same sound filed. Of course, this would be multiple amount of processing simultaneously. But instead of having multiple renderers, it would be cool to have changes in viewer in a way that we have one view page with multiple listeners and another view page for individual listeners. Changes would reflect in Viewer, Oper, Spat. For example is listener count is 2 and panning is set to binaural, then Spat would have 2 stereo outputs.

I recommend that you use IRC_110*_I_SOS12_48000.sofa or IRC_110*_I_SOS24_48000.sofa instead. SOS files are lightweight, so they should load faster. Also the rendering will be more CPU efficient.
To load a file when the patch is opened, you could just loadmess /hrtf IRC_1102_I_SOS12_48000.sofa, or something similar (and connect this message to the appropriate spat object).

I will give the “multiple listeners” some thoughts. But again, it’s rather unlikely to appear in short-term releases.

Best
T.