Loudness

From Unify Community Wiki
(Difference between revisions)
Jump to: navigation, search
(Description)
(JavaScript - Loudness.js)
Line 9: Line 9:
 
<javascript>
 
<javascript>
 
var loudness : float = 1;
 
var loudness : float = 1;
private var oneNinth : float = 1.0 / 9.0;
+
private var sqrtOf10 = Mathf.Sqrt(10);
  
function Update () {
+
// I would not leave this in Update() for a release. 
audio.volume = oneNinth * (Mathf.Pow(10, loudness) - 1);
+
// Put it wherever you need it, to change the volume in-game.
 +
 
 +
function Update ()
 +
{
 +
audio.volume = (Mathf.Pow(sqrtOf10, Mathf.Log(loudness, 2)));
 
}
 
}
 
</javascript>
 
</javascript>

Revision as of 20:27, 8 April 2009

Author: Jessy

Description

Unity's standard volume control uses a "linear taper", and humans hear on a roughly exponential scale. "Loudness", unlike the Audio Source's "Volume", will yield perceptually equivalent loudness changes for equivalent value changes. (Changing the Loudness from 0.2 to 0.3 will yield a similar difference in loudness between 0.7 to 0.8, etc.)

JavaScript - Loudness.js

<javascript> var loudness : float = 1; private var sqrtOf10 = Mathf.Sqrt(10);

// I would not leave this in Update() for a release. // Put it wherever you need it, to change the volume in-game.

function Update () { audio.volume = (Mathf.Pow(sqrtOf10, Mathf.Log(loudness, 2))); } </javascript>

C# - Loudness.cs

<csharp> using UnityEngine; using System.Collections;

public class Loudness : MonoBehaviour { public float loudness = 1; const float oneNinth = (float) (1.0 / 9.0);

void Update () { audio.volume = oneNinth * (Mathf.Pow(10, loudness) - 1); } } </csharp>

Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox