Programmation

Les codes et programmes d’Interface-Z

Accueil > Didacticiels > Introduction communication midi

Introduction communication midi

Le matériel concerné

Cette page expose quelques généralités sur la réception des données quelle que soit l’interface de captation branchée sur l’ordinateur (pourvu qu’elle fonctionne en Midi...). Nous parlons ici de Midi utilisé pour communiquer avec le monde extérieur, avec des envois de messages correspondant à du matériel, et non de Midi virtuel ou de fichiers mdi.

Ces généralités sont communes aux interfaces pour capteurs simples (1-Ana, 2-Ana, 12-Ana/16-Num) et aux capteurs autonomes (Télémètre ultrason, Télémètre synchro, tapis, RFID) ainsi qu’à d’autres matériels couramment utilisés par les musiciens (claviers, mixettes Midi, modules à potentiomètres...).

Le point commun de tous ces appareils est d’être branchés sur l’entrée Midi In d’un ordinateur. Cette entrée est matérialisée par une prise sur une interface Midi-USB, sur une carte son, sur un port joystick Midi, sur une mixette USB, sur un clavier, sur une interface capteurs OSC (réseau), etc...

Les notions utilisées pour les messages Midi qui nous intéressent

Tous les logiciels et langages dont nous parlons dans ces pages permettent de recevoir des messages Midi à l’aide d’objets ou de bibliothèques le plus souvent existant en natif dans l’application. Les mots décrivant ces fonctions dépendent de chaque logiciel, mais le principe est le même. Nous nous concentrerons uniquement sur les messages Control Change et Note On, qui sont ceux utilisés dans notre matériel.

Pour chaque message Midi arrivant dans une application, plusieurs notions sont à prendre en compte :

  • Port : correspond physiquement à une prise Midi
  • Canal : configuré sur le matériel
  • Numéro de Contrôleur ou Pitch : dépend de la carte et de l’emplacement du capteur sur cette carte
  • Valeur ou Vélocité : selon l’état du capteur

Ces notions sont équivalentes en entrée (input) et en sortie (output). Les capteurs se brachent sur une entrée Midi, les actionneurs se branchent en sortie.

Port

Le port correspond physiquement à une entrée ou à une sortie Midi. Les messages Midi eux-mêmes ne contiennent pas d’information sur le port. Dans toutes les applications, le port correspond à un numéro de matériel connecté, identifié soit à l’ouverture du logiciel soit à l’activation du fichier.

Une interface comportant deux entrées Midi sera identifiée dans l’application par deux ports Midi différents. Le traitement dépend ensuite de l’application : toutes distinguent les ports, certaines permettent aussi de décaler les canaux Midi des signaux entrants.

Enfin, il existe des ports Midi virtuels, très pratiques pour communiquer d’un logiciel à un autre, dont nous parlerons pas dans cette page car, par définition, on ne peut y brancher aucun appareil réel. Certains sont installés en standard dans les systèmes d’exploitation (synthé virtuel), d’autres se rajoutent (Midi Ox, Maple, par exemple).

Canal

Il est possible d’utiliser, sur un même port, 16 canaux Midi différents (pourvu qu’on arrive à les brancher sur une même prise, ce qui est possible avec des mergers).

Dans l’application, le canal doit correspondre à celui qui est configuré sur le matériel.

Pour nos cartes, il y a deux possiblités :

  • La plupart comporte des interrupteurs permettant de choisir le canal Midi ;
  • Certaines ne sont disponibles que sur le premier canal (le module 2 entrées analogiques par exemple).

Ces réglages ou leur absence sont indiqués dans les documentations.

Numéro de Contrôleur ou Pitch

Pour chaque canal et pour chaque type de message, il y a 128 numéros de messages possibles en Midi, chacun pouvant accepter 128 valeurs différentes.

En pratique, le type de message utilisé (Control Change ou Note On) et les numéros choisis sont indiqués dans la documentation. Dans notre matériel, ces numéros sont fixes et correspondent en général aux différentes entrées des capteurs sur les cartes.

Nous avons fait le choix d’utiliser des messages Control Change pour les capteurs analogiques et des messages Note On pour les capteurs interrupteurs.

Control Change

- Entrées analogiques sur les interfaces pour capteurs simples
- Télémètres ultrasons
- RFID

Note On

- Entrées numériques sur les interfaces pour capteurs simples
- Carte tapis sensitif

Pour les messages de type Note On, le numéro est souvent appelé pitch, terme à l’origine correspondant à la hauteur de la note sur les claviers.

Ce numéro étant fixe, il sert à trier les capteurs (pour les interfaces à capteurs simples ou les tapis) ou bien à trier les composantes des messages avant réassemblage (pour les télémètres, les cartes RFID ou les interfaces en 4096 pas).

Valeur ou Vélocité

Enfin, un message Midi contient une information de valeur. Dans les cas qui nous intéressent ici il s’agit de la valeur prise par un capteur, qu’elle soit en 128 pas ou en tout ou rien.

Pour les messages de type Note On, la valeur est souvent appelée vélocité.

Cette valeur est envoyée par la carte lorsque le capteur est activé ou que ce qu’il détecte varie.

Réception midi