Ceci est une ancienne révision du document !
Timidity est un synthétiseur logiciel pour la prise en charge du MIDI.
La commande man timidity
offre une bonne documentation ; le programme y est ainsi décrit :
TiMidity++ convertit des fichiers MIDI en Wave et joue ces derniers. Les formats MIDI supportés sont : fichiers au Standard MIDI (*.mid), fichier Recomposer (*.rcp, *.r36) et les fichiers Module (*.mod). Les fichiers obtenus après conversions sont formattés, par exemple en RIFF WAVE. TiMidity++ utilise des patch compatibles Gravis Ultrasound ou des Soundfonts (*.sfx, *.sf2) pour générer les données audio digitales à partir des fichiers MIDI. Les données générées par TiMidity++ peuvent être stockées dans un fichier en vue d'un traitement ultérieur, ou jouées en temps réel dans un lecteur audio. Lors d'une lecture en temps réel, TiMitidy++ peut afficher les paroles éventuellement stockées dans les fichiers KAR ou WRD.
Installation
Cela fait un peu « jeu de piste », mais le mieux est de suivre la page consacrée à la prise en charge du MIDI afin d'installer Timidity sur Ubuntu (toutes versions). Des optimisations en terme de sons et de performances y sont par ailleurs proposées.
Sous Edgy
Si vous avez une carte son avec synthétiseur intégré la manipulation est très simple, allez dans le gestionnaire de paquets synaptic et installez timidity.
Si vous utilisez XMMS installez aussi xmms-midi.
Une fois cela fait vous pourrez lire des midi soit directement avec timidity en ligne de commande :
timidity <nom_fichier>
ou
timidity <dossier>
soit en lisant directement des fichier midi dans XMMS.
Utilisation
Comme de nombreux logiciels sous linux, Timidity peut être utilisé soit en ligne de commande, soit via une interface graphique. Il marche aussi comme plugin d'entrée pour XMMS.
Créer un lanceur
Le paquet timidity que vous avez installé ne crée malheureusement pas (encore) de raccourci dans le menu Applications. Pour ce faire, lancer votre éditeur de texte préféré en mode administrateur, (alt+F2, commande « gksudo gedit
», par exemple), ou passez par un terminal en utilisant sudo
. Il s'agit de créer le fichier /usr/share/applications/timidity.desktop
et d'y insérer :
[Desktop Entry] Encoding=UTF-8 Name=Lecteur MIDI Timidity Comment=Joue les fichiers audio MIDI Exec=timidity -ig Terminal=false Type=Application StartupNotify=false MimeType=audio/midi; Categories=Application;AudioVideo; Icon= #NoDisplay=true
(Vous aurez noté les paramètres -ig qui lancent l'interface graphique.)
Une fois ce fichier sauvegardé, vous pouvez également définir Timidity comme lecteur par défaut des fichiers midi. Pour ce faire, insérez :
audio/midi=timidity.desktop
dans le fichier /usr/share/applications/defaults.list
(ou modifier la ligne audio/midi=
si elle existe déjà).
Timidity en serveur/synthétiseur
Il faut lancer timidity de cette manière
timidity -iA -B2,8 -Os -EFreverb=0&
avec :
- timidity - le programme
- -iA "Launch TiMidity++ as ALSA sequencer client."
- -B2,8 = buffer
- -Os = "Output to alsa"
- -EFreverb=0& "mode" + "Effect" + "Disable MIDI reverb effect control"
Pour un synthé jackd (pour rosegarden par exemple) :
timidity -iA -B2,8 -Oj -EFreverb=0
N'oubliez pas de tuer timidity quand vous l'avez fermé :
killall timidity
Script
Un petit script en bash pour se simplifier la vie :
#!/bin/bash #script timserver par adam0509 echo "Ce script permet de lancer/arreter facilement timidity en mode serveur" echo -e "\nListe des processus lancé en rapport avec le midi :" ps -A | grep midi while [ "$nombre" != "0" ] && [ "$nombre" != "1" ] && [ "$nombre" != "2" ] && [ "$nombre" != "3" ]; do echo -ne "\n\nQue voulez-vous faire ?" echo -e "\n0) Ne rien faire" echo "1) Lancer timidity (serveur) en mode ALSA" echo "2) Lancer timidity (serveur) en mode ALSA avec sortie JACK" echo "3) tuer timidity" read nombre done if [ "$nombre" = "0" ]; then { exit 0 } fi if [ "$nombre" = "1" ]; then { timidity -iA -B2,8 -Os -EFreverb=0& } fi if [ "$nombre" = "2" ]; then { timidity -iA -B2,8 -Oj -EFreverb=0 } fi if [ "$nombre" = "3" ]; then { killall timidity } fi exit 0
Recopier le contenu dans un fichier "timserver", rendez-le exécutable et profitez ! Vous pouvez aussi le copier dans /usr/local/bin :
chmod u+x timserver ## donner la permission d'éxécution sudo cp timserver /usr/local/bin ## le copier dans le dossier des éxecutables timserver ## lancer le script