Table des matières

, ,

MIDI

En introduction, vous pouvez voir cette page explicative sur le MIDI.

Le MIDI est bien connu à travers les fichiers d'extension « .mid » aux sonorités électroniques. Cependant, le MIDI est bien plus qu'un simple format de fichier. Ubuntu vient avec un support minimal du MIDI (comprendre : inexistant) qui n'en exploite pas toutes les possibilités (comprendre : aucune) : une installation de base laisse par exemple de coté la gestion du matériel musical, tels les claviers MIDI (comprendre : rien ne fonctionne sous Ubuntu).

Heureusement, il n'est pas très compliqué d'installer un support beaucoup plus complet du MIDI sous Linux. Comme pour tout domaine faisant intervenir des éléments hétéroclites, le cheminement est compliqué par l'existence de nombreux logiciels, formats et matériels propriétaires (par ex. dont les spécifications ne sont pas connues).

La présente page sera utile à tous ceux qui souhaitent profiter du MIDI, qu'ils soient musiciens, mélomanes ou simplement convaincus qu'écouter le générique de la série Alf en MIDI, avec reverb et chorus, est une expérience à ne pas manquer.

Cette présente page se concentre sur l'installation matérielle et logicielle du MIDI sous Ubuntu (toutes versions). Pour en savoir plus sur le MIDI en tant que format, sur ses utilisations possibles, voyez la page consacrée au MIDI en lui-même.

Une large part des instructions données sur cette page requiert l'utilisation de la console ; soyez sûr d'avoir lu les quelques instructions à ce sujet avant de vous lancer à l'aveugle.

Rappel : pour stopper un processus (par exemple, un programme comme « pmidi »), il faut faire la combinaison Ctrl–c au clavier.

Implémentations du MIDI

Vous pouvez utiliser le MIDI de plusieurs façons selon votre matériel :

  1. via un synthétiseur logiciel (cas le plus courant, c'est ce qui se fait sous Windows d'ailleurs…)
  2. via le synthétiseur intégré dans votre carte son si vous possédez une (bonne) carte son gérant nativement le MIDI.
  3. via un instrument externe (module de son, synthétiseur, clavier maitre …) connecté à une interface MIDI (MPU401, carte son ou interface dédiée).

Si vous n'êtes pas sûr, ou que vous avez vérifié que votre carte son ne possède pas de synthétiseur intégré, et que vous ne comptez pas utiliser un instrument externe, alors orientez-vous vers la première solution.

Synthèse MIDI logicielle

Pour décoder et jouer du MIDI, il existe des logiciels assurant une « synthèse MIDI logicielle. » Ils jouent le même rôle que les synthétiseurs embarqués sur certaines cartes sons, et, généralement, travaillent également en coopération avec une soundfont (cf. la suite de ce texte).

Il y a 3 principaux programmes qui peuvent faire de la synthèse MIDI sous Ubuntu : Timidity et Fluidsynth (et son interface graphique qsynth). Nous n'aborderons que Timidity pour le moment !

Et aussi VLC media player peut jouer Standard MIDI File (. MID) et RIFF MIDI Les fichiers (. RMI) depuis la version 0.9.0. A partir de la version 2.1.0, le support a été abandonné en raison de problèmes de sécurité. Mais on peut toujours réinstaller les paquets nécessaire afin de pouvoir lire les fichiers.

Rosegarden est un séquenceur MIDI qui permet une bonne valorisation de timidity et des soudfounts qui lui sont associées.

https://wiki.videolan.org/Midi Si le codec FluidSynth n'est pas représenté dans les préférences de VLC, vous devez l'installer ainsi que les polices sonores. Par exemple Ubuntu 13.04 sur il est dans le paquet vlc-plugin-fluidsynth, ainsi que les paquets fluid-soundfont-gs et fluid-soundfont-gm

Prérequis

Écouter simplement un midifile

Pour ouvrir automatiquement les fichiers midi avec timidity, faites un clic droit sur un fichier midi quelconque (d'extension .mid), puis « ouvrir avec… » / « ouvrir avec une autre application » : tapez “timidity -ig”. Désormais, lorsque vous lancerez par un double clic un fichier midi, celui-ci s'ouvrira avec l'interface graphique de timidity (l'option -ig sélectionne l'interface graphique Gtk+, appropriée dans l'environnement Gnome).

Installation de Timidity

Vous aurez besoin d'activer le dépôt Universe (voir Dépots) pour installer ce logiciel.

Commencez par installer Timidity (via Synaptic ou en ligne de commande).

Vous aurez ensuite besoin d'un ensemble d'échantillons sonores. La manière la plus simple est d'installer le paquet apt://freepats (28 Mio de téléchargement), une bibliothèque de sons standards légère. Vous pouvez aussi, pour un meilleur rendu sonore, lire la section Trouver et mettre en place une soundfont ci-dessous.

Voilà, vous pouvez dès maintenant lire des fichiers midi :

timidity monfichier.mid

Si tout se passe bien, vous devriez entendre une douce musique synthétique. Si vous rencontrez des problèmes, lisez la section Réduire l'usage processeur ou faites une recherche sur le forum d'Ubuntu-fr.

Si vous voulez démarrer Timidity avec une interface graphique (par exemple GTK), il vous faut auparavant installer le paquet timidity-interfaces-extra, et ensuite un

timidity -ig

par exemple, dans la ligne de commande, lancera Timidity avec une interface graphique en GTK.

Pour plus d'informations sur les autres interfaces disponibles un

man timidity

dans la ligne de commande, vous renseignera amplement.

Mettre en place Timidity en tant que serveur MIDI

Saisissez les commandes suivantes :

sudo modprobe snd-seq-device
sudo modprobe snd-seq-midi

Cela charge les modules manquants.

Puis entrez :

timidity -iA -B2,8 -Os1l -s 44100

Ça lance Timidity en tant que serveur MIDI et ouvre deux ports 128:0 et 128:1.

Il se peut que les ports ouverts soient 129:0 , 129:1 , 129:2 et 129:3 Exemple d'exécution sous Lucid Lynx (Ubuntu 10.4) :

$ timidity -iA -B2,8 -Os1l -s 44100
Requested buffer size 2048, fragment size 1024
ALSA pcm 'default' set buffer size 2048, period size 680 bytes
TiMidity starting in ALSA server mode
Opening sequencer port: 129:0 129:1 129:2 129:3
Requested buffer size 2048, fragment size 1024
ALSA pcm 'default' set buffer size 2048, period size 680 bytes

Après avoir tapé ceci, les lecteurs midi devraient fonctionner. Vous pouvez ouvrir un autre terminal et essayer des commandes comme :

pmidi -p 128:0 musique.mid
kmid musique.mid

Kmid a été repris et est en cours de portage sur KDE4

Pour fermer Timidity, pressez Ctrl–c dans le terminal où il a été lancé.

Lancer le serveur en tant que root peut améliorer les performances grâce aux priorités supérieures données au processus.

Notedit ou un autre éditeur de partitions peut alors être chargé et reconnaitre les ports MIDI.

Si l'ordinateur est occupé, il est possible que vous entendiez des sauts ou que vous ayez des problèmes de latence. Cela peut être réglé grace à un patch de noyau temps-réel (realtime) mais cela est hors du propos de cet article.

Démarrer automatiquement Timidity avec l'ordinateur

Pour qu'il soit lancé au démarrage de l'ordinateur, éditez « /etc/default/timidity » et décommentez (c'est à dire enlever le # qui ce trouve devant) la ligne:

TIM_ALSASEQ=true

Optionnel: Modifiez la ligne:

TIM_ALSASEQPARAMS="-B2,8 -Os"

en la remplaçant par:

TIM_ALSASEQPARAMS="-iA -B2,8 -Os1l -s 44100"

Réduire l'usage processeur

Si Timidity utilise trop de ressources sur votre machine, essayez d'ajouter ces lignes au début de /etc/timidity/timidity.cfg (voir:comment_editer_un_fichier) :

opt EFresamp=l          #utilise le rééchantillonnage linéaire
opt EFvlpf=d            #désactive VLPF
opt EFreverb=d          #désactive la réverbération
opt EFchorus=d          #désactive le chorus
opt EFdelay=d           #désactive le delai

Note: Gardez à l'esprit que cette modification détériore le son …

Trouver et mettre en place une soundfont

Que ce soit dans le cadre d'une synthèse matérielle ou logicielle, vous aurez besoin d'un soundfont. Wikipédia nous apprend que :

Un soundfont désigne une technologie mise au point par la société E-mu pour Creative Labs, permettant de stocker dans un fichier au format .sbk (pour SoundFont Bank) puis .sf2 (pour SoundFont Bank Version 2) des échantillons au format WAV, puis de les organiser sous forme d'instruments MIDI, afin que ceux-ci puissent être utilisés sur un synthétiseur dit « à table d'ondes ».

Si vous utilisez Timidity pour jouer des fichiers MIDI, vous pouvez installer le paquet freepats qui propose des sons de base. Toutefois, il existe d'excellentes soundfonts gratuites que vous pouvez utiliser pour améliorer la qualité du son midi.

Exemples de soundfonts à télécharger :

Vous pouvez par exemple utiliser celle-ci qui offre un très bon rendu.

Si vous vous retrouvez avec un fichier se terminant par « .sfArk », sachez qu'il s'agit d'une soundfont compressée dans un format propriétaire. Un outil pour linux permettant de décompresser ces fichiers est disponible chez Melody Machine. Pour l'utiliser, téléchargez le fichier dans la colonne linux, clique droit “extraire” sur le fichier téléchargé puis dans un terminal lancez:

'chemin/vers/le/dossier/extrait' 'chemin/vers/le/fichier/.sfARk'

et vous obtiendrez votre .sf2! Il est conseillé d'utiliser les soundfonts de ce site http://sonimusicae.free.fr/matshelgesson-maestro.html qui sont certes volumineuses mais d'une très grande qualité (jettez un oeil aux clavecins par exemple…)

Une fois votre soundfont téléchargée, éventuellement décompressée, la marche à suivre dépend de la synthèse MIDI choisie. Si vous utilisez Timidity, vous devez modifier le fichier /etc/timidity/timidity.cfg (ou le créer s'il n'existe pas encore), et y ajouter la ligne suivante à la fin (adaptez-la selon vos chemins de fichiers).

soundfont /etc/timidity/PC51f.sf2

Attention, une ligne commençant par « source » est certainement déjà présente à la fin du fichier. Vous devriez la commenter, en ajoutant un « # » devant la ligne ; par ailleurs, notez bien que le mot clé de la ligne à ajouter est « soundfont », pas « source ».

Si vous utilisez la synthèse de votre carte son, lisez la section consacrée à cette façon de faire.

Convertir un fichier midi en fichier audio

Timidity permet également de convertir un fichier midi en fichier audio, grâce à l'option -O. Ainsi, la commande

timidity -Ov fichier.mid

convertit fichier.mid en fichier.ogg.

D'autres formats sont disponibles :

Tapez « man timidity » pour plus d'informations.

Synthétiseur intégré à la carte son

Certaines cartes sons contiennent une implémentation matérielle du MIDI. Il y a les cartes incorporant un synthétiseur FM (toutes les Soundblaster 16 et compatibles) qui donne des sons de très basse qualité. Pour faire de la musique, on ne devrait utiliser que les cartes travaillant avec une banque d'échantillons sonores. Cela signifie qu'elles s'occupent de décoder un fichier au format MIDI et de le jouer, et utilisent par défaut les sons MIDI de la carte mère, voire leurs propres sons. En général, on utilisera avec ces cartes sons une bibliothèque de son midi, appelée soundfont, pour une meilleure qualité sonore.

Si votre carte son contient nativement un tel « synthétiseur MIDI » il est recommandé de l'utiliser. Les instructions suivantes vous indiquent comment l'utiliser, en combinaison avec un soundfont.

Cartes compatibles

Liste non exhaustive de cartes sons offrant une implémentation matérielle de MIDI :

Liste non exhaustive de cartes sons n'offrant qu'une synthèse FM matérielle de MIDI :

Dans le cas des cartes MIDI FM, il faut activer le pilote ALSA OPL3 dans /etc/modules :

snd-sb16 #Pour une soundblaster 16
snd-seq  #Pilote OPL3

Et s'assurer d'avoir chargé la table FM en ajoutant cette ligne dans /etc/rc.local (avant la ligne exit 0) :

sbiload -p 65:0 --opl3 /usr/share/sounds/opl3/std.o3 /usr/share/sounds/opl3/drums.o3

Pré-requis

Installer les paquets nécessaires

Via Synaptic, recherchez et installez les paquets awesfx et pmidi.

En ligne de commande :

sudo apt-get install awesfx pmidi

Chargement du soundfont

Dans l'optique d'une implémentation matérielle de MIDI, nous avons besoin d'un soundfont. Il s'agit grossièrement une bibliothèque de sonorités MIDI utilisée par la carte son.

Procurez-vous donc un soundfont quelconque. Wikipédia propose par exemple quelques liens intéressants pour en trouver.

Vous pouvez télécharger :

- le soundfont Unison, très répandu et de bonne qualité :

wget ftp://ftp.personalcopy.net/pub/Unison.sf2.gz

L'extraire, créer un dossier approprié (par exemple /etc/sound), puis le déplacer dans ce nouveau dossier :

gunzip Unison.sf2.gz
sudo mkdir /etc/sound/
sudo mv Unison.sf2 /etc/sound/

- le soundfont Crisis 1.8, moins répandu et plus lourd, mais d'excellente qualité (pour les audiophiles) :

Aller sur le site de Crisis, dans 'Download', puis télécharger la soundfont au format rar ( installez le support rar a file-roller si nécessaire ) :

sudo apt-get install unrar

Il faut ensuite décompresser le fichier sf2 avec SFArk et procéder comme précédemment .

Tout d'abord, testons si cela fonctionne.

Pour charger le soundfont une fois, exécutez la commande :

sfxload /etc/sound/Unison.sf2
ou bien sfxload /etc/sound/crisis18.sf2

Tapez :

pmidi -l

Cette commande devrait vous donner une réponse du style :

Port Client name Port name
64:0 External MIDI 0 MIDI 0-0
65:0 Emu10k1 WaveTable Emu10k1 Port 0
65:1 Emu10k1 WaveTable Emu10k1 Port 1
65:2 Emu10k1 WaveTable Emu10k1 Port 2
65:3 Emu10k1 WaveTable Emu10k1 Port 3

Il s'agit des différents ports utilisables pour jouer du MIDI.

Pour jouer un fichier MIDI, faites :

pmidi -p 65:0 unfichier.mid

ou

aplaymidi -p 65:0 unfichier.mid

Voilà, vous devriez désormais entendre quelque chose !

Ensuite, allez dans Système/Préférences/Sessions, cliquez sur +Ajouter. Entrez la commande sfxload tel que décrite plus haut, nommez-la, validez et fermez. La Soundfont devrait dorénavant être chargé au démarrage de la session et permettre de jouer instantannément vos fichiers midi.

Ressources

Liens

Sources

Voir aussi


Contributeurs : Vicks, jd, Raphaël Doursenaud, Grobs.