Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Fonctionnement du midi

  • 18 réponses
  • 4 participants
  • 2 416 vues
  • 4 followers
Sujet de la discussion Fonctionnement du midi
Bonjour à tous! J'ai une petite question à laquelle je n'arrive pas à trouver une réponse qui me convient. J'aimerai savoir comment on fait pour envoyer un signal midi à un appareil et quoi lui envoyer. J'ai lu le dossier sur AF qui m'a appris ques choses(note on, note off,...) mais pas assez pour me satisfaire. Je sais programmer des PICs (avec flowcode...) mais je n'arrive pas à trouver quoi envoyer comme données. J'espère que j'ai été compréhensible et que je pourrai bénéficier de votre aide. Merci d'avance!
2
Salut,

Google reste ton ami.

La spécification complète du MIDI est disponible sur le site officiel de la MMA (MIDI Manufacturers Association) https://www.midi.org/

Visiblement, le doc complet est payant ou disponible uniquement aux membres de la MMA, mais il y a des tableaux résumé bien gratuits : https://www.midi.org/techspecs/midimessages.php

Et un petit tuto en prime :
http://www.srm.com/qtma/davidsmidispec.html

En espérant que cela t'aidera dans ta quête.

Jay F.

We're born naked, wet and hungry. Then things get worse.
http://soundcloud.com/jay-f-2

3
Ok merci je vais regarder tout ça!!!!
4
Après avoir étudié les différents liens j'ai donc maintenant à ma connaissance les différents messages a envoyer en binaire ou en hexadecimal. Par contre quelque chose me turlupine, étant donné que la transmission de données en midi ce fait sur une seule broche, je suppose qu'il faut que j'envoie les différents bytes à un certain débit pour que l'appareil reconnaisse des paquets de données. je vais essayer de faire un exemple.

Si j'envoie l'octet 10010001 et ensuite si j'envoie 00111100 puis 10000001 ça me donnera un Note on sur le canal 1 puis ça jouera la note 60 (do du milieu?) puis un Note off sur le canal 1. Me suis-je trompé?
5
J'ai réussi à trouvé que le débit binaire est de 30,4Kb/s (30,4KHz) est-ce bien ça? est-ce que c'est grave si ce débit n'est pas éxact? par exemple si les données sont envoyées à un débit de 30Kb/s. Bref, est-ce que je me suis trompé que ça soit sur ce post ou le précédent?
6
Bonjour,

Il y a une vingtaine d'années, j'ai utilisé la carte Roland MPU-IPC-T (MPU-401) et commencé à la piloter sur PC.
Le manuel de référence que je viens de retrouver sur le Web (http://mesnotices.fr/manuel-notice-mode-emploi/ROLAND/MPU-401-_E) expliquait assez bien le fonctionnement du MIDI.

Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet. (G. Courteline)

7
Bon, je ne suis pas un spécialiste. Mais à ma connaissance, voici ce que ça doit donner (en binaire).

Les messages note on et off sont composés de 3 bytes :
Status byte + Data bytes (1 note number, 1 vélocity).

Note On, Channel 1, Do4, vélocité 64
10010000 00111100 01000000

Note off, channel 1, Do4, release 64
10000000 00111100 01000000

Tu dois en effet envoyer les notes off complètes pour permettre au synthé de s'y retrouver en cas de jeux polyphonique.

Le canaux sont codés sur 4 bits et vont de 0 à 15 (0000 à 1111).
Voir la table 2 de https://www.midi.org/techspecs/midimessages.php.

Quand au débit, je ne sais pas. Je ne pense pas que ça ait d'importance. Les messages doivent sortir à la vitesse désirée par le séquenceur. Je ne crois pas qu'il y ait une notion de paquets et d'espace nécessaire entre les paquets. Le synthé est censé savoir qu'un note on ou note off, c'est 3 bytes.

Voila l'état de mes connaissances.

Jay F.

We're born naked, wet and hungry. Then things get worse.
http://soundcloud.com/jay-f-2

8
Merci pour le manuel, je le lirai plus tard car c'est un peu long. Merci Jay f. aussi, je crois que j'ai bien compris maintenant. Donc d'après toi, si je règle la fréquence d'horloge de mon PIC à 20MHz et que j'envoie mes messages à mon ordinateur ou à mon synthé il comprendra ou alors faut que je fasse gaffe à pas tout envoyer trop vite? merci de votre aide en tout cas, j'en apprend beaucoup!
9
C'est un protocole série asynchrone. A peu près tout ce que tu vas lire sur la programmation série en PIC est valable pour le midi.
10
Merci, après pas mal de recherches je me suis rendu compte que certains PIC possèdent des entrées/sorties série donc je pense que je dois pouvoir exploiter ça! pour ce qui est de la vitesse de transmission, je pense qu'il faut bien respecter la norme de 31250 bauds car le signal d'horloge n'est pas transmis avec le signal. Dans flowcode, j'ai trouvé un "composant" RS232 que je pense pouvoir utiliser. ce qui est génial avec flowcode c'est que c'est super simple, après avoir cliqué sur le "composant" je vais sur routine composant, je sélectionne RS232 puis sendbytes et je met ce que je veux envoyer. donc si j'ai bien compris tout ce que j'ai pu lire, si je créé 6 routines qui s'exécutent les unes à la suite des autres (144 (note on canal 1), 60 (Do4), 64 (vélocité), 128 (note off canal 1), 60 (Do4), 64 (release)) ça fera jouer l'appareil un Do4 avec les paramètres velocity et release au milieu non? j'espère que cette fois ci c'est la bonne avant de migrer vers "les mains dans le cambouis" :D: