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

Windows Forms Discussion :

[C#]Récupération informations audio


Sujet :

Windows Forms

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut [C#]Récupération informations audio
    Bonjour,

    Et meilleurs voeux pour 2009

    Je cherche à récupérer les informations audio provenant du périphérique d'enregistrement standard (micro).
    Mon but est par la suite d'opérer une transformée de fourrier rapide pour séparer les bandes de fréquence.

    J'ai lu des centaines de liens sur le net, j'ai examiné les tutoriaux, et je "nage dans la choucroute", si vous me passez l'expression.

    En effet, mon problème, c'est qu'on trouve maintenant pas mal d'infos sur C#, mais qu'il y a des tas de méthodes complètement obsolètes. C'est très difficile de s'y retrouver et de faire le tri, surtout que les dates ne figurent pas toujours sur les documents.

    J'ai lu que Directshow n'était pas en code managé, puis j'ai lu qu'il était obsolète, j'ai lu aussi qu'il fallait passer par "quartzTypeLib" (?) etc.

    Bref, au final, je ne suis pas plus avancé, j'ignore comment "bêtement" récupérer les informations issues de l'entrée de ma carte son.

    Si quelqu'un peut m'aider, je lui en serais reconnaissant.

    Merci d'avance, et bonne continuation à tous
    Claude

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 217
    Points : 253
    Points
    253
    Par défaut
    Je ne sais pas ce que ça vaut , mais j'ai fourni un pointeur vers une ressource pour une problématique similaire, dans ce post :

    http://www.developpez.net/forums/d66...t/#post3898200

    (depuis un vieux bookmark qui trainait dans un de mes navigateurs..)

    'HTH

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut
    Salut

    Merci beaucoup.

    Effectivement, ça semble correspondre à ce que je recherche.
    je télécharge tout ça et j'examine attentivement.

    Encore merci

    A+
    Claude

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour,

    Bon, après lecture et examen, il semble que les différents packages proposés couvrent la plupart des besoins d'applications audio classiques.

    Cependant, restent quelques inconvénients, par exemple l'impossibilité de récupérer les valeurs de la transformée de Fourrier.

    Donc, cet ensemble va m'aider beaucoup pour certaines de mes applications, mais je souhaiterais quand même si c'est possible une solution classique (dans le sens : routine à intégrer à mon code) pour mon problème :

    comment lire les valeurs brutes arrivant sur l'entrée de la carte audio? Tout "bêtement".

    C'est si complexe que ça pour qu'on ne trouve aucun bout de soft?

    Merci
    Claude

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 217
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par ClaudeBg Voir le message
    [...]comment lire les valeurs brutes arrivant sur l'entrée de la carte audio? Tout "bêtement".

    C'est si complexe que ça pour qu'on ne trouve aucun bout de soft?
    Ma foi, j'en connais probablement moins que vous sur le traitement du signal audio en entrée, que ce soit sous .NET ou autre, mais en creusant un peu, on trouve quand même d'autres ressources dans lesquelles le "bout de soft" auquel vous faites allusion doit se trouver ; p.ex :

    http://secure.codeproject.com/KB/aud...akMeterCS.aspx

    Je n'ai pas vérifié : ce n'est peut être pas 100% open source, mais si le code pertinent principal pour vous est en .NET/C# etc quelque part dans un assembly sans sources fournis... il vous restera quand même une chance d'adapter à vos besoins, moyennant un peu de reverse engineering à l'aide de Reflector (à moins que cela soit l'objet d'obfuscation...)

    Bon courage.

    'HTH

  6. #6
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Citation Envoyé par ClaudeBg Voir le message
    Bonjour,

    Et meilleurs voeux pour 2009

    Je cherche à récupérer les informations audio provenant du périphérique d'enregistrement standard (micro).
    Mon but est par la suite d'opérer une transformée de fourrier rapide pour séparer les bandes de fréquence.

    J'ai lu des centaines de liens sur le net, j'ai examiné les tutoriaux, et je "nage dans la choucroute", si vous me passez l'expression.

    En effet, mon problème, c'est qu'on trouve maintenant pas mal d'infos sur C#, mais qu'il y a des tas de méthodes complètement obsolètes. C'est très difficile de s'y retrouver et de faire le tri, surtout que les dates ne figurent pas toujours sur les documents.

    J'ai lu que Directshow n'était pas en code managé, puis j'ai lu qu'il était obsolète, j'ai lu aussi qu'il fallait passer par "quartzTypeLib" (?) etc.

    Bref, au final, je ne suis pas plus avancé, j'ignore comment "bêtement" récupérer les informations issues de l'entrée de ma carte son.

    Si quelqu'un peut m'aider, je lui en serais reconnaissant.

    Merci d'avance, et bonne continuation à tous
    Claude

    Bonjour.

    Vous recherchez une bibliothèque d'acquisition audio.

    Directshow n'est pas obsolète loin de là. QuartzTypeLib est un wrapper pour les librairies Directshow à la sauce pInvoke. C'est juste pour utiliser Directshow directement dans du code .net. Ca demande donc de connaître le fonctionnement de Directshow.

    Directshow demande un temps d'apprentissage assez long pour bien le maîtriser. Et le faire en .net demande en plus des connaissances en pInvoke.
    Mais il existe dans les samples du SDK, des bouts de code assez simples pour débuter dans l'acquisition audio.

    Je ne connais vraiment bien que Directshow, mais il existe d'autres librairies (FMod, OpenAl, etc...). Honnêtement je ne les connais pas assez pour dire si elles répondent à votre demande en terme d'acquisition.

    Si vous souhaitez récupérer le flux audio et faire des transformations dessus, alors Directshow est tout indiquée.

    Citation Envoyé par ClaudeBg Voir le message
    C'est si complexe que ça pour qu'on ne trouve aucun bout de soft?
    Si vous connaissiez toute la machinerie qui se met en place pour de l'acquisition, alors oui.

    Quelques exemples : carte audio de différentes marques, avec différentes caractéristiques, différents drivers. Gestion du streaming audio multithreadé avec synchronisation à la nanoseconde. Concept d'interruption matérielle, implication/bufferisation mémoire, lock des ressources, et j'en passe et des meilleures.

    Mais heureusement qu'il existe des librairies...

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour,


    Je n'ai pas vérifié : ce n'est peut être pas 100% open source, mais si le code pertinent principal pour vous est en .NET/C# etc quelque part dans un assembly sans sources fournis... il vous restera quand même une chance d'adapter à vos besoins, moyennant un peu de reverse engineering à l'aide de Reflector (à moins que cela soit l'objet d'obfuscation...)
    J'ai téléchargé, merci

    Directshow n'est pas obsolète loin de là. QuartzTypeLib est un wrapper pour les librairies Directshow à la sauce pInvoke.
    Ah, d'accord. Je vois le principe.

    Ca demande donc de connaître le fonctionnement de Directshow.
    Et effectivement, je ne l'ai strictement jamais utilisé.
    C'est la première fois que je me retrouve confronté à une application de ce type, et je débute de plus en C# (c'est mon troisième programme réel), je cumule donc deux problèmes.

    Mais il existe dans les samples du SDK, des bouts de code assez simples pour débuter dans l'acquisition audio.
    Je vais examiner ça. Mon soucis principal au démarrage de cette réalisation, c'est que maintenant sur le net on trouve plein d'infos qui ne précisent pas le contexte ni l'époque (framework 1 etc). Du coup, il est parfois difficile de savoir si une explication est plus récente ou plus ancienne qu'une autre, et quelle est la meilleure façon d'aborder le problème.

    Je ne connais vraiment bien que Directshow, mais il existe d'autres librairies (FMod, OpenAl, etc...). Honnêtement je ne les connais pas assez pour dire si elles répondent à votre demande en terme d'acquisition.
    D'accord, j'irai aussi rechercher ces librairies, maintenant que j'ai leur nom.

    Si vous souhaitez récupérer le flux audio et faire des transformations dessus, alors Directshow est tout indiquée.
    Si ça m'est possible, je vais alors quand même essayer de m'y retrouver dans directshow, puisque ça semble le bon choix.

    Si vous connaissiez toute la machinerie qui se met en place pour de l'acquisition, alors oui.
    Non, pour l'instant à ce niveau, je suis au stade 1 : recherche d'informations.
    C'est un sujet où il ne semble pas simple de trouver des informations claires et des tutoriaux, contrairement aux autres sujets que j'ai rencontrés.

    Quelques exemples : carte audio de différentes marques, avec différentes caractéristiques, différents drivers. Gestion du streaming audio multithreadé avec synchronisation à la nanoseconde. Concept d'interruption matérielle, implication/bufferisation mémoire, lock des ressources, et j'en passe et des meilleures.
    Je connais plusieurs de ces principes généraux pour les avoir utilisés à plus bas niveau (développement en C sous unix et "assembleur" sur Amiga), mais rien en ce qui concerne C# sous framework 3.

    De nouveau, j'ai pensé qu'il y avait une couche implémentée dans le framework qui rendait tout ça transparent pour l'utilisateur. Après tout, on retrouve le même style de contraintes pour un port ethernet ou serial, ou pour l'ouverture d'une fenêtre, mais on n'a pas à se préoccuper des verrous, signaux et autres sémaphores lorsqu'on travaille en C# sur ces ressources.

    Maintenant, je commence à appréhender où réside la difficulté.

    Mais grâce aux interventions reçues j'ai maintenant plusieurs bonnes pistes de travail, et je vais pouvoir avancer sur ce projet (doucement, parce qu'en fait je suis contraint dans le même temps d'avancer sur une application de domotique, complètement différente, je partage donc mon temps de travail)

    Encore merci à tous, j'examine et j'étudie tout ça, et au final il est fort probable que j'aurai encore quelques questions plus précises à poser.



    Claude

  8. #8
    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
    Points : 5 195
    Points
    5 195
    Par défaut
    slut, tu peux aussi te faire un petit moteur audio en asio
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  9. #9
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Bonjour.

    Directshow conviendra si le C++ ne pose pas de problème.

    http://moldavi.developpez.com/tutorial/diretcshow1/

    DirectShow permet de s'abstraire d'une grande partie des difficultés citées ci-dessus. Il peux être complexe parce qu'il permet une gestion très fine des applications multimédias.

    A vous de voir si où se situe le degré de maîtrise du sujet. Une librarie plus haut niveau mais plus souple, si elle existe et si elle permet de traiter le problème, sera parfois souhaitable.

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour,
    --------

    Directshow conviendra si le C++ ne pose pas de problème.

    Je ne connais pas le C++
    J'irai cependant jeter un oeil sur ton site, merci.

    slut, tu peux aussi te faire un petit moteur audio en asio
    Merci, je vais également me renseigner là-dessus.

    A+
    Claude

  11. #11
    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
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    ce que tu peux faire :

    etape 1 : telecharger le SDK ASIO de steinberg

    Etape 2 : coder un petit moteur audio (simple,il y a un exemple avec le sdk)

    (utiliser Asio4All comme driver générique)

    Etape 3 : faire un wrapper pour récupérer les données provenant du code C++

    Pour info, j'ai déja fait cela en C++ + C++/CLI + C# mais ayant vendu le code, je ne peux le diffuser !!! désolé !
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour,


    Ok, merci à tous.
    J'examine tout ça, je digère, puis je reviens poser des questions si nécessaire.



    Claude

Discussions similaires

  1. Récupération informations client léger
    Par bastien.hug dans le forum W4 Express
    Réponses: 2
    Dernier message: 02/02/2009, 10h54
  2. récupération informations fichier $_FILES
    Par mayers dans le forum Langage
    Réponses: 2
    Dernier message: 13/08/2008, 10h17
  3. [AJAX] Récupération fichier audio
    Par f56bre dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/05/2008, 16h59
  4. Récupération informations mémoire Oracle 9i
    Par nicotine78 dans le forum Oracle
    Réponses: 5
    Dernier message: 19/09/2007, 10h05
  5. [Linux] Récupération informations System
    Par chakib32 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 05/07/2005, 14h33

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