VMPK – Virtual MIDI Piano Keyboard – Générateur et récepteur d’événements MIDI pour la MAO

Vous n’avez pas de clavier MIDI (Musical Instrument Digital Interface) sous la main. Alors VMPK, logiciel libre et multi-plateforme, est là pour répondre à votre besoin

VMPK (Virtual MIDI Piano Keyboard) est un générateur et récepteur d’événements MIDI pour la MAO (musique assistée par ordinateur). Il ne produit aucun son par lui-même, mais peut être utilisé pour commander un synthétiseur MIDI (matériel ou logiciel, interne ou externe).

Vous pouvez utiliser le clavier de votre ordinateur pour jouer des notes de musique (en lieu et place d’un clavier MIDI), mais aussi votre souris ou votre pavé tactile. Vous pouvez aussi utiliser le clavier virtuel VMPK pour visualiser les notes jouées par un autre instrument ou un lecteur de fichiers MIDI. Pour ce faire, connectez le port de sortie MIDI de votre instrument au port d’entrée MIDI de VMPK.

Virtual MIDI Piano Keyboard étant un logiciel multi-plateforme, il a été testé avec succès sur les distributions libres GNU/Linux, et les OS propriétaires Windows – Mac OS. VMPK est un logiciel libre sous licence GPL v3.

Partition jouée par MuseScore et touches affichées par VMPK sur GNU/Linux
Un exemple : Gymnopédie No. 1 d’Erik Satie (1866–1925)

VMPK utilise un framework d’interface graphique moderne : Qt4, et Qt5 pour sa dernière version, qui permet d’excellentes performances et fonctionnalités. RtMIDI fournit les fonctionnalités d’entrée/sortie MIDI. Ces deux frameworks sont libres et indépendants de la plateforme, disponible pour GNU/Linux, Windows et Mac OS.

Les correspondances du clavier alphanumérique peuvent être configurées depuis l’interface du programme (Menu -> Éditer -> Attribution des touches), et les paramètres sont stockés dans des fichiers XML. Quelques fichiers de correspondance pour les claviers français, espagnols et allemands sont livrés avec VMPK, traduits depuis ceux de « VKeybd ».

VMPK peut envoyer des changements de programme (message « program change » pour sélectionner une sonorité pré-programmée dans une banque de sons) et de contrôleurs (message « control change » pour sélectionner un contrôleur comme modulation, breath, foot controller, portamento time, volume, etc.) au synthétiseur MIDI (logiciel ou matériel). Les définitions pour différents standards et matériels peuvent être fournies grâce à des fichiers .INS, le même format utilisé par QTractor et TSE3. Ce format a été développé par Cakewalk et est utilisé par Sonar.

♦ Rappel des concepts MIDI

MIDI est un standard industriel pour connecter des instruments de musique entre eux. Le principe est de transmettre les actions effectuées par un musicien jouant d’un instrument à un autre instrument. Les instruments de musique MIDI ont en général deux prises DIN nommées MIDI-IN et MIDI-OUT. Parfois il y a une troisième prise nommée MIDI-THRU. Pour connecter un instrument MIDI à un autre, on utilise un câble MIDI branché sur la prise MIDI OUT de l’instrument qui envoie, et à la prise MIDI IN de l’instrument qui reçoit. Vous trouverez plus d’informations et des tutoriels sur le Web.

Il y a aussi des interfaces MIDI matérielles pour les ordinateurs, fournissant des ports MIDI-IN et MIDI-OUT connectées au port USB de l’ordinateur, auxquels vous pouvez attacher des câbles MIDI pour communiquer avec des instruments MIDI externes. Pour ma part, j’utilise depuis une quinzaine d’années l’UNO de M-AUDIO (Interface auto-alimentée USB <=> MIDI 1 Entrée / 1 Sortie).

M-Audio UNO : 1-IN/1-OUT MIDI USB Bus-Powered Interface for GNU/Linux, PC and Mac

M-Audio UNO : 1-IN/1-OUT MIDI <=> USB Bus-Powered Interface for GNU/Linux, PC and Mac

Sans utiliser d’interface matérielle, un ordinateur peut aussi utiliser des logiciels MIDI. Par exemple, VMPK fournit un port MIDI-IN et un port MIDI-OUT. Vous pouvez brancher des câbles MIDI virtuels (internes à l’ordinateur) aux ports de VMPK pour connecter le logiciel à d’autres programmes ou aux ports MIDI physiques de l’ordinateur.
D’ordinaire, vous voudrez connecter la sortie MIDI de VMPK à l’entrée d’un synthétiseur qui transforme du MIDI en son. Une autre destination peut être un moniteur MIDI qui traduit les événements MIDI en texte « lisible » par l’utilisateur. Ceci peut vous aider à comprendre les informations transmises par le protocole MIDI. Sous GNU/Linux, vous pouvez utiliser, par exemple KMidimon.

VMPK ne produisant aucun son, vous devez utiliser un synthétiseur pour entendre les notes jouées. Pour une configuration simple, je recommande d’utiliser QSynth, une interface graphique pour FluidSynth, un synthétiseur logiciel de sons MIDI au standard GM2 (General MIDI 2). Bien sûr, un synthétiseur MIDI externe (standards GM, GS, XG, etc.) est une approche qualitative encore meilleure.

♦ Connexion MIDI et câbles MIDI virtuels

Pour connecter du matériel MIDI, vous utilisez des câbles MIDI physiques. Pour connecter des logiciels MIDI vous avez besoin de câbles virtuels.

Tous les séquenceurs musicaux actuels et assimilés, comme un clavier MIDI, utilisent des messages MIDI pour communiquer avec le matériel qu’ils contrôlent. Ce sont des messages de note, indiquant aux synthétiseurs quelles notes jouer et comment, ainsi que d’autres messages tels des messages de synchronisation. Aujourd’hui, tout ce petit monde d’instruments est en grande partie virtuel dans le Home Studio, et se retrouve donc à cohabiter dans un seul et même ordinateur. Chaque élément du studio virtuel doit pourtant continuer à communiquer avec les autres. Voyons comment faire passer des informations MIDI d’un logiciel à l’autre ainsi que d’autres possibilités offertes par les câbles et ports MIDI virtuels.

Sous GNU/Linux (pour tous)
  • Le séquenceur ALSA (Advanced Linux Sound Architecture) fournit les câbles virtuels (internes à l’ordinateur). Les ports sont créés dynamiquement lorsque vous démarrez un programme, il n’y a donc pas un nombre fixe de ports MIDI virtuels mais variables. Pour plus de détails, voir en page 2.
Pour les utilisateurs expérimentés
  • L’utilitaire en ligne de commande aconnect (ALSA Sequencer Connection Manager) permet de connecter et déconnecter les câbles MIDI virtuels entre n’importe quel port, matériel ou applicatif.
  • Un autre programme, mais graphique, pour faire des configurations plus complexe est QJackCtl. Le but de ce programme est de fournir une interface graphique et de contrôler le démon Jackd (démarrer, arrêter et surveiller l’état). JACK Audio Connection Kit fournit des câbles virtuels pour connecter les ports de votre carte son et les programmes audio de la même façon que des câbles virtuels MIDI mais pour l’audio.

VMPKQSynthFluidSynth – Installation et configuration

Les exemples ci-dessous ont été réalisés sous la distribution libre Linux MINT 18 qui est basée sur Ubuntu de la société Canonical Ltd. Ils peuvent donc s’appliquer, parfois avec quelques ajustements, pour les nombreux variantes et dérivés d’Ubuntu. Pour les autres distributions GNU/Linux, il faudra consulter la documentation de la distribution utilisée.

Installation de VMPK, QSynth et FluidSynth sous Linux MINT

L’installation de VMPK, QSynth et FluidSynth se fait simplement, comme pour toutes autres applications, depuis le Gestionnaire de logiciels (ou autre nom donné par la distribution).

Menu MINT -> Administration -> Gestionnaire de logiciels -> dans le Champ de recherche en haut à droite :
– Taper VMPK -> Valider par Entrée -> Double cliquer sur la ligne VMPK -> Cliquer sur le bouton Installation -> quand l’opération en cours est finie
– Taper QSynth -> Valider par Entrée -> Double cliquer sur la ligne QSynth -> Cliquer sur le bouton Installation -> quand l’opération en cours est finie
– Taper LibFluidSynth1 -> Valider par Entrée -> Double cliquer sur la ligne LiBFluidSynth1 -> NB : si le bouton Installation affiche Suppression, sauter cette étape -> Sinon, cliquer sur le bouton Installation -> quand l’opération en cours est finie
Fermer le Gestionnaire de logiciels -> Redémarrer votre ordinateur

NB : Les versions de VMPK et de QSynth disponibles dans les dépôts de logiciels de Linux MINT et de ses consœurs ne sont pas les plus récentes. Pour les utilisateurs désirant avoir les toutes dernières versions, il faudra les installer manuellement. Voir la page Web de chaque logiciel.

Configuration de VMPK et QSynth sous Linux MINT

La configuration de VMPK et QSynth se réalise en quelques clics de mulot. Voir les deux captures d’écran et la vidéo ci-dessous pour avoir une configuration opérationnelle. FluidSynth, le synthétiseur logiciel, n’a pas besoin d’être configuré en tant que tel. C’est VMPK et QSynth, une interface graphique pour FluidSynth, qui vont piloter ce dernier et qu’il faut configurer.

VMPK permet de régler le nombre d’octaves (5 par défaut et jusqu’à 10) de son clavier virtuel en fonction de vos besoins.

VMPK (Virtual MIDI Piano Keyboard) : un générateur et récepteur d'événements MIDI pour commander un synthétiseur MIDI (matériel ou logiciel, interne ou externe).

VMPK (Virtual MIDI Piano Keyboard) : un générateur et récepteur d’événements MIDI pour commander un synthétiseur MIDI (matériel ou logiciel, interne ou externe).

QSynth permet de contrôler plusieurs synthétiseurs logiciels (SF2). Pour en ajouter d’autres, il suffit de cliquer sur le (+) en vert en bas à gauche de sa fenêtre principale.

QSynth : une interface graphique de FluidSynth (synthétiseur logiciel - banque de sons au standard GM)

QSynth : une interface graphique de FluidSynth (synthétiseur logiciel – banque de sons au standard GM)

Configuration du clavier MIDI virtuel VMPK et QSynth (ici sous Ubuntu)

♦ À vous de jouer maintenant… ♦

VMPK - Virtual MIDI Piano Keyboard : Générateur et récepteur d'événements MIDI (il ne produit aucun son par lui-même) pour la MAO.

VMPK – Virtual MIDI Piano Keyboard : Générateur et récepteur d’événements MIDI (il ne produit aucun son par lui-même) pour la MAO.