
How Surround Sound for Headphones Works - vinhnx
http://hajo.me/blog/2014/12/28/how-surround-sound-for-headphones-works/
======
fxtentacle
i didn't submit it yet because the article wasn't 100% ready .. but in any
case:

Feel free to ask me about it :)

~~~
jcr
Hajo, the article very reads well, so don't worry about it not being "100%
ready".

I may have missed something that was written, but I wanted to know if you
isolate the sound that is __only__ on the given channel before applying your
filters? (i.e. isolation through sound inversion to silence everything but the
sound that is unique to the channel)

Though it's not exactly related, Alexandre Ratchov and Jacob Meuser (and
others) have built the amazingly impressive audio features of OpenBSD
including sndio(7), sndiod(1), audio(4), audioctl(7), mixerctl(7) and so
forth. I've got a hunch that you might really enjoy studying their work.
Warning: If you dig into the OpenBSD sound system, you'll probably like it
enough to never run any another OS.

[http://www.openbsd.org/cgi-
bin/man.cgi?query=sndio&section=7](http://www.openbsd.org/cgi-
bin/man.cgi?query=sndio&section=7)

[http://www.openbsd.org/cgi-
bin/man.cgi/?query=sndiod&section...](http://www.openbsd.org/cgi-
bin/man.cgi/?query=sndiod&section=1)

[http://www.openbsd.org/cgi-
bin/man.cgi?query=aucat&section=1](http://www.openbsd.org/cgi-
bin/man.cgi?query=aucat&section=1)

[http://www.openbsd.org/cgi-
bin/man.cgi?query=audio&section=4](http://www.openbsd.org/cgi-
bin/man.cgi?query=audio&section=4)

[http://www.openbsd.org/cgi-
bin/man.cgi?query=audioctl&sectio...](http://www.openbsd.org/cgi-
bin/man.cgi?query=audioctl&section=7)

[http://www.openbsd.org/cgi-
bin/man.cgi?query=mixerctl&sectio...](http://www.openbsd.org/cgi-
bin/man.cgi?query=mixerctl&section=7)

[http://undeadly.org/cgi?action=article&sid=20120401171457](http://undeadly.org/cgi?action=article&sid=20120401171457)

[http://2010.asiabsdcon.org/papers/abc2010-P1B-paper.pdf](http://2010.asiabsdcon.org/papers/abc2010-P1B-paper.pdf)

[http://en.wikipedia.org/wiki/Sndio](http://en.wikipedia.org/wiki/Sndio)

~~~
fxtentacle
Thanks for the OpenBSD links :)

No, currently I do not do any sound isolation. The reason is that I want the
virtualization to be as unobtrusive as possible.

------
joblessjunkie
Headphone surround sound (including recordings made with a binaural "head"
microphone) can be very convincing until the listener moves his head.

The sounds don't change to match the head motion, and this kills the illusion.

~~~
fxtentacle
Absolutely correct. I'm also working on real-time compensation with the Oculus
Headtracker ;) but that won't be ready until a few months from now ...

------
DiabloD3
I'm sorry, but surround sound for headphones (defined as: HRTF
implementations) don't work. What does work? Actual binaural recordings made
with dummy head recordings.

Trying to reprocess 5.1 surround into either a) making it sound like I'm
there, or b) making it sound like I'm listening to a 5.1 audio system, has
never worked for me. Dolby Headphone is the least objectionable one of them,
but it just mangles audio.

I wish someone would try to do Ambisonics-like calculations to try to bake 5.1
into working surround sound. I'd even pay for it (for, say, a faux passthrough
driver on Windows that outputs to your default sound card).

~~~
acjohnson55
I thought your comment was unnecessarily downvoted, but I also don't think you
provide much information.

A dummy head recording has the downside that it's no longer fully suitable for
playback over anything besides headphones. Also, it is dependent on the HRTF
of the dummy matching that of the listener.

