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

Audio Discussion :

Probleme NAudio piano


Sujet :

Audio

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2019
    Messages : 27
    Points : 18
    Points
    18
    Par défaut Probleme NAudio piano
    Bonjour à tous,

    je me pose une question sur le fonctionnement d'une application pour Android.
    Et je n'y connais rien en développement sur cette plateforme.
    Mais par contre j'ai la chance de posséder un piano numérique.
    Piano pour lequel cette application a été développé.
    Elle sert pour apprendre à jouer, pour régler quelques paramètres sonore,
    et pour sélectionner le son sur l'instrument.
    Il existe une liste des pianos compatibles, et le mien s'y trouve.
    J'aurais pu utiliser l'application, mais n'ayant que ça à faire, j'ai tenté
    l'expérience moi-même. Je me suis concentré sur le changement de son de l'instrument.
    Je me suis dit que le logiciel devait envoyer des "Program Change" en Midi, et c'est ce
    que j'ai essayé de faire en VB.Net, avec la librairie NAudio. C'était plutôt facile.
    Sauf que la sélection du son ne changeait pas. Le son déclenché par le clavier restait le même.
    Par contre, en envoyant un "NoteOn" avec VB, je constatais que le son avait bien changé.
    En lisant la doc de mon piano, j'ai pu lire :

    "Voice change information in this instrument can be transmitted to or received from a computer.
    (However, the Voice as played from the keyboard is maintained and does not change.)

    Supposant ceci comme étant une explication à mon "échec".
    Dans la documentation, le tableau intitulé "MIDI CHANNEL MESSAGE" contient une "x" dans quasiment
    tous les messages (Program Change, Bank Select LSB...etc).
    Mais la documentation du logiciel indique bien, pour le modèle qui correspond à mon piano, cette ligne :

    Voice Select : Yes

    On peut donc supposer que ça fonctionne avec leur logiciel.

    J'ai remarqué que le tableau de commande du piano permettant de sélectionner le son, déclenche
    à chaque sollicitation des Sysex que j'ai pu récupérer avec VB. Je les ai analysé et il s'agit
    en autre d'un "Program Change" avec du paramétrage pour les effets (Chorus, Reverb).
    J'ai essayé de les renvoyer vers le piano, mais ça n'a pas mieux fonctionné

    J'avoue ne pas savoir comment m'y prendre pour analyser ce qui sort du logiciel en direction du piano,
    mais j'aurais bien aimé comprendre comment ils font pour que ça fonctionne.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 064
    Points
    219 064
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Si la connexion se fait en USB, vous pouvez utiliser Wireshark pour analyser les paquets/messages transitant entre le PC et le piano.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Bonjour,

    Si la connexion se fait en USB, vous pouvez utiliser Wireshark pour analyser les paquets/messages transitant entre le PC et le piano.
    J'aurais plutôt penché sur MIDI-OX qui est l'outil plus adéquat niveau analyse et cannif suisse du Midi.

    Par contre j'ai un peu de mal a comprendre ce qu'Android vient faire dans l'histoire ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2019
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Bonjour,

    Si la connexion se fait en USB, vous pouvez utiliser Wireshark pour analyser les paquets/messages transitant entre le PC et le piano.
    Merci pour la réponse. Mais je n'sais pas trop comment m'y prendre étant donné que l'application du piano fonctionne sous Android.
    Même s'il existe un programme équivalent à WireShark sous Android, je suis plus à l'aise sous Windows.
    Encore que j'ai Windows 11 et qu'apparemment on peut maintenant y faire tourner des application Android. Mais j'ai cru lire que c'était un peu
    compliqué à mettre en œuvre. Et je n'sais pas si l'application fonctionnera dans cet environnement. En tout cas merci pour la suggestion et merci aussi à wax78

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Mais du coup pour essayer de mieux comprendre, tu as donc un vrai piano midi que tu branches directement sur le téléphone en USB et c'est le logiciel sur le téléphone qui récoit les message midi et qui te joues des sons avec l'application "synthetiseur" du téléphone ? Quelque chose m'échappe
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2019
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Mais du coup pour essayer de mieux comprendre, tu as donc un vrai piano midi que tu branches directement sur le téléphone en USB et c'est le logiciel sur le téléphone qui récoit les message midi et qui te joues des sons avec l'application "synthetiseur" du téléphone ? Quelque chose m'échappe
    C'est presque ça, le logiciel sur le téléphone communique avec le piano par le port USB de ce dernier.
    Je suppose qu'il doit utiliser le protocole MIDI.
    Le logiciel sur le Smartphone permet surtout de sélectionner le son sur le piano, et de régler la Reverb et d'autres effets.
    C'est d'autant plus pratique que mon piano ne possède pas d'afficheur LCD, et que les réglages se font par combinaison de touches...
    Comme j'utilise le piano en même temps que le pc, l'idée était de faire un petit logiciel me permettant de sélectionner facilement un son ou un autre,
    par un bouton à cliquer.

    Ce matin j'ai installé sur le téléphone une application Android capable d'analyser les données Midi transitant d'une application vers le port USB.
    Mais au moment d'installer la fameuse application pour le piano, un message me prévient d'une incompatibilité avec mon Smartphone.
    Effectivement mon Samsung S7 n'est pas compatible. Je ne peux donc meme pas tenter une analyse.
    Je pense que j'vais abandonner le projet et passer plutôt du temps à travailler mes gammes au piano lol
    En tout cas merci pour la réponse

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 064
    Points
    219 064
    Billets dans le blog
    120
    Par défaut
    Vous vous lancez dans un projet de reverse engineering et cela demande inévitablement des connaissances. Notamment ici, vous avez une application Android et vous voudriez analyser ce qu'elle fait.
    Une facilité serait de trouver si le constructeur propose une application alternative sous Windows. Autre chose à tester (vu que la connexion se fait par USB), c'est de faire reconnaître le piano sur un logiciel de musique dédié (Renoise, LMMS ou je ne sais plus quoi ).
    Dans un tel cas, on peut repartir sur l'analyse des paquets MIDI ou USB et dans le cas inverse, il faudra faire fonctionner l'application dans un émulateur Android (Bluestacks ou le truc de Windows 11). Cela ajoutera une couche d'embêtement. On peut aussi tenter la décompilation brute de l'application Android.

    Finalement, vous parliez d'une application VB que vous avez fait. À t-elle déjà marcher avec le piano, ou avec l'application Android. Si oui, c'est que vous avez déjà une bonne base. Ou bien, fonctionne t-elle sous Android ? (on peut faire du VB pour Android ? )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2019
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Vous vous lancez dans un projet de reverse engineering et cela demande inévitablement des connaissances. Notamment ici, vous avez une application Android et vous voudriez analyser ce qu'elle fait.
    Une facilité serait de trouver si le constructeur propose une application alternative sous Windows. Autre chose à tester (vu que la connexion se fait par USB), c'est de faire reconnaître le piano sur un logiciel de musique dédié (Renoise, LMMS ou je ne sais plus quoi ).
    Dans un tel cas, on peut repartir sur l'analyse des paquets MIDI ou USB et dans le cas inverse, il faudra faire fonctionner l'application dans un émulateur Android (Bluestacks ou le truc de Windows 11). Cela ajoutera une couche d'embêtement. On peut aussi tenter la décompilation brute de l'application Android.

    Finalement, vous parliez d'une application VB que vous avez fait. À t-elle déjà marcher avec le piano, ou avec l'application Android. Si oui, c'est que vous avez déjà une bonne base. Ou bien, fonctionne t-elle sous Android ? (on peut faire du VB pour Android ? )
    Oui, la première étape aurait déjà été d'arriver à faire fonctionner l'application prévu pour Android, mais mon Smartphone n'étant pas compatible
    j'ai passé l'après-midi à essayer de la faire fonctionner sous différents émulateurs (BlueStacks, NoxPlayer et LDPlayer).
    Peut-être à cause d'un problème de paramétrage, l'appli se lançait mais n'arrivait pas à détecter le piano sur le port USB.
    J'ai alors installé l'émulateur Android sous Windows 11 (WSA), et là c'était pire, l'application démarre mais disparait rapidement...
    En tout cas merci pour tous ces conseils.
    Peut-être que cette application Android communique avec le port USB à l'aide d'un protocole propriétaire, je n'sais pas si c'est possible,
    mais je pense plutôt qu'elle utilise des commandes MIDI/Sysex non répertoriées dans la documentation du piano.
    On ne le saura surement jamais

  9. #9
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    ça aurait été bien de nous dire ce que c'était comme piano déjà Parce que y'a "piano et piano"
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2019
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par wax78 Voir le message
    ça aurait été bien de nous dire ce que c'était comme piano déjà Parce que y'a "piano et piano"
    Le piano c'est un YAMAHA modèle CLP-725, et l'application s'intitule "Smart Pianist".

  11. #11
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Jolie bestiole.

    Par le plus grand des hasards, tu as déjà ce document qui a mon avis contient la réponse a ta question ?

    https://ca.yamaha.com/files/download...5_en_mr_a0.pdf
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2019
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Je crois que j'ai trouvé une solution.
    On sait qu'avec un logiciel sur le pc, en envoyant un "Program Change" vers le piano pour par exemple sélectionner un son de Flute,
    lorsque des notes Midi sont ensuite envoyées vers le piano, ça declenche bien un son de Flute. Mais quand on joue directement sur le
    clavier du piano, le son n'a pas changé et c'est toujours un son de piano.
    Sur ce piano, on peut envoyer une commande "Local Control" qui permet de désactiver les sons lorsqu'une touche est appuyé sur le
    clavier du piano. Il suffit donc d'envoyer cette commande, et par logiciel, renvoyer les évènements Midi qui arrive du clavier, vers le clavier.
    J'ai fait quelques essais et pour l'instant tout fonctionne.

Discussions similaires

  1. [WD16] Naudio.dll, problème création d'un stream
    Par WDKyle dans le forum WinDev
    Réponses: 109
    Dernier message: 11/01/2017, 17h24
  2. [Emu8086] Création d'un piano : problème de speaker
    Par Eurynom3 dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 24/05/2016, 10h28
  3. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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