Wednesday, October 21, 2015

Echoes and sound-localization in HeadP version 4.1.3.


An update on the state of HeadP is more than year overdue!  Version 4, July 2014 introduced a major change in sound processing to meet the goals outlined in the original blog  Why headphones don't sound like speakers

The following descriptions refer to version 4.1.3


Echoes (optional) are computed as virtual reflections from 4 walls of a rectangular room. You can alter:
  •  The size and shape of the room
  •  The size, shape and position of the source of the sound
  •  Your position as the listener in the room
  •  The character of the source of the sound with a conventional equalizer

What you hear is the result of adding the direct-path audio to all the echoes. All these signals are stereo, where the stereo separation is the width of the source as viewed from the listener. So 10 signals are added: 2 from the direct-path, plus 2 from each of the 4 walls. The ceiling and floor are ignored in this version.

The original intention was to colour the echoes according to the acoustic properties of the walls. While this should probably be an optional feature, I have not done it, first because users have explicitly said they like it that the sound is NOT coloured by echoes. Also, it would require a fair bit of work on my part, and use significant resources of the device. If this is a feature that you would like, please let me know. I will do it if enough people want it!


A problem with adding 10 signals is that the peak amplitude could potentially reach the sum of the signal amplitudes (though reaching that peak is extremely unlikely). To avoid any possibility of corruption, HeadP  is forced to reduce the volume to avoid any possibly of clipping the output.

Some devices now offer 24-bit output. This is a solution to the problem, to be supported by a future version. I would start work now if there were more of you!


HeadP   uses a unique “Head-Related-Impulse-Response” function to generate a perception of “where the sound is coming from”.  Each of the 10 signals has a direction at the listener, and is individually processed by this response function at each ear. So if you have 2 ears, you hear the sum of 20 individual signals.

This response function is based on a very approximate physical model of a head and ears, with shadowing, diffraction, and timing-difference effects. Although the model is adjustable, I find the adjustments do not have much effect. It is an interesting question of perception. I believe the brain will use any consistent information available, of whatever sort, to infer a location of sound.

In particular, one could ask “why do we have ears?” (I refer to that external visible flap of flesh, the pinna or auricle). The pinna of a hunting animal, like a cat or wolf, is fairly obviously a directional instrument. But the geometry in people is different.

I find that HeadP  gives me a clear perception of sound to one side, or behind me.  If my pinna are at least partly shaped to warn me of danger, maybe especial detection of sound to one side or behind is expected, since we rely on forward-facing eyes to spot trouble ahead.

No comments:

Post a Comment