Jouer des fichiers MIDI et Karaoké sous Debian, Ubuntu et Linux Mint

1. Quelques définitions

Musical Instrument Digital Interface (MIDI)

Le Musical Instrument Digital Interface ou MIDI est un protocole de communication (connectique et messages) et un format de fichier dédiés à la musique électronique. Ils sont utilisés pour la communication entre instruments électroniques, contrôleurs, séquenceurs et logiciels de musique.

Les fichiers MIDI portent l’extension .mid ou .midi. Le format de fichier SMF (Standard MIDI File) a été défini en 1987, pour stocker les données et commandes MIDI sur disquette, aujourd’hui sur disque dur, SSD ou clé USB, en y ajoutant des informations temporelles.

Il y a 3 formats différents de fichiers MIDI :

  • 0 : une seule piste contenant les messages des 16 canaux ;
  • 1 : plusieurs pistes jouées simultanément ;
  • 2 : plusieurs pistes jouées séquentiellement (rarement utilisé).

Les fichiers sont le plus souvent de type « 1 », car il est plus pratique de séparer les pistes, mais certains synthétiseurs ne supportent que le format « 0 ».

Exemple de musique créée en format MIDI -> Audio Ogg Vorbis : Ented,_Nokturn_a-moll_-_Jesienny.ogg

Apparu dans les années 1980 issu d’une volonté de l’industrie de normaliser les échanges entre les différents instruments, ce protocole est devenu aujourd’hui un standard très répandu. La connectique n’a pas changé, mais la norme, régissant la structure et les échanges de message, a évolué. Les grandes étapes ont été l’adoption par le MIDI Manufacturers Association (MMA) de la norme General MIDI Level 1 (GM1) normalisée en 1991 et du General MIDI Level 2 (GM2) en 1999 pour les matériels de musique électronique dont la Musique assistée par ordinateur (MAO).

Le General MIDI Level 1 a connu à son tour deux extensions : le GS (General Standard ou Sound) de Roland et le XG (Extended GM) de Yamaha. Ces 2 extensions sont propriétaires à leur fabricant et permettent d’ajouter des effets supplémentaires aux séquences MIDI ou de choisir des sons alternatifs à ceux proposés de base en General MIDI. Les appareils estampillés GS ou XG sont compatibles General MIDI.

Tous les appareils de musique électronique compatibles GM Level 2 sont rétrocompatibles GM Level 1.

Norme MIDI
GM
Level 1
GS XG
Level 1
XG
Level 2
XG
Level 3
GM
Level 2
Date de sortie
1991 1991 1994 1997 1998 1999
Organisation MMA Roland Yamaha Yamaha Yamaha MMA

Karaoké sur ordinateur

Le karaoké (カラオケ, karaoke) est une façon divertissante de chanter seul(e) ou à plusieurs, habituellement en suivant les paroles sur un écran. Il existe plusieurs types de logiciels de karaoké dont le but est de transformer un ordinateur en machine de karaoké. Certains utilisent le format de fichiers MIDI (fichiers .kar) ou le format de fichiers KFN (combinaison d’un fichier audio, d’une animation vidéo et des paroles).

Les fichiers MIDI-KARAOKÉ portent l’extension .kar (et parfois aussi .mid), mais ce sont de véritables fichiers MIDI avec une piste karaoké contenant des paroles que certains matériels/logiciels sont capables d’afficher de manière défilante et synchronisée avec la musique. Ils sont reconnus, par exemple, par les logiciels libres KMid (voir page 2) et PyKaraoke sous GNU/Linux, ou les logiciels propriétaires QuickTime d’Apple et vanBasco’s Karaoke Player sous Windows.

2. Fichiers MIDI seuls sous GNU/Linux

Il existe différentes solutions pour lire – jouer (facilement) les fichiers MIDI (.mid) sous les distributions GNU/Linux dont Debian, Ubuntu, Linux Mint et dérivées. Pour ma part, la plus ergonomique et polyvalente est VLC Media Player, le couteau suisse du Multimédia développé par le projet VideoLAN.

VLC + vlc-plugin-fluidsynth + FluidSynth = Lecture et conversion de fichiers MIDI

VLC Media Player est l’un des lecteurs multimédia populaires, gratuits et libres, et un système capable de lire la plupart des fichiers multimédias ainsi que des DVD, des CD Audio, des VCD, et divers protocoles de diffusion, mais aussi des fichiers MIDI avec l’ajout d’un greffon. Avec FluidSynth, un synthétiseur virtuel temps réel (conversion données MIDI en signal audio), VLC Media Player se transforme en véritable juke-box MIDI !

Fonctionnalités de VLC

  • Lecteur multimédia simple, rapide et puissant.
  • Joue tous les médias : Fichiers, Disques, Webcams, Périphériques et Flux réseaux.
  • Supporte tous les codecs sans codec pack additionnel : MPEG-2, DivX, H.264, MKV, WebM, WMV, MP3…
  • Fonctionne sur toutes les plate-formes : Linux, Mac OS X, Unix, Windows…
  • Complètement gratuit et libre, sans logiciel espion, sans publicité et sans suivi des utilisateurs.
  • Peut faire des conversions de média et du streaming.

VLC Media Player (VLC) est un lecteur multimédia libre issu du projet VideoLAN. Ce logiciel est multi-plateforme puisqu’il fonctionne sous toutes les tendances GNU/Linux, BSD, et d’autres systèmes d’exploitation, soit en tout près de 20 plateformes. Il est distribué sous licence GNU/GPL.
Un des grands atouts de VLC est qu’il intègre les codecs nécessaires à la lecture de la plupart des formats audio et vidéo. De plus, le lecteur est capable de lire un grand nombre de flux réseaux. Il se montre par ailleurs très tolérant avec les flux légèrement endommagés, allant jusqu’à les réparer de son mieux.
VLC est aujourd’hui l’un des principaux lecteurs multimédias, toutes plate-formes confondues.

VLC + FluidSynth = Lecture et conversion de fichiers MIDI/SMF

VLC + FluidSynth = Lecture et conversion de fichiers MIDI/SMF

Et la lecture des fichiers MIDI ?

FluidSynth, un synthétiseur virtuel temps réel, convertit les données MIDI en un signal audio sans avoir besoin d’une carte son compatible intégrant un synthétiseur matériel. Il utilise la technologie des fontes sonores (SoundFonts), c’est-à-dire des échantillons numériques audio préchargés, en leur affectant les événements MIDI qu’il reçoit d’un séquenceur ou, comme ici, du lecteur multimédia VLC lorsqu’il lit des fichiers MIDI.

Caractéristiques de FluidSynth

  • Multiplate-forme (GNU/Linux, Mac OSX et Windows pour en nommer que quelques-uns)
  • Support du standard SoundFont 2
  • Contrôle en temps réel d’effets en utilisant des modulateurs SoundFont 2.01+
  • Lecture des fichiers MIDI
  • Partage de bibliothèques qui peuvent être utilisées dans d’autres programmes
  • Possibilité d’utiliser la ligne de commande pour contrôler FluidSynth

Installation de FluidSynth

VLC, comme KMid, a besoin d’un synthétiseur physique ou virtuel. Sous Debian, Ubuntu, Linux Mint et dérivées. Nous pouvons installer FluidSynth en utilisant soit Synaptic (Debian) soit la Logithèque / le Gestionnaire de logiciels (Ubuntu / Linux Mint). Pour cela, entrer FluidSynth dans le champ de rechercher de ces logiciels et suivre la procédure d’installation.

Pour finir, le Lecteur multimédia VLC étant installé par défaut dans Linux Mint

  • Depuis le Gestionnaire de logiciels
  • il suffit d’installer le greffon vlc-plugin-fluidsynth et la fonte sonore fluid-soundfont-gm
    (en fonction de votre distribution, l’installation de FluidSynth ou du greffon peut aussi installer les autres composants)
  • puis d’indiquer à VLC où se trouve la banque de sons FluidR3_GM.sf2 (fluid-soundfont-gm)
  • dans le Menu -> Outils –> Paramètres –> Tous –> Lecture / Codecs –> Codecs audio –> FluidSynth –> Banques de sons
  • Pour pouvoir jouer – lire et même convertir les fichiers MIDI en fichier Audio avec VLC.

3. Fichiers MIDI + Karaoké sous GNU/Linux

Il existe différentes solutions pour lire – jouer (facilement) les fichiers MIDI Karaoké (.kar ou .mid) sous les distributions GNU/Linux dont Debian, Ubuntu, Linux Mint et dérivées. Pour ma part, le meilleur est KMid, dont malheureusement le développement s’est arrêté il y a quelques années, conçu pour l’environnement de bureau KDE. Néanmoins, cette application dans sa dernière version est toujours pleinement utilisable.

Son utilisation est ludique, festive et peut aussi servir à apprendre à jouer d’un clavier (synthétiseur, piano, orgue, etc.) grâce à son clavier virtuel temps réel synchronisé par canal MIDI avec la musique en cours d’écoute.

KMid 2.4.0 (KDE MIDI) – Lecteur libre MIDI/Karaoké pour Debian, Ubuntu, Linux Mint et dérivés

KMid 2.4.0 est une application libre sous KDE GNU/Linux offrant les mêmes caractéristiques que vanBasco’s Karaoke Player sous propriétaire Windows.

KMid 2.4.0 – Lecteur libre MIDI/Karaoké | Fenêtres Principale + Piano virtuel + Canaux MIDI

KMid 2.4.0 – Lecteur libre MIDI/Karaoké | Fenêtres Principale + Piano virtuel + Canaux MIDI

Adele : Rolling in the Deep sur l’Album « 21 » sorti en 2011, maintes fois primé

Remix instrumental de Rolling in the Deep sur plateforme MAO GNU/Linux (MIDI -> Ogg Vorbis)

Pour les utilisateurs des distributions libres GNU/Linux, nous pouvons avoir les mêmes fonctionnalités, voire mieux, que vanBasco en utilisant KMid-2 – le Lecteur MIDI/Karaoké, logiciel libre développé et supporté par l’équipe de KDE (K Desktop Environment). KMid-2 peut être bien entendu installé dans d’autres environnements de bureau que KDE mais avec des adaptations obligatoires (voir ci-dessous et en page 3).

KMid-2 est un lecteur audio spécifique pour la lecture/gestion des fichiers MIDI-KARAOKÉ (.kar ou .mid) permettant de visualiser le texte synchronisé avec l’accompagnement musical directement dans l’application ou sur un écran connecté à son ordinateur personnel, mais aussi pour la lecture des fichiers MIDI (.mid) et l’apprentissage ou le perfectionnement musical.

KMid 2.4.0 – Lecteur libre MIDI/Karaoké pour Debian, Ubuntu, Linux Mint et dérivés

KMid 2.4.0 – Lecteur libre MIDI/Karaoké pour Debian, Ubuntu, Linux Mint et dérivés

L’interface de KMid est très simple et intuitive. Nous avons les commandes pour modifier le Volume, la Tonalité (par 1/2 ton) dans Volume et ton ainsi que le Tempo (bpm) de lecture de la chanson, sans affecter la hauteur des notes jouées, et le Métronome dans Rythme. Nous pouvons aussi voir la durée totale du fichier et sa progression dans Position de la lecture et changer le code du texte de la chanson dans Jeu de caractères du texte. Ces 4 petites fenêtres sont ancrées à la fenêtre principale de l’application. Elles peuvent se désancrer et se bouger une à une afin d’offrir une plus grande flexibilité.

Depuis le Menu de KMid, nous pouvons activer la fenêtre flottante Piano virtuel (un clavier par piste/canal MIDI) pour voir jouer en temps réel un fichier MIDI ou MIDI-KAR, ou l’utiliser pour jouer nous-même une mélodie sur l’ordinateur. Nous pouvons également activer la fenêtre flottante Canaux MIDI qui permet de visualiser et de modifier en temps réel les instruments / piste / canal, d’assourdir / mettre en solo des instruments, et d’accéder à d’autres fonctionnalités utiles ainsi que les personnalisations.

KMid 2.4.0 – Lecteur libre MIDI/Karaoké | Fenêtres Piano virtuel + Canaux MIDI sur autre bureau que la fenêtre principale

KMid 2.4.0 – Lecteur libre MIDI/Karaoké | Fenêtres Piano virtuel + Canaux MIDI sur autre bureau que la fenêtre principale

Pour plus de confort de lecture, j’ai déplacé ces deux fenêtres flottantes sur un autre bureau que celui de la fenêtre principale de KMid (voir ci-contre).

KMid, comme VLC, a besoin d’un synthétiseur physique ou virtuel. FluidSynth est un synthétiseur virtuel temps réel qui convertit les données MIDI en un signal audio sans avoir besoin d’une carte son compatible. Il utilise la technologie des fontes sonores (SoundFonts), c’est-à-dire des échantillons numériques audio préchargés, en leur affectant les événements MIDI qu’il reçoit d’un séquenceur, de VLC, ou, comme ici, du lecteur KMid lorsqu’il joue des fichiers MIDI.

Sous Debian, Ubuntu, Linux Mint et dérivées, nous pouvons l’installer en utilisant soit Synaptic (Debian) soit la Logithèque / le Gestionnaire de logiciels (Ubuntu / Linux Mint). Pour cela, entrer FluidSynth, puis fluid-soundfont-gm (en fonction de votre distribution, l’installation de FluidSynth peut aussi installer la fonte sonore), dans le champ de rechercher de ces logiciels et suivre la procédure d’installation.

KMid 2.4.0 – Configuration MIDI et FluidSynth

KMid 2.4.0 – Configuration MIDI et FluidSynth

Une fois FluidSynth, la banque de sons FluidR3_GM.sf2 (fluid-soundfont-gm), puis KMid installés, si ce dernier ne trouve pas automatiquement ce synthétiseur virtuel, dans KMid cliquer sur Configure KMid et configurer MIDI et Synthétiseurs logiciels (voir ci-contre).

Comme expliqué plus haut, KMid est un logiciel figé depuis un certain temps dans sa version 2.4.0, qui est cependant très stable et surtout 100% fonctionnel même avec les distributions GNU/Linux actuelles.

Ressources disponibles concernant KMid

Nota bene : Pour les distributions GNU/Linux qui sont ni Debian ni dérivées de Debian, il faudra se diriger vers les forums utilisateurs des distributions concernées pour voir comment installer KMid.

Installation de KMid sous Debian et dérivées

Pour profiter de KMid 2.4.0 dans Debian, Ubuntu, Linux Mint et dérivées, il suffit de télécharger et d’installer son paquet deb depuis l’un des deux liens ci-dessous :

Après avoir téléchargé le fichier KMid-2 en 32-bit ou 64-bit fonction de son ordinateur, un double clic sur celui va lancer l’Installateur de paquets GDebi. Si celui-ci n’est pas installé, le faire depuis soit Synaptic (Debian), la Logithèque (Ubuntu) ou le Gestionnaire de logiciels (Linux Mint).

KMid 2.4.0 – La fenêtre d'installation GDebi

KMid 2.4.0 – La fenêtre d’installation GDebi

La fenêtre GDebi s’ouvre avec un résumé de l’installation à venir (voir ci-contre). Pour lancer celle-ci, cliquer sur le bouton Installer le paquet.

Ci-après, le détail des 60 paquets KDE nécessaires qui seront installés en plus de KMid quand l’environnement de bureau installé n’est pas KDE.

* KDE Runtime : Composants d’exécution de la version officielle de kde
KDE est produit par une équipe technique internationale qui crée des logiciels libres pour ordinateurs de bureau et portables. Les produits KDE sont, entre autres, un environnement de bureau moderne pour Linux et les plate-formes UNIX, une suite bureautique complète, des outils collaboratifs et des centaines d’applications réparties en de nombreuses catégories : applications web et internet, multimédia, loisirs, éducation, développement graphique, etc.

Ce paquet contient des programmes et des données requises par les applications KDE
lors de leur lancement dont détail ci-dessous :
 Version : 4:4.14.2-0ubuntu1~ubuntu14.04~ppa1
 Taille : 60Mo à télécharger, 145Mo d'espace disque requis

Impact sur les paquets / Les paquets suivants seraient installés :
 libkde3support4, ntrack-module-libnl-0, libkrosscore4, libqapt2, oxygen-icon-theme,
 libktexteditor4, kdelibs5-data, libkdeui5, libkdeclarative5, language-selector-common,
 libthreadweaver4, phonon-backend-gstreamer, libkparts4, libqca2, libntrack0,
 kde-runtime-data, libphonon4, libkemoticons4, libkmediaplayer4, libqt4-qt3support,
 katepart, libkdnssd4, phonon, libqapt2-runtime, libkatepartinterfaces4,
 kdelibs5-plugins, phonon-backend-gstreamer-common, libkjsapi4, libkactivities6, libknewstuff3-4,
 kdoctools, libkxmlrpcclient4, libkpty4, libkjsembed4, libsolid4,
 libkhtml5, libntrack-qt4-1, libkfile4, libattica0.4, libkdesu5,
 libdlrestrictions1, libstreams0, libknotifyconfig4, libkdecore5, kdelibs-bin,
 plasma-scriptengine-javascript, libstreamanalyzer0, docbook-xsl, libkntlm4, libkdewebkit5,
 libkcmutils4, libpolkit-qt-1-1, libkubuntu0, libkio5, libxml2-utils,
 kate-data, phonon-backend-gstreamer1.0, libplasma3, libgcrypt20

4. Résolution des problèmes qui peuvent apparaître lors de l’utilisation de KMid (ou de la MAO)

La situation idéale, pour minimiser au maximum les incompatibilités potentielles entre les composants spécifiques aux différents bureaux, serait de n’utiliser qu’une distribution GNU/Linux ayant KDE pour seul environnement de bureau, comme Kubuntu, Linux Mint KDE, etc.
Mais, votre carte son (audio) et son-ses pilote-s peu-ven-t aussi occasionner de sérieuses prises de tête.

Recommandation 1

Si l’environnement de bureau n’est pas KDE, et ce sera le cas pour la majorité des utilisateurs des distributions GNU/Linux Debian, Ubuntu, Linux Mint et dérivées, il faudra essayer de rendre compatible au maximum son environnement de bureau (Cinnamon, mon cas pour ces tests), Gnome, Mate, Unity, Xfce, etc.) avec la couche KDE 4.x qui est obligatoirement et automatiquement installée avec KMid pour le faire fonctionner.

Recommandation 2

Si nous utilisons un Synthétiseur virtuel (logiciel, aussi mon cas pour ces tests) en lieu et place d’un physique, KMid a aussi besoin de la présence d’un logiciel comme FluidSynth, synthétiseur virtuel temps réel qui convertit les données MIDI en un signal audio sans avoir besoin d’une carte son compatible qui intègre un synthétiseur matériel.
FluidSynth utilise la technologie des fontes sonores (SoundFonts), c’est-à-dire des échantillons numériques audio préchargés, en leur affectant les événements MIDI qu’il reçoit d’un séquenceur ou, comme ici, du lecteur KMid lorsqu’il joue des fichiers MIDI ou MIDI-KAR.
Il faut donc s’assurer qu’une SoundFont compatible est bien installée, telle que la banque de sons FluidR3_GM.sf2 (General Midi) ou une autre compatible avec les spécifications SoundFont version 2 (.sf2).

Recommandation 3

Nous aurons besoin d’une carte son fonctionnant correctement avec ALSA (Advanced Linux Sound Architecture). ALSA est un ensemble de pilotes (drivers) pour les cartes son (audio) intégrées, PCI et USB. Ce pilote gère un très grand nombre de cartes. De plus, il permet la gestion directe de plusieurs sons grâce à dmix, un serveur de sons intégré.
Il arrive parfois que AlsaMixer soit mal configuré lors de l’installation initiale. Il est alors nécessaire de le configurer manuellement. Pour cela, taper dans un Terminal (Ctrl + Alt + T) la commande : alsamixer
Puis, procéder aux vérifications et aux éventuelles modifications de réglage. En haut de la fenêtre du Terminal s’affiche la version du logiciel, dans mon cas : AlsaMixer v1.0.27.2.

Nota bene : À partir d’ALSA 1.0.9rc2, il n’est nul besoin de configurer dmix pour la sortie analogique. dmix est activé par défaut pour les cartes son qui ne supportent pas le mixage matériel. Mais, il faut le configurer pour la sortie numérique.

Etc.

Midi + Karaoké = It's all about Music!

Midi + Karaoké = It’s all about Music!