Ceci est une ancienne révision du document !



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 (i.e. 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.

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.

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. section précédente).

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 !

Prérequis

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 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. 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"

Problèmes sur Dapper et précédents, corrigé depuis la version edgy

Vous devrez aussi ajouter le nom des modules chargés précédemment dans « /etc/modules » :

snd-seq-device
snd-seq-midi

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 :

Personnellement je vous conseil 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.

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 choix d'emplacement).

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.

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

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/sounds), 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.

Liens

Sources


Contributeurs : Vicks, jd, Raphaël Doursenaud.

  • midi.1203169196.txt.gz
  • Dernière modification: Le 16/02/2008, 14:42
  • (modification externe)