Contenu | Rechercher | Menus

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


Le contenu de ce wiki est sous licence : CC BY-SA v3.0