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

MFC Discussion :

[MFC] midi


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2004
    Messages
    189
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 189
    Par d�faut [MFC] midi
    Bonjour tout le monde.

    J'ai un probl�me avec certaines m�thodes MIDI de Visual. En effet je dois faire un programme:
    1) recoit un note MIDI.
    2) effectue quelques trucs.
    3) renvoi une note MIDI sur le midi out. Cette derniere note doit etre lue par un autre logiciel. C'est ici que j'ai un probleme.:
    J'ai ouvert le midiOut et je l'ai connecte sur le MidiIn. La fonction de connection me dit que tout c'est bien pass�. MAIS quand j'envoi un message sur le midi out, l'autre logiciel ne recoit rien sur son midi in.

    Que dois je faire pour qu'il recoive????
    Qu'elle methode utilise pour envoye une note midi (pour l'instant j'utilise midiOutShortMsg).

    Enfin j'espere que vous saurez m'aider

    Merci

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    tu as test� le retour de ta fonction ?
    elle retourne MMSYSERR_NOERROR ?

  3. #3
    Membre confirm�
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2004
    Messages
    189
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 189
    Par d�faut
    Oui j'ai test� le retour du connect et de l'envoi du message et tt 2 me disent que ca c'est bien pass�.
    Mais helas ca ne marche po :-(

  4. #4
    Membre confirm�
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2004
    Messages
    189
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 189
    Par d�faut
    voici le code du connect:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ret_val = midiConnect((HMIDI)m_HandleMidiIn,m_HandleMidiOut,0);
    switch(ret_val)
    {
    case MMSYSERR_INVALHANDLE: TRACE("\nConnect MMSYSERR_INVALHANDLE Specified device handle is invalid. ");
    break;
     
    case MIDIERR_NOTREADY: TRACE("\nConnect MIDIERR_NOTREADY Specified input device is already connected to an output device.  ");
    break;
     
    case MMSYSERR_NOERROR : TRACE("\nConnect OK");
    break;
    }
    return true;
    Voici le code pour l'envoi d'un message:

    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
     
    ret_val = midiOutShortMsg(m_HandleMidiOut,0x7F6090);	
    switch(ret_val)
    {
    case MIDIERR_BADOPENMODE: TRACE("\n Out Envoi MIDIERR_BADOPENMODE The application sent a message without a status byte to a stream handle."); 
    break;
     
    case MIDIERR_NOTREADY: TRACE("\n Out Envoi MIDIERR_NOTREADY The hardware is busy with other data. "); 
    break;
     
    case MMSYSERR_INVALHANDLE: TRACE("\n Out Envoi MMSYSERR_INVALHANDLE The specified device handle is invalid. "); 
    break;
     
    case MMSYSERR_NOERROR: TRACE("\n Out OK. "); 
    break;
    }
    Y a t'il une erreur???

    Mon MidiIn est le Midiin de ma carte son et le midiout est le midiout de ma carte son.

  5. #5
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    re,
    essaye �a: (note j'ai pas essay� ! )
    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
     
    //MOD_MIDIPORT : port hardware matérialisant une voie de communication avec des instruments extérieurs
    //MOD_SQSYNTH  : synthétiseur interne de signaux carrés
    //MOD_FMSYNTH  : synthétiseur FM interne. Permet de simuler des instruments de musique
    //MOD_MAPPER   : Microsoft MIDI mapper
     
    int wDeviceID ;
    MIDIOUTCAPS OutCaps ; 
    for(wDeviceID=0 ; wDeviceID<NbreDevs ; wDeviceID++)
    {
     
     midiOutGetDevCaps(wDeviceID, &OutCaps, sizeof(OutCaps) ) ;
     if( OutCaps.wTechnology==MOD_MIDIPORT)  break ;
     
    }
    HMIDIOUT hMidiOut ; 
    midiOutOpen( &hMidiOut, wDeviceID, NULL, NULL, NULL ) ;
     
    int ret_val = midiOutShortMsg(hMidiOut,0x7F6090);  
    // ton code de test...
     
    /* Son Off: 0x0000nn8c*/
    midiOutShortMsg(hMidiOut,0x0000nn8c) ;
     
    midiOutClose(hMidiOut) ;
    pense aussi a voir du cot� de midiOutSetVolume on sait jamais...

  6. #6
    Membre confirm�
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2004
    Messages
    189
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 189
    Par d�faut
    Merci pour le code je l'ai test� mais helas ca ne va quand meme po.
    Ce qui est encore plus bizar c'est que quand je ne fais pas le connect et que je branche mon midiout a mon midiin avec un cable (donc de fa�on hardware) ca ne marche pas non plus, pourtant je ne fais que envoye sur le port out et le logiciel qui est de l'autre cote n'a qu'a lire le in.

    C'est assez bizar????

  7. #7
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    20
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 20
    Par d�faut
    Est ce que ton code renvoie reellement "Trace OK" et "Out OK" ?

    Si c'est le cas, je ne sais pas quoi te dire.

    Si ce n'est pas le cas, c'est que tu as une erreur, mais que tu n'as pas g�r� dans ton switch (tu n'as pas mis de default).

    Sinon, je ne sais pas si ca va marcher, mais as tu essaye de recuperer l'erreur par ou par Bon courage

  8. #8
    Membre confirm�
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2004
    Messages
    189
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 189
    Par d�faut
    La est tt le probleme g gere tt les erreurs enumerees par msdn. Et mes 2 m�thodes me renvoie ttes les 2 que je n'ai pas d'erreur.

    Quelqu'un connait un petit logiciel qui permet de voir ce qui passe comme trame MIDI sur un port???

    Et je suis ouvert a ttes les idees possibles et imaginables

  9. #9
    Membre confirm�
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2004
    Messages
    189
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 189
    Par d�faut
    Pour ouvrir le port c'est bien comme ceci qu'il faut faire :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    midiOutOpen(&m_HandleMidi,m_DeviceID,NULL,0,CALLBACK_NULL);
    En tt cas quand je teste la valeur de retour c OK puis alors je connect cette sortie a une entree (la MIDI IN de la carte son) et puis j'envoi. Le probleme viendrait peut etre de l'envoi.

  10. #10
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    re,
    tu peux pas essaye le meme test sur MOD_FMSYNTH pour voir si �a fonctionne.
    apres c'est clair qu'il faut voir si tu n'as pas un pb materiel .
    si le port midi est bien actif au niveau xp etc....

  11. #11
    Membre confirm�
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2004
    Messages
    189
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 189
    Par d�faut
    Quand je lance un diagnostique via le test de ma carte il me dit que tt fonctionne. Ce qui serait bien c'est de voir ce qui passe sur le port, existe t'il un logiciel qui permet de regarder ce qui passe sur le port????

  12. #12
    Membre confirm�
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2004
    Messages
    189
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 189
    Par d�faut
    Il y a du changement, le son sort bien sur la carte car je l'entend (c'est quand je dis que mon midi out doit etre un synthetiseur).
    Il reste juste un probleme c'est que ce qui arrive sur mon midi out ne revient pas sur le midi in(un probleme de connect?????)

  13. #13
    Membre confirm�
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2004
    Messages
    189
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 189
    Par d�faut
    Personne ne sait m'aider pour au niveau du midiConnect?????

  14. #14
    Membre confirm�
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2004
    Messages
    189
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 189
    Par d�faut
    Pourquoi quand je recois une note sur mon in, elle se fait correctement sur le out(synthe). Mais quand j'envoi sur le out elle ne vient pas sur le in( il faut envoyer une commande avant??????)

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    R�ponses: 8
    Dernier message: 08/06/2005, 15h57
  2. [MFC] Acquisition du port midi avec visual c++ 6.0
    Par spirit_1999 dans le forum MFC
    R�ponses: 2
    Dernier message: 16/05/2005, 19h26
  3. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    R�ponses: 2
    Dernier message: 13/06/2002, 14h58
  4. R�ponses: 2
    Dernier message: 10/06/2002, 11h03
  5. [MFC] ADO connection
    Par philippe V dans le forum MFC
    R�ponses: 3
    Dernier message: 10/06/2002, 07h36

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