Accueil Floss Manuals francophone

Puredata

Le MIDI

Ce chapitre traite de l'utilisation du MIDI afin de recevoir des notes depuis un clavier ou des interfaces MIDI standards, ainsi que des façons d'envoyer des informations en MIDI vers d'autres programmes ou des appareils MIDI.

Mise en route

Avant de commencer à utiliser le MIDI, il faut sélectionner le périphérique dans la boîte de dialogue Preferences > MIDI Settings.

Picture_1.png 

Sélectionnez le périphérique souhaité comme entrée/sortie MIDI. Par défaut, aucun périphérique n'est activé. Si le périphérique n'apparaît pas, débranchez-le, puis reconnectez-le au port USB de l'ordinateur ou au port MIDI de la carte son, puis relancez Pure Data.

usb_midi_ixi.png

Note pour les utilisateurs de Mac OS X : dans certains cas, vous devrez vérifier et activer le périphérique dans l'application "Audio midi Setup", qui se trouve dans dossier Utilitaires (voir exemple ci-dessous).

Picture_6.png 

Canaux et ports

Une fois le périphérique MIDI sélectionné, il faut s'assurer qu'il fonctionne convenablement. Pour cela, mieux vaut en savoir un minimum sur le concept de canaux MIDI (MIDI channels).

Les canaux MIDI sont utilisés pour identifier les périphériques, afin de recevoir et envoyer des notes vers des interfaces physiques ou virtuelles spécifiques. En général, un périphérique utilise un seul canal pour envoyer et recevoir ses informations. Traditionnellement, il y a 16 canaux MIDI au total.

Dans Pure Data, certains messages ont un canal qui est plus grand que 16. Pure Data nous indique ainsi le numéro du port MIDI de Pure Data sur lequel chaque appareil est branché. En effet, Pure Data ajoute 16 fois le numéro du port au chiffre du canal de l'appareil.

Utiliser plusieurs périphériques

Pure data peut aussi utiliser plusieurs périphériques MIDI en simultané. Il suffit pour cela de cliquer sur "use multiple devices" dans le dialogue "MIDI Settings" (voir ci-dessus), et d'ajouter le périphérique sur n'importe quel port libre.

Il est aussi possible de filtrer les messages MIDI en spécifiant quel port ou canal doit être « entendu », en utilisant un argument dans l'objet MIDI. Les objets qui reçoivent ou envoient des notes MIDI sont respectivement [notein] et [noteout].

Voici un extrait de l'aide interne de Pure Data pour l'objet [notein]. C'est l'objet à utiliser pour connecter un clavier MIDI (ou n'importe quel autre type de périphérique MIDI) à Pure Data.

notein.png

L'objet [notein] lit les notes MIDI reçues par Pure Data et envoie le numéro de chaque note reçue, sa vélocité (la force à laquelle elle est jouée) et son numéro de canal. Lorsqu'on rencontre une note qui a une vélocité de zéro, cela signifie que la note est relâchée. C'est la fin de cette note.

noteinB.png

Appareils MIDI

Depuis que le MIDI a été développé dans les années 1980, on trouve de nombreux périphériques compatibles, utilisables sous Pure Data. Synthétiseurs, claviers, interfaces de contrôle, interfaces audio, etc.

Le cable MIDI original au format DIN 5 est toutefois de plus en plus délaissé, au profit de contrôleurs USB plug and play, qui permettent de se passer d'une réelle interface MIDI.

Attention aux erreurs de branchement ! Les câbles MIDI standards étant dotés de connecteurs mâle/mâle, et les sorties/entrées sont indifféremment munies des connecteurs femelles.

Pour connecter un clavier MIDI à Pure Data, il faut simplement relier la sortie MIDI du clavier à l'entrée MIDI de l'interface audio ou de l'interface MIDI ou USB. 

topd.png

midi_interface_1.png

jp_to_pd.png

Ceci est une configuration Clavier MIDI > interface MIDI > ordinateur.

Dans le dialogue de configuration MIDI (Preferences > MIDI Settings), il faut sélectionner l'interface en tant qu'entrée MIDI (MIDI input).

Ensuite, en créant un objet [notein] dans Pure Data, on récupère les notes jouées sur le clavier, leur hauteur, leur valeur et le canal sur lequel elles transitent. Ici, on peut voir que le clavier transmet uniquement sur le canal 2. La plupart du temps, le canal utilisé par un périphérique peut être modifié dans sa configuration interne, soit par un menu interne au périphérique, soit par un programme de configuration fourni par le fabricant.

Jouer avec les notes MIDI

Une note MIDI standard est un message composé d'un nombre qui détermine la hauteur de la note (pitch), sa vélocité (son volume sonore) et un message de fin (note off), qui contient la même hauteur de note avec cette fois une vélocité de 0. Pour envoyer des notes de Pure Data vers un périphérique ou une application extérieure, on utilisera l'objet [noteout].

Le patch ci-dessous génère des nombres aléatoires, puis convertit ces nombres en notes MIDI (hauteur + vélocité + message de fin), et les envoie vers l'objet [noteout].

Si le même port (MIDI bus) est sélectionné à la fois en entrée et en sortie, on peut alors envoyer des signaux MIDI entre différents patches Pure Data.

rndmnotesentojp.png

pdtojp.png

Ceci est une configuration Pure Data > Interface MIDI > Synthétiseur matériel.

Il faut alors sélectionner l'interface MIDI comme un périphérique de sortie (output device) dans le dialogue de configuration MIDI de Pure Data. (Preferences > MIDI settings)

Pour adresser des notes MIDI à l'appareil, envoyez le chiffre 2 dans l'entrée droite (froide) de l'objet [noteout], puis envoyez un bang dans son entrée gauche (chaude).

Si on ne connaît pas précisément le canal par défaut du matériel utilisé, on peut se reporter à la documentation fournie par son constructeur, ou bien essayer les différents canaux disponibles via Pure Data, jusqu'à ce que l'appareil reçoive une information.

Contrôleurs MIDI

Les contrôles MIDI proviennent des pédales, glissières, gradateurs, encodeurs, potentiomètres et autres boutons des appareils MIDI. Ils servent à contrôler des paramètres divers. Pour recevoir ces contrôles dans des patches Pure Data, il faut utiliser l'objet [ctlin], qui possède trois sorties.

La sortie de gauche de [ctlin] nous donne la valeur (controller value) du contrôle. Cette valeur ne peut pas dépasser l'intervalle de 0 et 127, inclusivement.

La sortie du milieu de [ctlin] nous donne le numéro du contrôle (controller number). Ce chiffre peut être n'importe quel nombre entre 0 et 127, inclusivement. Il est en général unique pour chaque contrôle d'un appareil.

La sortie de droite nous informe sur le numéro de canal MIDI et le port de l'appareil.

Dans l'image ci-dessous, on peut voir la sortie de l'objet [ctlin] quand on tourne un des encodeurs d'un contrôleur, connecté au port 2.

bcf_.png 

Quand on crée un objet [ctlin] sans définir aucun argument, il « écoute » tous les numéros de contrôle et tous les canaux. Cela peut être utile en tant qu'outil d'analyse pour savoir quel numéro de contrôle et quel canal sont attribués aux différents boutons/potentiomètres du contrôleur utilisé.

Avec certains contrôleurs MIDI, les faders/boutons/potentiomètres utilisent le même numéro de contrôle que d'autres boutons/potentiomètres, mais sur un canal MIDI différent.

On ajoute alors les arguments cc (control change) et un numéro de canal/port à l'objet [ctlin] pour le faire « écouter » uniquement le cc et le canal spécifié. Dans la mesure où les contrôleurs sont dotés de nombreux boutons, faders, potentiomètres, etc., il est important qu'à chacun soit attribué un usage particulier.

Quand on analyse chaque fader/potentiomètre/bouton, on peut créer un objet [ctlin] spécifique pour écouter un seul son. C'est là un moyen de créer une abstraction pour avoir tous les numéros de contrôle du contrôleur MIDI assignés à une sortie spécifique.

Envoyer des contrôles MIDI vers d'autres programmes

On peut utiliser Pure Data pour envoyer des notes vers un autre programme lancé sur le même ordinateur. Il faut alors sélectionner le même port MIDI (MIDI bus) comme périphérique de sortie dans Pure Data (MIDI output device) et comme périphérique d'entrée (MIDI in) dans le programme que l'on souhaite utiliser. 

fadersendingcc.png Dans le patch ci-dessus, on envoie les valeurs d'une glissière (slider) vers le contrôle numéro 7 sur le canal 1.

Autres objets MIDI

Il y a de nombreux autres objets MIDI dans Pure Data, et la plupart d'entre eux sont documentés dans l'aide interne du programme.

[pgmin]  / [pgmout] : ces objets reçoivent et envoient des changements de programme (program changes), qui sont utilisés pour des sons d'instrument, ou des rythmes, par exemple.

[bendin] / [bendout] : ces objets reçoivent et envoient des variations sur la hauteur de toutes les notes (pitchbend). C'est utile pour le vibrato.

Tous les objets vus jusqu'à présent constituent les bases pour l'utilisation du MIDI dans Pure Data. D'autres tels que [midiin] ou [sysexin] ne fonctionnent que sur GNU/Linux. Enfin, il existe d'autres objets tels que [touchin] ou [polytouchin], qui ne sont pas encore documentés. Pd-extended propose dans ses librairies (Maxlib et Cyclone, par exemple) un certain nombre d'autres objets.