Ceci est une ancienne révision du document !



TiMiDiTy

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 conversion sont formatés, par exemple en RIFF WAVE. TiMidity++ utilise des patches 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.

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) :

 sudo apt-get install timidity

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.

Il se peut que les ports ouverts soient 129:0 , 129:1 , 129:2 et 129:3 Exemple d'exécution sous Lucid Lynx (Ubuntu 10.4) :
$ 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
Kmid a été repris et est en cours de portage sur KDE4

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

Il y a deux méthodes pour démarrer automatiquement Timidity.

  • au démarrage de l'ordinateur : dans ce cas tous les utilisateurs ont accès au serveur midi et le serveur a peut-être une priorité supérieure. L'inconvénient, c'est que lorsqu'un client midi est connecté à votre serveur timidity, vos autres applications audio (vlc, rhythmbox, flash player, etc. qui utilisent normalement pulseaudio) ne fonctionneront pas. Vous devrez fermer votre client midi pour pouvoir à nouveau utiliser ces applications.
  • au démarrage de la session utilisateur : dans ce cas, seul l'utilisateur en question a accès au serveur midi. En revanche, le serveur midi s'interfacera correctement avec pulseaudio et vous pourrez utiliser toutes vos applications audio en même temps dans une joyeuse cacophonie :-)
Faîtes simplement attention à ne pas lancer les serveurs des deux façons en même temps. Ça ne vous apportera rien et pourrait vous créer des problèmes.

Au démarrage de 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"

Au démarrage de la session

Le lancement au démarrage d'une session peut dépendre de votre environnement de bureau. Cette méthode fonctionne au moins sous Unity.

Pour lancer Timidity au démarrage de la session, créer le fichier ~/.config/upstart/desktopOpen.conf contenant :

description "Desktop Open Task"
start on desktop-start
task
script
	# Démarrer le serveur timidity
	/usr/bin/timidity -iA -Os
end script
Adapter les options du serveur timidity en fonction de ce qui marche chez vous. J'ai enlevé des options par rapport à la section ci-dessus car sinon le son "crachote" chez moi.

Pour fermer le serveur Timidity à la fin d'une session, créer le fichier ~/.config/upstart/desktopClose.conf contenant :

description "Desktop Close Task"
start on session-end
task
script
	# Arrêter les serveurs timidity
	/usr/bin/killall timidity
end script

Il ne vous reste plus qu'à fermer votre session et à vous reconnecter.

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 :

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

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.

Comme de nombreux logiciels sous linux, Timidity peut être utilisé soit en ligne de commande, soit via une interface graphique.

Applications→Son et vidéo→TiMidity++ MIDI sequencer

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 sauf si vous avez installé le paquet timidity-interfaces-extra

Dans ce cas il faut créer un raccourci dans Applications→Son et vidéo→TiMidity++ MIDI sequencer

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à).

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 (personnellement je préfère utiliser "-B4,8", cela donne de meilleurs résultats !!)
  • -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"
 
while [ 1 ]; do
 
while [ "$nombre" != "0" ] && [ "$nombre" != "1" ] && [ "$nombre" != "2" ] && [ "$nombre" != "3" ]; do
 
echo -e "\n\n\n==== Liste des processus lancé en rapport avec le midi :"
 
ps -A | grep midi
 
echo -ne "\n\n==== Que voulez-vous faire ?"
 
echo -e "\n0) Ne rien faire (Quitter le programme)"
echo "1) Lancer timidity (serveur) en mode ALSA"
echo "2) Lancer timidity (serveur) en mode ALSA avec sortie JACK"
echo "3) Arréter/Tuer timidity"
 
read nombre
 
done
 
if [ "$nombre" = "0" ]; then
	{
	exit 0
	}
fi
 
if [ "$nombre" = "1" ]; then
	{
	timidity -iA -B2,8 -Os -EFreverb=0&
	sleep 4
	}
fi
if [ "$nombre" = "2" ]; then
	{
	timidity -iA -B2,8 -Oj -EFreverb=0
	sleep 4
	}
fi
if [ "$nombre" = "3" ]; then
	{
	killall timidity
	}
fi
 
nombre=4
 
done

Recopier le contenu dans un fichier "timserver", rendez-le exécutable, double-cliquez dessus et faites "Lancer dans un terminal". Vous pouvez aussi le copier dans /usr/local/bin :

chmod u+x timserver ## donner la permission d'exécution
sudo cp timserver /usr/local/bin ## le copier dans le dossier des exécutables
timserver ## lancer le script

Pour améliorer le rendu sonore de Timidity, il est possible de charger d'autres soundfont. Pour changer le soundfont, il faut dans un premier temps en télécharger un sur le net, puis le configurer dans Timidity. La configuration la plus simple pour améliorer le rendu sonore de Timidity consiste à installer les paquets fluid-soundfont :

sudo apt-get install fluid-soundfont-gm fluid-soundfont-gs

puis de modifier le fichier de configuration de Timidity :

sudo gedit /etc/timidity/timidity.cfg

en dé-commentant la ligne "source /etc/timidity/fluidr3_gm.cfg", ce qui donne en fin de fichier :

# Disabling some of the Midi Controls can help with the CPU usage a lot.
# The same goes to the VLPF, sample anti-aliasing and effects such as
# reverb and chorus

# By default, try to use the instrument patches from freepats:
source /etc/timidity/freepats.cfg

# alternatively, you can use the fluid-soundfont:
source /etc/timidity/fluidr3_gm.cfg
#source /etc/timidity/fluidr3_gs.cfg

Vous pouvez également dé-commenter l'autre ligne pour essayer l'autre banque son.

Vous pouvez également tester d'autres banques son, comme expliqué plus haut dans la section Chargement du soundfont.

Il est également possible de convertir un fichier midi en fichier audio. Pour cela, ouvrez un terminal et tapez par exemple :

timidity -Ov fichier.mid

Timidity convertira alors fichier.mid en fichier.ogg.

Vous pouvez également le faire en utilisant les options suivantes :

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

Petite astuce : Vous en avez marre de devoir convertir vos fichiers un par un? Faites cd /chemin du fichier (ou ouvrir un terminal dans votre dossier) puis :

timidity -option *.mid

et vous transformerez tous vos fichier .mid dans le format de votre choix!!!

Site officiel :

http://timidity.sourceforge.net/

Timidity sur Wikipédia [en] :

http://en.wikipedia.org/wiki/TiMidity

  • timidity.1492977884.txt.gz
  • Dernière modification: Le 23/04/2017, 22:04
  • par 88.161.191.84