Purr Data 2.9 (Pd-l2ork) – [mtr] l’objet Multi-TRack Sequencer
L’objet graphique [mtr] agit comme un enregistreur-lecteur multi-piste (x32) pour tout type de message, MIDI inclus, et il est le compagnon idéal de [seq]
Cet article est la suite de :
- Présentation de Purr Data (Pd-l2ork v.2) – Programmation graphique orientée objet
‘Purr Data’ = Pure Data Vanilla (la fondation) + Pd-extended (obsolète) + Pd-l2ork v.1 (fork de Pd-extended) + des améliorations et nouveautés… - Purr Data (Pd-l2ork) – Programmer un Lecteur-Enregistreur de fichiers MIDI
Après la présentation de Purr Data, nous allons construire un Lecteur-Enregistreur Live + fichiers MIDI, avec [seq] et un peu de glue, qui pourra servir de base pour des projets plus ambitieux… - Purr Data 2.9 (Pd-l2ork) – Carte de référence des objets MIDI (MAO)
Après la présentation de Purr Data et la réalisation d’un lecteur-enregistreur simple (live + fichiers MIDI), nous allons nous intéresser aux objets MIDI (+/- une cinquantaine) qui sont disponibles dans ce logiciel libre de programmation graphique…
‘Purr Data’ = Environnement de programmation visuelle Pure Data Vanilla enrichi porté sur une interface graphique HTML5 (la dernière révision majeure du HTML) et fonctionnant au moins sous les systèmes d’exploitation libres GNU/Linux, et propriétaires macOS et Windows
Contenu de cet article :
- Avant-propos
- [mtr] – Fonctionnement et commandes
- [mtr] – Enregistrement-lecture de messages MIDI (Notes / PC + PB + MW + CV)
- [mtr] – Enregistrement-lecture de messages MIDI (Notes + Control Change PB)
- Fiche d’aide de l’objet multi-piste / multi-message [mtr] avec focus sur le MIDI – fichier PDF en français
- Spécifications MIDI (anglais et français)
♦ Avant-propos
L’enregistrement et la lecture d’événements MIDI (généralement appelés séquençage) est une tâche importante pour de nombreux programmes Pure Data basés sur le MIDI. Plusieurs objets Purr Data peuvent accomplir des tâches de séquencement MIDI.
L’objet [seq] fournit l’interface la plus simple tout en permettant l’enregistrement et la reproduction de notes, de contrôleurs et de tous les autres messages MIDI. Mais il est de Format/Type 0, c’est-à-dire qu’une seule piste (track) contient les 16 canaux (channels) MIDI, bien que les informations de canal MIDI soient toujours conservées. Pour en savoir plus, consultez l’article ci-dessus « Purr Data (Pd-l2ork) – Programmer un Lecteur-Enregistreur de fichiers MIDI ».
Alors, que faire si nous avons besoin d’utiliser une piste/canal MIDI ou toute autre combinaison ?
J’écrivais dans mon précédent article « Carte de référence des objets MIDI dans Purr Data 2.9 » que :
- [mtr] un séquenceur multi-piste à usage multiple
[mtr] est un autre objet qui permet d’accomplir des tâches de séquencement MIDI, au sens large du terme. Il agit comme un enregistreur multi-piste pour tout type de message, MIDI inclus. L’entrée la plus à gauche de [mtr] est une entrée de contrôle pour toutes les pistes. Nous pouvons également envoyer les mêmes messages à des pistes individuelles. Chaque piste enregistre ce qui entre dans son entrée et la reproduit sans altération à travers la sortie directement sous l’entrée.
Nous allons maintenant voir plus en détail le fonctionnement de cet objet [mtr] fort pratique aussi pour des projets MIDI qui permet de gérer les fichiers MIDI Format/Type 1, c’est à dire d’avoir une piste par canal ou toute autre combinaison piste-s / can-al-aux. Associé à l’autre objet [seq], lui dédié au MIDI Format/Type 0, il font des merveilles quand ils travaillent ensemble.
♦ [mtr] – Fonctionnement et commandes
De nombreux scénarios de Séquenceurs MIDI peuvent être envisagés avec l’utilisation de [mtr], depuis des Enregistreurs-lecteurs multi-piste (de 1 à 32 par objet) MIDI en passant par des Contrôleurs MIDI ainsi que des Expandeurs MIDI (possibilités d’émuler du matériel), pour n’en citer que quelques-uns.
Le tiercé gagnant = [mtr] + [seq] + [glue midi] !
Comme tous les objets Purr Data, [mtr] peut être utilisé à plusieurs reprises dans un même patch, des sous-patches et des abstractions, permettant de décupler le nombre de pistes disponibles et d’optimiser l’organisation de son projet.
Lors de l’enregistrement, les messages MIDI sont stockés dans la RAM de l’ordinateur. ‘write’ les écrit sur le disque dur ou une clé USB et ‘read’ les recharge dans la mémoire vive. À la différence de [seq], [mtr] sauvegarde ses fichiers dans un format pur texte (.txt ou autres lisible directement dans un éditeur de texte) et non MIDI (.mid). Il est possible de convertir facilement ces 2 formats l’un vers l’autre et dans les 2 sens directement dans un même patch en utilisant conjointement [mtr] et [seq] avec les entrés-sorties MIDI (MIDI-IN / MIDI-OUT et/ou MIDI-THRU).
Dans la capture d’écran ci-dessus en plus d’une application MIDI type Contrôleur, nous trouvons un résumé des commandes que [mtr] reconnaît aussi bien sur son entrée gauche (principale) qu’individuellement sur ses autres entrées (pistes). Une partie de ces commandes est identique à celles de [seq] et une autre spécifique à cet objet.
Chaque ‘message cliquable’ (commande) est suivi par un court descriptif de l’action engendrée par un clic sur celui-ci. En cliquant, par exemple, sur le message ‘record’ c’est record qui est envoyé par sa sortie et ainsi de suite pour les autres messages cliquables.
♦ [mtr] – Enregistrement-lecture de messages MIDI (Notes / PC + PB + MW + CV)
Dans la capture d’écran ci-dessous, nous trouvons deux applications MIDI :
- Un Séquenceur-6 pistes [mtr 6] qui enregistre piste par piste les messages Notes-in (hauteur, vélocité et canal) MIDI puis rejoue toutes les pistes ensemble.
- Un Séquenceur-4 pistes [mtr 4] qui enregistre sur 3 pistes (réglées sur le Canal 1) les messages MIDI entrants de Program Change (PC), de Pitch Bend (CC PB) et de Modulation Wheel (CC MW), ainsi que les variations manuelles de Channel Volume (CC CV).
Le Séquenceur-6P MIDI
- Enregistrement : L’action est déclenchée par un clic sur le message ‘record’ ou temporisée avec clic sur le bouton ‘bang’. Les Notes-in (hauteur, vélocité et canal) sont reçues par [notein] directement connecté à l’interface MIDI-IN et envoyées à ses 3 sorties, elles sont concaténées en listes avec [pack] puis envoyées à l’entrée droite (froide) de [gate]. L’entrée gauche (chaude) de [gate] reçoit le numéro de piste réglé manuellement (en rouge). Les Notes-in de chaque piste sont stockées dans la RAM du PC. Un clic sur ‘stop’ arrête l’enregistrement.
- Lecture : L’action est déclenchée par un clic sur le message ‘play’ qui est connecté sur l’entrée gauche de [mtr 6]. Les 6 pistes (les 6 sorties de droite) de [mtr] sont lues ensemble, envoyées à l’entrée gauche de [unpack] qui déconcatène les listes de notes enregistrées et elles sont sortirent à l’identique de celles reçues par [noteout] directement connecté à l’interface MIDI-OUT. Un clic sur ‘stop’ arrête l’enregistrement.
- Sauvegarde sur disque : Voir à la fin du prochain chapitre.
Le Séquenceur-4P MIDI
- Enregistrement : Ici point de notes MIDI mais un Program Change (PC) avec [pgmin] et trois Control Change (CC) MIDI dont un manuel (en vert) avec [bendin], [ctlin] et [Hslider]. Le fonctionnement de ce séquenceur MIDI est similaire au précédent.
- Lecture : Le fonctionnement de ce séquenceur MIDI est similaire au précédent mais en utilisant les objets [pgmout], [bendout] et 2x [ctlout].
- Sauvegarde sur disque : Voir à la fin du prochain paragraphe.
♦ [mtr] – Enregistrement-lecture de messages MIDI (Notes + Control Change PB)
Pour le Séquenceur-8 Pistes MIDI [mtr 8] ci-dessous, nous avons un mix des 2 précédents séquenceurs avec l’introduction de quelques améliorations et fonctionnalités supplémentaires.
Le fonctionnement du Séquenceur-8P est identique aux 2 précédents avec les différences suivantes, hormis le nombre de pistes :
- Nous pouvons écouter une piste déjà enregistrée (en vert) tout en enregistrant une nouvelle piste (en rouge).
- Un clic sur ‘stop’ arrête (devrait arrêter) aussi les notes qui sont suspendues (maintenues) à l’insu de notre plein gré.
- La piste #1 (Pitch Bend) a sa propre commande ‘record’ et son réglage manuel [Hslider] (violet).
- Les commandes ‘clear’, ‘rewind’ et ‘next’ ont été ajoutées.
Si l’on ne possède pas de clavier MIDI physique ou par commodité, nous pouvons utiliser un clavier virtuel MIDI, ici le logiciel libre VMPK (Virtual Midi Piano Keyboard) de préférence en v.0.7+ qui est disponible dans (presque) toutes les bonnes distributions GNU/Linux. En connectant VMPK Midi-Out à Pure Data Midi-In et VMPK Midi-In à Pure Data Midi-Out, nous pouvons utiliser VMPK dans Purr Data / Pure Data comme un Clavier Maître MIDI graphique (entrée/sortie de notes et contrôleurs MIDI) temps réel.
Les Modes OMNI dans les Spécifications MIDI étaient initialement au nombre de 4.
- 1- OMNI On/Poly : Le périphérique répond aux données MIDI quel que soit le canal et est polyphonique.
- 2- OMNI On/Mono : Le périphérique répond aux données MIDI quel que soit le canal et est monophonique. Ce mode est rarement, voire jamais, utilisé.
- 3- OMNI Off/Poly : L’appareil répond aux données MIDI uniquement sur un canal particulier et est polyphonique. C’est le mode normal pour la plupart des claviers qui ne fonctionnent pas de manière multitimbrale.
- 4- OMNI Off/Mono : Le périphérique répond aux données MIDI uniquement sur un canal particulier et est monophonique.
Plus tard, deux autres Modes ont été développés.
Le Multi Mode, une extension du Mode 3, qui permet à l’appareil de répondre à plusieurs canaux MIDI indépendants à la fois -et- le Mono Mode, une extension du Mode 4, pour guitare MIDI qui permet d’utiliser simultanément six canaux OMNI Off/Monophonic.
Pour plus de détail, consultez les Spécifications MIDI (liens à la fin de l’article).
Sauvegarde sur disque
Pour ces 3 Séquenceurs MIDI, nous pouvons enregistrer-sauvegarder toutes leurs pistes dans un fichier texte (.txt ou autres en fonction des utilisations – voir au début de cet article) sur disque dur avec le message cliquable ‘write’ puis lire ce fichier avec ‘read’ depuis le disque. Ces deux commandes (messages cliquables) sont à connecter sur l’entrée gauche (chaude) de [mtr].
♦ Fiche d’aide de l’objet multi-piste / multi-message [mtr] avec focus sur le MIDI
- Au format PDF : purr-data_mtr-aide_print (en français)
♦ Spécifications MIDI
Pour en savoir plus sur le MIDI (Musical Instrument Digital Interface), vous pouvez consulter les liens suivants :
- The Official MIDI Specifications – Midi.org (EN)
- Musical Instrument Digital Interface – Wikipédia.fr (FR)
- MIDI (plus complet) – Wikipedia.org (EN)
- General MIDI – Wikipédia.fr (FR)
- MIDI Tutorial – Sparkfun.com (EN)