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

VB 6 et antérieur Discussion :

Capture de son au micro avec mciSendString


Sujet :

VB 6 et antérieur

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Par défaut Capture de son au micro avec mciSendString
    Bonjour,

    Je voudrais réaliser un programme qui affiche en temps réel sous forme de spectre fréquentiel le son émis dans un micro. Pour le spectre c'est bon (voir algo de la FFT), pour le principe de saisie au micro c'est bon aussi. J'utilise cet algo avec mciSendString :

    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
    Private Sub Bo_Run_Click()
      'Pour capturer
      Nil = ""
      mciSendString "close all", Nil, 0, 0   'Fermeture (au cas où)
      mciSendString "open new type waveaudio alias capture", Nil, 0, 0 'Ouverture du périphérique MCI
      mciSendString "seek capture to start", Nil, 0, 0 'Préparation de la capture
      mciSendString "set capture samplespersec 22050", Nil, 0, 0 'Qualité du son
      mciSendString "set capture bitspersample 8", Nil, 0, 0 'Nombre de bit
      mciSendString "set capture channels 1", Nil, 0, 0 'Nombre de canaux (mono/stereo)
      mciSendString "record capture", Nil, 0, 0  'Capture
    End Sub
     
    Private Sub Bo_Stop_Click()
      'pour enregistrer
      mciSendString "save capture ""Son.wav""", Nil, 0, 0 'Enregistrement
      mciSendString "stop capture", Nil, 0, 0
      mciSendString "close capture", Nil, 0, 0
    End Sub
    Le problème c'est que je voudrais raffraichir le spectre au moins 10 fois par seconde, mais si je demande une capture de moins de 0,5 secondes, le fichier son résultant est vide (44 octets). On dirait qu'il ne veut pas enregistrer une période plus courte. Pourtant quand je demande 0,5 secondes il enregistre pile 0,5 secondes de son. Je comprend pas trop , ça vient de quoi, et que puis je faire ?

    Merci

  2. #2
    Membre émérite
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Par défaut Re: Capture de son au micro avec mciSendString
    Citation Envoyé par Rémiz
    Le problème c'est que je voudrais raffraichir le spectre au moins 10 fois par seconde, mais si je demande une capture de moins de 0,5 secondes, le fichier son résultant est vide (44 octets). On dirait qu'il ne veut pas enregistrer une période plus courte. Pourtant quand je demande 0,5 secondes il enregistre pile 0,5 secondes de son. Je comprend pas trop , ça vient de quoi, et que puis je faire ?

    Merci
    Salut,

    Je ne comprends ce que tu veux dire par raffraichir le spectre ???

    Peux-tu préciser s'il te plait

    Merci

    Théo

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Par défaut
    Salut,

    Ben, je voudrais faire une animation fluide de l'évolution du spectre du son entendu par le micro. Pour ça il faut que je redessine sur ma fenêtre le spectre 10 fois par seconde, et ce en temps réel. Donc le fichier 'Son.wav' doit être recréé 10 fois par seconde.

    Ou pour être plus simple, je dois capturer un echantillon du son du micro de 0,1 seconde 10 fois chaque seconde. Mais j'arrive pas à capturer un echantillon plus court que 0,5 seconde.

  4. #4
    Membre émérite
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Par défaut
    Re,

    C'est peut-ête idiot ce que je vais dire mais tu pourrais peut-être faire plusieurs enregistrements séparés successifs dans le temps et d'une durée de 0.5 seconde.

    Tu tournes sur 6 fichiers wav temporaires que tu décales chacun de 0.1 seconde. Au moment ou tu commences l'enregistrement du 6ème, tu lances le traitement du 1er wav sur 0.1 seconde
    Le traitement doit pas dépasser 0.1 seconde comme cela tu reprends sur ce fichiers 0.1 seconde après le lancement de ton 6ème fichier.

    Et ainsi de suite ...

    Enfin c'est une idée qui m'est passée par la tête

    Avec un schéma simple ça fait çà:

    wav1 I__I__I__I__I__IXXI__I__I__I__I__I
    wav2 ----I__I__I__I__I__IXXI__I__I__I__I__I
    wav3 --------I__I__I__I__I__IXXI__I__I__I__I__I
    wav4 ------------I__I__I__I__I__IXXI__I__I__I__I__I
    wav5 ----------------I__I__I__I__I__IXXI__I__I__I__I__I
    wav6 --------------------I__I__I__I__I__IXXI__I__I__I__I__I

    I__I : enregistrement de 0.1 seconde
    XX : traitement de l'enregistrement

    Voilà mon idée

    Bonne continuation

    Théo

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Par défaut
    Oui, c'est une solution. Sauf que si je fais ça, je vais avoir un décalage de 0,5 secondes entre le moment où le son est émis, et le moment ou il est dessiné...Et ça, c'est très gênant puisque je veux de temps réel...

    N'y a t il pas une option à changer avec Windows, ou avec mciSendString ?

Discussions similaires

  1. Récupérer le son du micro de mon PC avec Java
    Par djbokd dans le forum Multimédia
    Réponses: 6
    Dernier message: 14/10/2014, 16h38
  2. Réponses: 3
    Dernier message: 03/09/2009, 00h07
  3. Capture de son à partir du micro
    Par pelotudo dans le forum MATLAB
    Réponses: 4
    Dernier message: 27/02/2007, 23h44
  4. Capture de son au micro avec DirectSound
    Par Rémiz dans le forum DirectX
    Réponses: 4
    Dernier message: 21/12/2005, 20h00
  5. Raccourcis clavier et capture de sons sous Windows
    Par nek_kro_kvlt dans le forum Langage
    Réponses: 2
    Dernier message: 11/12/2005, 13h15

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