Ceci est une ancienne révision du document !
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 qui n'en exploite pas toutes les possibilités : une installation de base laisse par exemple de coté la gestion du matériel musical, tels les claviers MIDI.
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.
Implémentations du MIDI
Vous pouvez utiliser le MIDI de plusieurs façons selon votre matériel :
- via un synthétiseur logiciel (cas le plus courant, c'est ce qui se fait sous Windows d'ailleurs…)
- via le synthétiseur intégré dans votre carte son si vous possédez une (bonne) carte son gérant nativement le MIDI.
- 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 deux 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 !
Rosegarden est un séquenceur MIDI qui permet une bonne valorisation de timidity et des soudfounts qui lui sont associées.
Prérequis
- Vous aurez besoin d'une carte son fonctionnant correctement avec ALSA. Voyez la page à ce sujet.
- Nous allons éventuellement utiliser un fichier particulier appelé soundfont pour améliorer la qualité du son midi. Pour bien comprendre les manipulations qui suivent, vous pouvez lire l'article de Wikipédia sur Soundfont ainsi que la section de ce document consacrée aux soundfonts.
Ecouter simplement un midifile
- Installez
timidity
ainsi quetimidity-interfaces-extra
- Dans un terminal, taper "timidity -ig". Vous pouvez par exemple tester avec le générique de la série Alf…
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 Adept, 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.
$ 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
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 :
- sf2midi.com, dépôt de soundfonts
- Personnal Copy (essayez Unison.sf2 ou PC51f.sf2)
- cherchez soundfont dans un moteur de recherche…
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.
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 :
- -Ov ⇒ OGG Vorbis (.ogg)
- -Ow ⇒ RIFF Wav (.wav)
- -Ou ⇒ Sun Audio (.au)
- -Oa ⇒ AIIF (.aiff)
- -OF ⇒ FLAC (.flac)
- …
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 :
- Sound Blaster AWE32 ;
- Sound Blaster AWE64 ;
- Sound Blaster PCI512 ;
- Sound Blaster Live! ;
- E-mu Audio Production Studio (APS) ;
- Creative ProdiKeys MIDI Keyboard ;
- Sound Blaster Audigy ;
- Sound Blaster Audigy 2 (dont la version ZS PCMCIA pour ordinateurs portables) ;
- Sound Blaster Extigy USB ;
- Sound Blaster X-Fi.
Liste non exhaustive de cartes sons n'offrant qu'une synthèse FM matérielle de MIDI :
- Sound Blaster 8 ;
- Sound Blaster Pro ;
- Sound Blaster 16.
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
- Vous aurez besoin d'une carte son fonctionnant correctement avec ALSA.
- Nous allons utiliser un fichier particulier appelé soundfont. Pour bien comprendre les manipulations qui suivent, il est important de lire attentivement l'article de Wikipédia sur Soundfont ainsi que la section de ce document consacrée aux soundfonts.
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
- Inspiré de la documentation de Guido Socher et de la page soundfont de wikipedia.
Voir aussi
- wine_et_midi - comment lancer une application Win32 utilisant le midi ?
Contributeurs : Vicks, jd, Raphaël Doursenaud, Grobs.