Hello everyone, I’ve been a huge fan of Unity for a while now and I’ve purchased many items from SGT to model kits to shaders/packs etc, and now I believe it’s time for myself to contribute
A small warning that this more than likely will be a somewhat large post from me, so for the brave; continue on!
Firstly, a brief history and the strange trip that lead me here and then I’ll explain what it is, what it’s not and what I hope to accomplish with it.
I initially started working on a game (who isn’t?), but unfortunately being hyper-critical about what I was working on (planetary terrain etc) and the issues that became roadblocks, I quickly found myself neck deep in minutia and unable to focus on the project at hand. Either I wasn’t completely happy with the quality of something or the performance and became increasingly frustrated and unmotivated. So… i did what any good aspiring game developer does, I started (what I thought was going to be) a smaller, more focused project. Something to hone my skills and learn more about Unity. It was to be an overhead, 3rd person networked racing game using your mouse. I had all of my graphical assets in order as well as physics etc etc. What I quickly discovered to my chagrin, was the appalling lack of cyclical sounds. More specifically, engine sounds. Now you may be wondering what the hell I’m talking about. Well, it’s more than just finding, licensing/downloading a car/race engine sound. There is cleanup and looping/cutting to be done, and then trying to figure out the best way to use it at run time. For example, when I ran the Unity car tutorial, it sounded like this:
YUK!. To be honest, I found the pitch changing to be nasty sounding more than a little unrealistic. So, I researched for alternatives, and to be honest, I looked for weeks and found little to nothing. FMOD had something for engines, but I found it so over baked and over engineered for what it was, only to get the results I did, frustrated me even further. I happened to stumble upon REV which was cool, but even that was painful trying to set up a decent ramp, and their demo gives little to no details or help about what it is I was supposed to be doing in their app. I emailed them several times, but never got a response, so, on to the next app. It was decent, but I think they wanted too much money etc, but I started noticing a somewhat similar theme: engine sounds (or cyclically dynamic sounds) seem to be an afterthought.
With FMOD I have to spend many, MANY painful hours trying to find ‘sweet spots’ to find loops etc, and even with some apps allowing me to select zero crossings, still they were almost always non loop able, and THEN having to cut and save and manage and import and tweak etc etc etc. Finally in a fit of frustration, I screamed at the monitor: “there HAS to be a better way! I CAN’T be the only person on earth that’s needed something like this…”. it was then, that I determined what (I thought) it should be after reading so many white papers that I think I’m actually a little blind now:
#1) It HAS to be EASY. Being a solo developer, even IF I’ve been doing this for over 30 years, doesn’t mean I want, or am even capable, of doing everything myself. I take my hat off to those folks, truly. So, the basic premise is to take a wav/mp3 etc and not have to touch it. To be able to let the code/physics engine manipulate the sound from a SINGLE audio file. That way, I cut down a HUGE amount of potential cycles while at the same time increasing the dynamic-ability (hehe couldn’t resist), which leads me to,
#2) It HAS to sound GOOD (or at least plausible).
#3) It shouldn’t cost anyone their left arm or first born children, or some arcane license that will follow them around for the rest of their life.
#4) It HAS to be PERFORMANT.
So, to recap:
What it is: A dynamic C++ run time that utilizes asynchronous grain technology at the DSP level of your sound card, without draining your system of resources. While this technology has been around for ages, little or no real SDK’s exist in the wild and if they do, get ready to have 1 less child, because that’s what it’ll cost you. Most if not ALL examples of companies I found using this tech, have their own locked away proprietary code. Think code masters and the f1 IP. Btw, did I mention, resonance is COMPLETELY non-destructive?
What it’s not: While it can and most certainly DOES play audio files, it’s not simply another player. This has been specifically designed for cyclical sounds that are near impossible to create or obtain nice loops, while maintaining sound fidelity and easing the sound engineer’s nerves.
What I aspire it to become: A cool, cheap, quality API that fills this gap. Funny thing is, during my testing I’ve discovered a few things. This technique would be great for ‘sound atlases’ as well as other types of sounds.
In the video below I provide a prototype for what I’m talking about. ALL the wave files you’ll hear in the video we downloaded from the net. I have done NOTHING to them. Oh, and maybe I’ll make a few bucks as well, otherwise the ole lady won’t let me alone about it
Anyway, if you’ve made it this far, please have a view and be sure to post what you think about this if you have a moment or two. I’ve been working on this nonstop for the last 6 months, so your comments will help me determine what to do next. I in turn will post more goodies as things progress.
Hopefully I don’t sound grandiose and full of myself, but I will be offering the resonance.SUITE. Comprised of the RT/API, FX and Editor.
I will post more about the technical details as well as a breakdown of each component in a bit
-Marionette