Hacker News new | past | comments | ask | show | jobs | submit login
Resonance Audio: Multi-platform spatial audio at scale (blog.google)
41 points by jamest on Nov 6, 2017 | hide | past | favorite | 11 comments



Please, Google, I don't care about related articles while I'm reading this one, bugger off.


Same with YouTube. Why would I possibly click to jump to another video while I'm watching something? Why not wait until the end? Are they trying to train everyone to have ADHD?


I'm poking the docs, can't find an answer for this, so am hoping someone smarter than me can help. For years I've wanted to build audio games on the web (see http://audiogames.net for examples of what I mean.) The resource requirements for these just aren't that intense, so JS/the web seems like an interesting delivery platform, but the Web Audio API's support for what I'd need to do this is...disappointing is the nicest way I'd put it.

My biggest missing feature is a listener/sound source API that renders to 5.1/7.1 surround. Does Resonance do that? Yes I understand that headphones/binaural rendering is ideal, but I have a decent surround system and sometimes I want to put it through its paces. :)

The Getting Started section demonstrates stereo downmixing. Peeking at the API indicates I can pass something called an ambisonic order into some functions, but even the constant for the default gives me no obvious indication of what this means. So maybe this is something audio developers know, but as someone trying to evaluate Resonance, it seems like they've just handwaved around this concept.

And if Resonance doesn't do this, does anything? Even if I compiled to wasm, which is certainly something I'm open to, it looks like the only wasm options are SDL-based, meaning simple stereo and no spatialization. But maybe I've just picked terrible keywords to search for.


Hi!

Thanks for expressing your interest in using Resonance Audio SDK for the Web (formally Songbird). We don't currently offer a 5.1 rendering of the audio as an available option. However, we do offer .ambisonicOutput which outputs ambisonic content directly and this can be rendered to a 5.1 target using 3rd party tools (http://www.radio.uqam.ca/ambisonic/b_g.html). If we see a large need for 5.1 rendering, it may be worth considering posting an issue to Omnitone (https://github.com/GoogleChrome/omnitone/issues) which is our ambisonic renderer on the web. :)


Got it, thanks. Do other platforms support 5.1+? Also, can Resonance be used in wasm projects? Wondering how practical it would be to use binaural output for the web, then recompile and port to native platforms if 5.1+ is needed. Wasm at least would eliminate the need for a rewrite from JS.


Hi! Just to let you know, I've decided to add support for stereo, 5.1 and 7.1 speaker layouts in the Web version of Resonance Audio. https://github.com/resonance-audio/resonance-audio-web-sdk/i... Follow the repo to find out when the work is completed (hopefully soonish :) )


Resonance Audio SDK is available for a variety of platforms, including Unreal, Unity, FMOD, WWISE, Android, iOS, the Web and VSTs. For the web version, it can be made compatible with any other code that uses the WebAudio API. Unfortunately, none of our API current supports multi-channel surround output as you're describing.


> Peeking at the API indicates I can pass something called an ambisonic order into some functions, but even the constant for the default gives me no obvious indication of what this means.

They're likely referring to Ambisonics[1]. Think of Ambisonics as a 3D Mid-Side encoding, and the signal fed to each speaker is calculated from the differences in these components. Contrast the more common surround setup where each channel corresponds to a speaker directly. Something in an ambisonic format can be decoded to the more common 5.1/7.1 formats.

1. https://en.wikipedia.org/wiki/Ambisonics



Indeed. The bird has left the nest. ;)


nice work!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: