Forum de la communauté SFML

Aide => Audio => Discussion démarrée par: Bigz le Avril 28, 2012, 09:48:01 pm

Titre: Spatialisation du son
Posté par: Bigz le Avril 28, 2012, 09:48:01 pm
Salut salut !

Je viens de rencontrer un comportement changeant d'un ordinateur à l'autre au niveau de la spatialisation d'un son.

Je faisais des petits tests pour mon moteur et je me suis dis que positionner des sons dans l'espace c'était quand même super chouette. Du coup, me voilà parti à tester tout ça à l'aide des sf::Listener et des différents attributs des sf::Sound.

Jusque là, rien d'anormal, j'ai testé sur un premier ordi de faire déplacer un son de droite à gauche de l'écran pour tester tout ça. J'ai été agréablement surpris de voir (ou plutôt d'entendre) que ça fonctionnait parfaitement. J'entends par là que la puissance du son sur les deux hauts parleurs (écouteurs en l'occurrence) était tout à fait progressive, avec, pour un son à droite, un léger son à gauche et inversement. Grossièrement, j'ai pu entendre 75% de puissance sonore à droite et 25% à gauche.

Bref.

J'ai tenté la même chose sur un autre ordinateur, or, le comportement de ce programme y est bien différent. Lorsqu'un son est à "droite" je ne l'entends que du haut parleur de droite, et inversement. Bien que la puissance du son y soit aussi progressive lors d'un déplacement, on se retrouve néanmoins dans une situation de "tout ou rien", soit c'est à gauche, soit c'est à droite, ou les deux si on est pile dans l'axe du listener.

Je cherche donc quelques infos sur ce sujet, de la part de Laurent ou autres connaisseurs.

Info pratiques : J'utilise la RC SFML 2.0, Windows 7 64 bits, compilation en 32 bits et mes drivers audio sont à jour sur les deux machines.

Voilou, si quelqu'un a une info là dessus ...

Merci à vous =)
Titre: Re : Spatialisation du son
Posté par: Laurent le Avril 28, 2012, 10:41:28 pm
Est-ce que ça change quelque chose si les sons n'ont pas la même coordonnée Z que le listener ?
Titre: Re : Spatialisation du son
Posté par: Bigz le Avril 28, 2012, 11:48:04 pm
Non, le résultat reste le même.
Titre: Re : Spatialisation du son
Posté par: Laurent le Avril 28, 2012, 11:52:29 pm
Pourrais-tu écrire un petit exemple complet qui permette de reproduire facilement le problème ?
Titre: Re : Spatialisation du son
Posté par: Bigz le Avril 29, 2012, 12:06:46 am
Voilà le code minimal !

#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(1024,768), "Sound Test", sf::Style::Close);
    window.setFramerateLimit(20);

    sf::Listener::setPosition(512.f, 384.f, 0.f);
    sf::Listener::setDirection(0, 0, 1);

    sf::SoundBuffer buffer;
    buffer.loadFromFile("son.wav");

     sf::Sound sound;
     sound.setBuffer(buffer);
     sound.setMinDistance(256);

    int i = 0;
    sf::Event event;
    while (window.isOpen())
    {
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
            {
                window.close();
            }
        }
        sound.setPosition(sf::Vector3f(i, 384,1));
        sound.play();
        i += 10;

        window.display();
    }
    return 0;
}
Titre: Re : Spatialisation du son
Posté par: Laurent le Avril 29, 2012, 12:16:42 am
Ce serait mieux si l'exemple n'était pas dans le cas particulier que j'ai évoqué juste au-dessus :P
Titre: Re : Spatialisation du son
Posté par: Bigz le Avril 29, 2012, 12:17:56 am
Ouais oh, c'est qu'un petit 0 à changer par autre chose :p

Néanmoins, j'ai édité le code pour qu'il soit légèrement décalé sur l'axe Z. Mais est-ce suffisant ?
Titre: Re : Spatialisation du son
Posté par: Laurent le Avril 29, 2012, 12:22:16 am
Oui, merci ;)
Titre: Re : Spatialisation du son
Posté par: Bigz le Mai 02, 2012, 01:36:58 pm
Une idée Laurent ?

J'imagine assez facilement que ce comportement est différent selon la carte audio. Et à l’instar des cartes ATI qui demandent une programmation plus rigoureuse sur de l'openGL, je ne serait pas étonné d'avoir à faire la même chose sur de l'audio.

J'ai cherché un peu à droite à gauche mais je reste bredouille pour l'instant :/
Titre: Re : Spatialisation du son
Posté par: Laurent le Mai 02, 2012, 01:45:31 pm
J'ai pas encore eu le temps de tester, désolé, mais je vais essayer de voir ça rapidement.
Titre: Re : Spatialisation du son
Posté par: Bigz le Mai 02, 2012, 02:56:45 pm
Pas de soucis ! Et pas besoin de te presser non plus, c'est loin d'être dramatique :P
Titre: Re : Spatialisation du son
Posté par: Laurent le Mai 02, 2012, 07:35:35 pm
Bon, ben écoute chez moi c'est correct, je n'arrive pas à reproduire ton problème :(
Titre: Re : Spatialisation du son
Posté par: Bigz le Mai 02, 2012, 09:32:14 pm
Hm, j'ai trouvé d'où venait le problème. Du coup jvais passer pour un débile, mais sur le changement de pc, j'ai pas check que j'avais pas les dlls qui suivaient correctement. Du coup comme j'ai pas eu de message d'erreur type "il vous manque la dll openal32.dll", j'ai pas fais attention :( Et fatalement, j'ai une vieille dll windows perdu qui a été utilisée et non celle que tu fourni...

Shame on me :(