I'm not sure Ambisonics [1] would work for 5.1 sound. In most cases, 5.1 isn't
produced by mic'ing in the directions of the ideal 5.1 speaker placement (at
least for movies and music, I don't know anything about 5.1 production for
video games). Typically, the L and R channels are used for directional sound,
the C is used for dialog and other things that might be corrupted by panning,
and the surround and bass channels are used for (weakly directional) ambient
sound. So trying to 3-D pan the surround channels will probably just muddle
the effect.

Really, the best thing would be to actually record or synthesize in the
Ambisonic format, and resynthesizing based on the playback setup. But a 5.1
recording, even one created with a 5.1 rig, is poorly suited for this.

[1] For those who aren't aware, Ambisonics is a a format for storage of 3-D
recordings, independent of the mic and speaker placements at the time of
recording and playback. If the mic positions are known, you can project the
raw recorded signals from multiple mics onto a neutral format. Likewise, if
the speaker positions are known at playback time, the neutral format can be
projected onto the proper signals for the playback setup to best simulate the
recorded soundfield. Ideally, the recording and playback setups are optimized
to capture the full 3-D soundfield.

~~~
DiabloD3
What someone awhile back had suggested (and I can't find the article now) is
using virtual playback of 5.1 audio and doing Ambisonic-like math to produce
the proper directional cues.

As in, it wouldn't be a cohesive audiofield in of itself, it merely would be
like standing in front of a 5.1 system.

I think the trick was using headphones as a very wide stereo dipole system,
and just doing all the timing correctly (ie, lesser than full scale HRTF). Due
to how 5.1 systems are positioned (30 degrees between L and C, C and R, and 60
between L and R), there isn't much you can do to get this correct.

~~~
acjohnson55
Yeah, people already do that with 5.1 headphone surround sound. That's not
really Ambisonics-like math, because Ambisonics doesn't attempt to do anything
with the timing differences. In fact, I haven't really ever heard much about
playback of Ambisonics signals over headphones. The whole idea is reproducing
the soundfield in open space, which would be experienced by your head within
that space.

------
balls187
Nice write up. I installed the app to give it a whirl. Admittedly I haven't
tried it with movies yet, but it gives a "warmer" sound to my Spotify tracks
while using my Polk ANC headphones.

I went to purchase the product, but not sure why it's asking me for my mailing
address?

I'd recommend streamlining the workflow (if possible).

Ask for Email address

Ask to select Payment Type

Then, if credit card is selected:

Name as it Appears on the Card

Credit Card Number

Credit Card Expiry

Credit Card CVS

Billing Address

Billing Phone Number

If I chose to use Paypal, why do you need the mailing and phone number?

~~~
fxtentacle
That's a good question.. and I don't know the answer myself:

The shop site is run by FastSpring because I didn't want to have to deal with
all the VAT weirdness in the EU. Maybe that's why they asked you, so they can
decide wether to charge you VAT or not.

------
coreyja
Just wanted to say I was looking for something like this last week and
couldn't find one for my Mac. Thanks this is awesome! I'll def buy a license
here soon

------
balls187
Just wanted to pass on a note, I watched the new Peanuts trailer, and wow,
what a massive improvement in sound and bass while using your audio plugin.
Going to purchase a license.

------
rasz_pl
does it sound different? yes

does it sound 3d? no

does it sound better? no, unless you pay, then auto suggestion produces
perception of better quality

meh

------
clarry
What's obviously missing is a sample, unprocessed and processed, so that
people can listen to the effect without running any os x crapps..

~~~
fxtentacle
the dude abides ;)

Original:
[http://www.hajoheadphone.com/assets/417586_hybrid_orig.mp3](http://www.hajoheadphone.com/assets/417586_hybrid_orig.mp3)

Virtualized:
[http://www.hajoheadphone.com/assets/417586_hybrid_hahe.mp3](http://www.hajoheadphone.com/assets/417586_hybrid_hahe.mp3)

~~~
Groxx
Think you could make one without the heavy equalizer changes? It's hard to
compare apples to apples :\

