IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#][Gestion du son]


Sujet :

C#

  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut [C#][Gestion du son]
    Bonjour,
    je dois développer une petite application qui doit générer des sons de différentes fréquences et qui peut les envoyer dans l'écouter de droite ou de gauche. Je voudrais juste savoir si quelqu'un peut me dire si c'est possible en C# et, si oui, à partir de quelle classe je peux faire ça.

    Merci beaucoup

  2. #2
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Bonjour,

    A l'époque j'utilisais FMOD. De mémoire, la librairie est facile à utiliser. Elle est beaucoup utilisée dans l'univers du jeu.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    MErci pour ta réponse. J'ai trouvé de la doc sur FMOD mais je n'ai pas vu de fonction pouvant faire passer un son de droite à gauche.

    A+

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    ya pas un balance ou quelque chose comme cela ?

    genre une fonction Pan ?

  5. #5
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    TheMonz,

    je vais regarder de plus près. Tout est en anglais et je m'y perds un peu.

    Merci

  6. #6
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    Bonsoir,

    je viens vous soliciter après avoir beaucoup cherché de mon côté. J'ai cherché sur http://www.fmod.org/docs/ la fonction qui me permettrait de faire passer un son d'un côté à un autre de mes écouteurs mais je n'ai rien trouvé. Est-ce que quelqu'un peut m'aider?

    Merci

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    FSOUND_SetPan

    Non ?

  8. #8
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    theMonz merci pour ta réponse,

    c'était bien ça.
    Je ne veux pas avoir l'air d'abuser et donner l'impression d'attendre la réponse des autres. J'ai cherché comment utiliser la simple FSOUND_Init(44100, 32, 0) mais j'ai le message 'FSOUND_Init' n'existe pas dans le contexte actuel.
    Pouvez-vous m'éclairer? Merci beaucoup


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using FMOD;
     
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                FSOUND_Init(44100, 32, 0);
     
            }
        }
    }

  9. #9
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    En y réfléchissant je me demande si la fonction FSOUND_Init appartient à FMOD. Je pense qu'en tant que débutant, si ca ne marche pas, c'est que j'ai quelques zones d'incompréhension mais je m'accroche.
    Merci

  10. #10
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut

    après plusieurs heures où j'ai essayé pas mal de choses, je commence à voir plus clair. Mais si je suis ici, c'est parce-que j'ai besoin encore d'aide. Je n'arrive pas à sortir de son mais je commence à utiliser les classes de FMOD non sans erreur. Dans le code qui suit, je n'arrive pas à comprendre pourquoi mon programme s'arrête en affichant : PB ----> ERR_INVALID_PARAM 2. Cela veut dire qu'il plante en utilisant setVolume. Même si je mets cette ligne de code en commentaire j'ai une erreur avec setFrequancy et pareil pour setPan. En fait je ne sais pas quoi fournir comme paramètre et je ne trouve rien sur le net. Merci de m'éclairer.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using FMOD;
     
    namespace ConsoleApplication1
    {
        public class Channel
        {
            class gestionSons
            {
                private FMOD.System system = null;
                private FMOD.Sound sound = null;
                private FMOD.Channel channel = null;
                uint version = 0;
                FMOD.RESULT result;
     
                private void ERRCHECK(FMOD.RESULT result, int v)
                {
                    if (result != FMOD.RESULT.OK)
                    {
                        Console.WriteLine("  PB  ----> " + result + " " + v);
                        Environment.Exit(-1);
                    }
                }
     
                public void toutInitialiser()
                {
                    system = new FMOD.System();
                    sound = new FMOD.Sound();
                    channel = new FMOD.Channel();
     
                    result = FMOD.Factory.System_Create(ref system);
                    ERRCHECK(result, 0);
     
                    result = system.init(32, FMOD.INITFLAG.NORMAL, (IntPtr)null);
                    ERRCHECK(result, 1);
     
                    result = channel.setVolume(33.20F);
                    ERRCHECK(result, 2);
     
                    result = channel.setFrequency(12040.44F);
                    ERRCHECK(result, 3);
     
                    float pan = (float)(4) / 512.0f;
                    result = channel.setPan(pan);
                    //result = channel.setFrequency(223.44F);
                    ERRCHECK(result, 4);
     
                }
     
            }
     
     
            static void Main(string[] args)
            {
                gestionSons ngt = new gestionSons();
                ngt.toutInitialiser();
            }
        }
    }

  11. #11
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    J'avance et pour ceux qui sont intéresses je donne un code sans erreur mais cela ne fonctionne toujours pas. Donc, si quelqu'un peut m'aider à y voir clair...
    Merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using FMOD;
    using FMODNet;
     
    namespace ConsoleApplication1
    {
        public class Channel
        {
            class gestionSons
            {
                private FMOD.System system = null;
                private FMOD.Sound sound = null;
                private FMOD.Channel channel = null;
                uint version = 0;
                private static CHANNEL_CALLBACK channelCallback;
                FMOD.RESULT result;
     
                private void ERRCHECK(FMOD.RESULT result, int v)
                {
                    Console.WriteLine("  Passage  ----> " + result + " " + v);
                    if (result != FMOD.RESULT.OK)
                    {
                        Console.WriteLine("  PB  ----> " + result + " " + v);
                        Environment.Exit(-1);
                    }
                }
     
                public void toutInitialiser()
                {                              
                    result = FMOD.Factory.System_Create(ref system);
                    ERRCHECK(result, 0);
     
                    result = system.getVersion(ref version);
                    ERRCHECK(result, 1);
     
                    result = system.init(32, FMOD.INITFLAG.NORMAL, (IntPtr)null);
                    ERRCHECK(result, 2);
     
                    result = system.createSound("C:/Documents and Settings/IEC/Bureau/ConsoleApplication1/ConsoleApplication1/jaguar.wav", FMOD.MODE._3D, ref sound);
                    ERRCHECK(result, 3);
     
                    result = system.playSound(FMOD.CHANNELINDEX.FREE, sound, true, ref channel);
                    ERRCHECK(result, 4);
                    System.Console.ReadLine();
                }
            }
     
     
            static void Main(string[] args)
            {
                gestionSons ngt = new gestionSons();
                ngt.toutInitialiser();
            }
        }
    }

  12. #12
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    dans
    result = system.playSound(FMOD.CHANNELINDEX.FREE, sound, true, ref channel);
    il faut remplacer true par false pour que cela marche. A partir de cet exemple j'ai pu enfin entendre mon premier son en utilisant FMOD. Merci à ceux qui m'ont aidé et si cela peut servir à d'autres et bien tant mieux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. gestion du son
    Par lord anubis dans le forum Allegro
    Réponses: 1
    Dernier message: 29/05/2006, 18h54
  2. Gestion de sons
    Par Ekinoks dans le forum C
    Réponses: 7
    Dernier message: 14/06/2005, 00h54
  3. [TP]Gestion du son
    Par JaVaCode dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 17/12/2004, 21h38
  4. Réponses: 4
    Dernier message: 14/12/2004, 17h37
  5. [flash mx]la gestion du son et de la video
    Par freshguicha dans le forum Flash
    Réponses: 5
    Dernier message: 03/04/2004, 12h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo