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.
Vous pouvez utiliser le MIDI de plusieurs façons selon votre matériel :
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.
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
timidity
ainsi que timidity-interfaces-extra
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).
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.
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.
$ 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
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.
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"
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 …
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
Si vous utilisez la synthèse de votre carte son, lisez la section consacrée à cette façon de faire.
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.
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.
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
Via Synaptic, recherchez et installez les paquets awesfx et pmidi.
En ligne de commande :
sudo apt-get install awesfx pmidi
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.
Contributeurs : Vicks, jd, Raphaël Doursenaud, Grobs.