My work and that of a colleague (Dr Adam Hill) is being featured as an impact case study for the upcoming Research Excellence Framework 2021 (REF2021). My work was previously featured as a case study in the last REF, too, as it happens (in REF2014). Here’s a video of a presentation we made to the rest of the University to let them know what we get up to. Further details can also be found at https://www.derby.ac.uk/research/showcase/audio-engineering-research/
New server……I’m alive!
This year’s Sounds in Space was our most successful yet! We ran a two day event, with some really excellent demonstrations and talks. The videos that were streamed live are now available on YouTube, with links to each talk and the corresponding slides available on the Sounds in Space 2018 page . Attached to this post are also some photos from the day!
Read more for the pics, below!
A couple of weeks ago, I presented at the 4th International Conference on Spatial Audio in Graz, Austria (and it was a great event, too!)
The paper I presented was: Analysis of Binaural Cue Matching Using Ambisonics to Binaural Decoding Techniques.
In the presentation, I demonstrated the performance of the algorithm by looking at inter-aural time and level differences between the ears of a centrally seated listener at different order (1st to 35th order), and a number of people asked if they could get access to the animations I presented at the event. You can find them linked on a simple webpage below. If the GIFs don’t sync, just go back and forward to the page again. Once the GIFs have all been cached by your browser (1st time you load it), opening the page again should start them all at the same time!
Note, these probably won’t play as well on mobile devices (too many GIFs!)
Well, we had a lovely time at Sounds in Space again, this year. Thanks to all who contributed to the day (guests, presenters, poster peeps and generous sponsors!). I’ll be uploading and sharing presentations/videos from the day, soon, but in the meantime, here are some pictures (some of the 360 pics are better viewed via the link below).
Tomorrow we’re holding our annual Sounds in Space Research Symposium. This year we’ve decided to stream the entire event on both YouTube and Facebook using binaural audio (well, Ambisonics to binaural as it happens). The event is 9.30am (GMT+1) until around 5.00pm. If you’re interested in watching the events, here’s the links:
It’s looking like it’ll be a great day, so do tune in 🙂
EDIT: You can download a JS effect (for Reaper) that does the conversion from ambiX to TBE and another that goes from TBE to 2nd order, 2D, Furse-Malham format here (I’ve included my remapping JS effect too, so you can also go from Furse-Malham to TBE format by converting to that first 🙂 :
Update: September 2017 (from http://pcfarina.eng.unipr.it/TBE-conversion.htm)
NEW Version of the Tools: WigWare AmbiX, FuMa and TBE Tools Sept. 2017 Update
Facebook have updated TBE to remove the ‘R’ component from channel 4. This is important as, before it was removed, it was impossible to go from TBE to 1st order Ambisonics (for Youtube etc.). The new details are excellently discussed on Angelo’s webpage which can be found at http://pcfarina.eng.unipr.it/TBE-conversion.htm
TBE(1) = 0.488603 * Ambix(0); W TBE(2) = -0.488603 * Ambix(1); Y TBE(3) = 0.488603 * Ambix(3); X TBE(4) = 0.488603 * Ambix(2); Z TBE(5) = -0.630783 * Ambix(8); U TBE(6) = -0.630783 * Ambix(4); V TBE(7) = -0.630783 * Ambix(5); T TBE(8) = 0.630783 * Ambix(7); S
Note that going from TBE to horizontal 2nd order FuMa is unchanged (useful for driving my Irregular Ambisonics Decoders 😉
A good timeline and discussion of the issues, and why Facebook changed the encoding, can be found here.
Older Information, pre V2.2 of Facebook Spatial Workstation.
Angelo Farina has published an excellent article detailing how the 9, 2nd order Ambisonic components map to the 8 channels of the Facebook360 TBE format (they decided to pander to the 8-channel limit of pro-tools 🙁 ). All the details can be found at Angelo’s website:
The important bit, for my own notes, is (with added Furse-Malham mapping):
TBE(1) = 0.486968 * Ambix(1) (FuMa W) TBE(2) = -0.486968 * Ambix(2) (FuMa Y) TBE(3) = 0.486968 * Ambix(4) (FuMa X) TBE(4) = 0.344747 * Ambix(3) + 0.445656 * Ambix(7) (FuMa Z+R) TBE(5) = -0.630957 * Ambix(9) (FuMa U) TBE(6) = -0.630957 * Ambix(5) (FuMa V) TBE(7) = -0.630957 * Ambix(6) (FuMa T) TBE(8) = 0.630957 * Ambix(8) (FuMa S)
And, to go from TBE to 2nd order, 2D, Furse-Malham format (as mentioned by Ed, in the comments below):
W = 1.446968601 * TBE(1) X = 2.047502048 * TBE(3) Y = -2.047502048 * TBE(2) U = -1.839587932 * TBE(5) V = -1.839587932 * TBE(6)
TBE is Facebook360 Two Big Ears format
ambiX is the ambiX format used by YouTube Spatial Media (ACN channel order and SN3D normalisation)
FuMa is the Furse-Malham channel ordering and normalisation scheme.
See https://en.wikipedia.org/wiki/Ambisonic_data_exchange_formats for further details on channel ordering and normalisation schemes.
A polar plot of TBE Channel 4 (the combination of the Z and R channels in FuMa speak) can be seen above (click for higher res image).
I’ve been asked a few times what’s the best way to install FFMPEG on a Mac with a decent set of libraries included. Here’s the best way I’ve found (also the most compatible way of installing Python too).
NOTE : If you already use MacPorts as your package manager, don’t use homebrew as well….things will go funny. If you don’t know what MacPorts is, then you’re unlikely to be using it, so the commands below will work fine 😉
It’s been a little while since my last Ambisonics on YouTube post, so I thought I’d share a filter I’ve made to help make YouTube Ambisonics content sound better! As you may have noticed, the audio that comes off YouTube once your spatial, Ambisonic, audio is uploaded is quite coloured compared to the original. This is due to the Head Related Transfer Functions used in the modelling of the system. If the HRTFs exactly model your own hearing system, then we wouldn’t notice it, but as they won’t, you will!
In order to equalise the system, the same EQ curve just needs applying to all the Ambisonic channels equally before uploading to YouTube. So, first, we need to find the average response of the system. There could be a few methods for this, but the simple approach is to pan an impulse around the listener, storing the frequency response each time. Sum these together, and average them in some way (I used an RMS type approach). This is then an ‘average’ response of the system. I then invert this system (adding delay as it’s non-minimum phase) and then decompose the filter into it’s minimum phase only response for the EQ (as that’s all we’re really interested in).
I’ve had a few people ask for me to share the animations from my Surround Audio for VR presentation that I delivered at Sounds in Space this year. I’ve made a video of the powerpoint (30 seconds per slide) so everything can be viewed in context (note there’s no audio, though!). If you weren’t at the event, it goes through both the graphics and audio processing needed to create VR content and shows the limitations, with respect to the inter-aural level (ILD) and time (ITD) differences reproduced by the Ambisonics to Binaural process at varying orders. 8th order Ambisonics does a great job reproducing both the ILD and ITD up to 4kHz.
So, here’s an example (but empty) Reaper project that contains the YouTube binaural filters I measured. You’ll need to use your preferred Ambisonics plug-ins of choice, and I’m assuming FuMa channel ordering etc.. they’ll be remapped by a plug-in.
There is a bundle of JS effects in the folder too, that you’ll need to install (instructions at : http://reaperblog.net/2015/06/quick-tip-how-to-install-js-plugins/) which allow for:
- Ambisonic Format Remapping (FuMa -> ambiX)
- Ambisonic Field Rotation
- Multi-channel Meter
YouTube have now released the official ones they use (but in individual speaker format….not the most efficient way of doing it!), so it’ll be interesting to compare!
As described in a previous post, the ReaVerb plug-in is filtering W, X, Y and Z with a pair of HRTFs which are then simply summed to create the Left and Right feeds.