Onwards, to Air absorption (proximity)!

So now that I had finished audio level attenuation over distance, it was then onto proximity… Or more specific, air absorption over distance.

After looking into the research for this part of the project I came to the conclusion that the maths for a realistic simulation is hard. Really hard. Way beyond my understanding and knowledge level.

I decided that I was just going to try to do it as realistically as possible, without going into all that complicated “lets just hurt Chris’ head for a few weeks” stuff.

Theory In Practice

Where was I? Oh yes, realistic audio level over distance.

Building upon the applications, the Audio Level over Distance Theory model was implemented into the Max patch. This segment that was created for an earlier experiment has formed most of this Max patch. The experiment was successful and allowed for the Max/MSP patch to not only create a more realistic attenuation model, but to simplify the part of the patch that receives and translates a playable character’s position.

The theory put into practice in this experiment creates a realistic simulation of audio level over distance and will be put into the final Max/MSP created application. An option to switch between the basic version and the theory version of this audio effect will also be implemented, to allow the end-user to compare the differences.

 

——–Application Downloads——–

Mac – Realistic Audio Level using Max/MSP – Mac.zip
Windows – Realistic Audio Level using Max/MSP – Windows.zip

Sorry for the delay

So basically as I’m writing all this up and getting it together I most likely won’t be putting much stuff (if anything) on here for a bit.

I am slightly ahead of the posts put on here work wise, but not to the deadline. So I’m going to get all that sorted first and then I’ll stagger some more posts out when the project is complete.

Nodes are most definitely awesome

After a bit more play around with nodes, I have gotten the players position and the cubes position from the basic audio Unity 3D app mapped nicely onto the node object. Very wizard indeed.

If I have enough time at the end of the project, I will jazz it up a bit and use it as the basic audio over distance model on the final program.

It may also come in handy sooner than that. Although not next on the list, as I’m finishing off level over distance I’m researching more and more into reverb. Unity 3D uses something called reverb zones which are essentially triggers for different reverb settings. Why make something complicated if I can mangle this object to my will and have that create “reverb zones”

Nodes are awesome

Nodes are pretty wizard. I came across them in Max/MSP while working on a UI concept for the final program.

Basically, it’s a Max/MSP object that not only shows a mouse/cursor position on an XY pad… But circular objects can be placed on it too. The objects can be changed in size and can overlap each other. When the cursor is placed within one of these objects, the scale between 0. and 1. will increase/decrease in relation to the distance of the centre point of that circle.

Notice something?

It’s very similar to what I achieved with the basic level model. I may redo that model for the final program using this new method. It certainly looks better, it makes the Max patch more simple and it may save resources too.

 

You want to see the UI I’ve got in mind? Here is what I’m working on…

screen-capture

Where are you?

After weeks, I’ve finally cracked how to receive the location of a static object (currently the ever colourful cube) where an audio source will come from.

The problem was Max/MSP wasn’t updating the location of it when launching the patch, this was because Unity 3D wasn’t sending it any information (it was set to only do so if the object was sleeping, and it only sleeps if its been awake).

I tried waking it up manually, resulting in a horrible mess of jaggery audio (it’s the same script to find the position of the player).

I tried just continuously getting location data, pointless CPU usage and more player position errors.

I tried many other things, non of which worked.

“IT NEEDS TO MOVE. IF ONLY IT MOVED”

…Well move it? I tried, or at least I thought I did. I tried using gravity, to fast and unpredictable. There was no way I could have Unity 3D run the objects movement, because its unstable as I can’t control when people open up the Max/MSP created application. So I ruled out moving it as a possibility.

Then I looked at the basic Max/MSP patch I started the project with. I send it a continuous rotate message. Wait a minute, I sent it a rotate message.

I altered the patch to only rotate the object once, by 0.1. It worked, I could now get the object’s position, which for all intents and purposes of this project hasn’t moved (certainly not enough for any minor changes).

Theory comparison to Proximity plugin

As earlier research stated that with each doubling of distance from the audio source, the volume should attenuate by approximately 6 dB. I decided to compare the result to a very cool plugin called Proximity by Tokyo Dawn Labs and Vladg Sound.

 

The result is…. It works. Very well in fact. They are similar which means that Tokyo Dawn’s Proximity must use the same algorithm as the general free field conditions. Now to make it work with Unity 3D.

Unity 5

Unity 5 has been announced (for perspective the latest one is 4.3.4 and I’m running 4.1.5 for this study).

Some of the main features include a mixing of audio, like properly, and the ability to snapshot and fade between mixes.

It also includes level meters. Something so small but has never been implemented as stock until 5.

Check out the other features of Unity 5 at http://unity3d.com/5

Okay, now that’s pretty cool

This isn’t related to the project per say, but its been announced that FMOD is free for indies under 100k.

That means that small developers now can have to power of FMOD for free… Which basically means guys like me can use FMOD to do more cool things with the audio, with ease*.

http://www.gamasutra.com/view/pressreleases/212681/FMOD_Studio_now_free_for_indies.php

*Shameless Self Promoting Plug: So if you want to let me play about with audio on your project, hit me up.

UPDATE:
WWise is also now free for any project that uses under 200 sound assets.