Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Spatialisation du son  (Lu 4594 fois)

0 Membres et 1 Invité sur ce sujet

Bigz

  • Full Member
  • ***
  • Messages: 154
    • Voir le profil
    • Bigz.fr
Spatialisation du son
« 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 =)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Spatialisation du son
« Réponse #1 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 ?
Laurent Gomila - SFML developer

Bigz

  • Full Member
  • ***
  • Messages: 154
    • Voir le profil
    • Bigz.fr
Re : Spatialisation du son
« Réponse #2 le: Avril 28, 2012, 11:48:04 pm »
Non, le résultat reste le même.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Spatialisation du son
« Réponse #3 le: Avril 28, 2012, 11:52:29 pm »
Pourrais-tu écrire un petit exemple complet qui permette de reproduire facilement le problème ?
« Modifié: Novembre 07, 2018, 09:33:50 pm par eXpl0it3r »
Laurent Gomila - SFML developer

Bigz

  • Full Member
  • ***
  • Messages: 154
    • Voir le profil
    • Bigz.fr
Re : Spatialisation du son
« Réponse #4 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;
}
« Modifié: Avril 29, 2012, 12:17:23 am par Bigz »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Spatialisation du son
« Réponse #5 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
Laurent Gomila - SFML developer

Bigz

  • Full Member
  • ***
  • Messages: 154
    • Voir le profil
    • Bigz.fr
Re : Spatialisation du son
« Réponse #6 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 ?
« Modifié: Avril 29, 2012, 12:20:22 am par Bigz »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Spatialisation du son
« Réponse #7 le: Avril 29, 2012, 12:22:16 am »
Oui, merci ;)
Laurent Gomila - SFML developer

Bigz

  • Full Member
  • ***
  • Messages: 154
    • Voir le profil
    • Bigz.fr
Re : Spatialisation du son
« Réponse #8 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 :/

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Spatialisation du son
« Réponse #9 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.
Laurent Gomila - SFML developer

Bigz

  • Full Member
  • ***
  • Messages: 154
    • Voir le profil
    • Bigz.fr
Re : Spatialisation du son
« Réponse #10 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

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Spatialisation du son
« Réponse #11 le: Mai 02, 2012, 07:35:35 pm »
Bon, ben écoute chez moi c'est correct, je n'arrive pas à reproduire ton problème :(
Laurent Gomila - SFML developer

Bigz

  • Full Member
  • ***
  • Messages: 154
    • Voir le profil
    • Bigz.fr
Re : Spatialisation du son
« Réponse #12 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 :(

 

anything