[Résolu] AudioMixer : Question sur la plage Db

Questions à propos de la partie audio, y compris les problèmes de script s'y rapportant.
Avatar de l’utilisateur
Skelnox
Messages : 92
Inscription : 23 Déc 2015 10:03
Localisation : Avec la grande Faucheuse
Contact :

[Résolu] AudioMixer : Question sur la plage Db

Message par Skelnox » 28 Déc 2015 22:46

Bonsoir,

En poursuivant le manuel (Spriting API avec pour compléter) j'ai commencé la lecture de la partie Audio (commencé, très loin d'avoir fini le tour) et j'en suis arrivé à l'AudioMixer. Je dois avouer que pour gérer de multiple AudioSource en un et même point c'est un bonheur. Mais un détail me taquine. Je suis loin d'être calé en Audio de manière général, donc passer du classique - 0 = pas de son - et - 1 = son à fond - , à cette barre de Db, là je suis un peu perdu. J'ai réussi via un script + un slider et donc l'AudioMixer (celui de l'ui canvas...) à gérer le volume en faisant bouger le slider.

Note : Je le met quand même, mais c'est la base même pour contrôler le volume par script dans le mixer. (J'appel la méthode depuis les paramètres "On Value Changed (single)" sur le slider dans l'inspecteur)

Code : Tout sélectionner

    public void SetMusicLvl(float musicLvl)
    {
        masterMixer.SetFloat("musicVol", musicLvl);
    }
Mais dans l'AudioMixer le son à 0 revient à mettre à -80db et donc pour un son normal je met à -10db (on peut mettre à 0 aussi mais la différence sur le slider ne se fait pas ressentir). Mais le hic c'est que, sur le slider, à peine 15%/20% du slider descendu le son est déjà inaudible (mais toujours là si on fait cracher la molette des enceinte à fond sur la droite). Donc les 75% / 80% il y a bien trop.

Je ne suis pas sûr si je me ferais bien comprendre, mais n'y a t-il pas un moyen, un paramètre (ou plusieurs) afin d'avoir un maximum et minimum un peu comme l'habituel 0 et 1 qui définissait les minimums et maximums si l'ont gérait le son directement sur l'AudioSource ?

Je suis bien perdu pour ce détail, j'oublie peut-être un petit truc ou cela se trouve je ne pense pas dans le bon sens avec l'AudioMixer.
Je vais continuer à tâter et faire des essais d'ici là qu'une réponse arrive.

Merci d'avance.
Skelnox

--


Edit : Problème résolu. Je vous met le code, si cela peut intéresser quelqu'un (ou si quelqu'un trouve qu'il peut y avoir mieux que ce que j'ai là, je serais preneur :super: )
Merci à IntDev(je n'aurais pas pensé à faire une conversion des décibels en float linéaire)

Code : Tout sélectionner

    public void SetMusicLvl(float musicLvl)
    {
        float dB = 20f * Mathf.Log10(Mathf.Pow(musicLvl, 2f));

        if (float.IsInfinity(dB)) { dB = -80f; }

        masterMixer.SetFloat("musicVol", dB);
    }
Lorsque ta vue veut pénétrer trop loin dans les ténèbres, il advient qu'en imaginant tu t'égares

Répondre

Revenir vers « Audio, musique et sons »