# Manuel de &kmidi;

Bernd Johannes
Wuebben

    wuebben@kde.org

Greg
Lee

    lee@hawaii.edu

&traducteurLudovicGrossard; &traducteurEricBischoff;
1999
2000
Greg Lee
2000-12-16
1.03.00

&kmidi; interprète des fichiers midi en utilisant des patchs (sons) d'instruments. Il fait de façon logicielle ce qu'une carte son GUS (Gravis UltraSound) ou SoundBlaster AWE fait de façon matérielle.

KMidi
midi
Lecteur
Timidity
midi
to
Wav

## Introduction

&kmidi; interprète des fichiers midi en utilisant des patchs (sons) d'instruments. Il fait de façon logicielle ce qu'une carte son GUS (Gravis UltraSound) ou SoundBlaster AWE fait de façon matérielle. Le seul matériel dont vous avez besoin est une simple carte son ou une simple puce. Même si vous possédez une GUS ou AWE, essayez tout de même &kmidi; car il sonne plutôt bien.

Et il a l'avantage suivant : si vous souhaitez qu'il ait un plus beau son, vous pouvez simplement retrousser vos manches et le réécrire, car bien entendu vous disposez librement du code source.

Il utilise cependant beaucoup le processeur. Lorsque j'ouvre de nouvelles fenêtres ou bien si je fais défiler le contenu d'une fenêtre, il y a des coupures dans la musique. Je vous recommande de plus de vous procurer les banques de sons (patchsets), voir plus bas. Ils sont trop imposants (10-12 Mo) pour les inclure dans la distribution de &kde;, donc je n'ai inclu que 5 sons (patches) comme exemples. &kmidi; gère 257 banques de 128 instruments chacune.

&kde; est basé sur le superbe programme de Tuukka Toivonen's, TiMidity, qui fait la plus grosse partie du travail. &kmidi; est une interface graphique pour TiMidity, et TiMidity, avec d'autres interfaces utilisateur, est incluse dans la distribution des sources de &kmidi;. Merci Tuukka !

&kmidi; gère à l'heure actuelle (version 1.3) les plates-formes suivantes :

- &Linux;

- FreeBSD

- DEC OSF/1

- &HP-UX;

- SunOS

- Sun &Solaris;

Le portage vers d'autres plates-formes devrait être facile. Veuillez me contacter si vous voulez réaliser le portage de &kmidi;.

Pour de plus amples informations sur les points qui ne serait pas couverts par ce manuel, voir la page de manuel de `timidity`.

Notez que les fichiers midi ont une taille typiquement de l'ordre de 50 Ko, voire moins, et sont donc très faciles à télécharger, si bien que vous ne manquerez jamais de superbes morceaux midi à jouer.

Amusez-vous bien avec &kmidi; !

Bernd Johannes Wuebben wuebben@kde.org

## Utilisation

### Premiers pas

Si vous n'avez jamais utilisé &kmidi;, vous verrez le nom d'un des fichiers midi d'exemple dans la fenêtre noire. Cliquez sur le bouton Lecture pour le jouer. Déplacez le pointeur de la souris de boutons en boutons pour obtenir une brève description de ce que fait chacun d'eux.

Cliquez sur le logo KMidi en haut à gauche pour faire apparaître la partie inférieure du tableau de bord de &kmidi;. Vous verrez alors une fenêtre noire, l'afficheur de canaux, qui affiche un diagramme en barres des notes jouées sur les 16 canaux midi. À sa gauche on trouve un sélecteur de banque de son et un sélecteur de morceau. Cliquez sur le sélecteur de morceau pour afficher une liste des fichiers midi de démonstration joints à la distribution &kmidi;. Cliquez sur l'un d'entre eux si vous le désirez pour le jouer.

Cliquez sur le bouton Info pour afficher des informations sur le fichier midi que vous êtes en train de jouer et les paroles de Karaoke (si le fichier midi en comporte).

Cliquez sur le bouton liste de lecture pour chercher des fichiers midi dans votre système de fichiers et composer votre propre liste de fichiers à jouer. Seuls les fichiers midi seront affichés, à moins de valider l'affichage de tous les fichiers, qu'ils aient comme suffixe `.mid` ou `.kar` ou non. Double-cliquez sur un nom de fichier sur la partie gauche de l'écran pour l'ajouter à la liste de lecture (affichée sur la droite).

Ne soyez pas surpris ou chagrinés si certaines fichiers midi ne produisent pas ou peu de son. &kmidi; est distribué avec lamentablement peu de sons (patches) d'instruments. Désolé. Rapportez-vous à la section de ce document sur la façon d'obtenir des banques de sons (patchsets) sur le réseau.

### Listes de lecture

Cliquez sur le bouton d'éjection pour ouvrir le gestionnaire de liste de lecture. Sur la gauche vous verrez le contenu du dossier où vous étiez la dernière fois que vous avez modifié la liste de lecture. Sur la droite vous verrez la liste de lecture actuelle. Choisissez dans la partie de gauche un fichier midi à ajouter à la liste de lecture en double-cliquant dessus, ou cliquez une seule fois, puis choisissez Ajouter.

Les seuls fichiers affichés sur la gauche sont des fichiers midi. Les fichiers midi compactés ne seront malheureusement pas reconnus, donc si vous avez utilisé par exemple `gzip` pour compacter les fichiers, il vous faudra dévalider le bouton filter en bas, et tous les fichiers deviendront visibles. &kmidi; ne décide pas si un fichier est un fichier midi en regardant son nom. Au lieu de cela, il lit un bout du fichier pour voir s'il ne serait pas un fichier midi. Il n'est donc pas nécessaire de nommer vos fichiers midi avec `.mid` pour suffixe.

Les listes de lecture actuelles se trouvent vers le bas de l'écran. Lors du premier démarrage, il y en a une seule, nommée défaut et comprenant les fichiers midi d'exemple fournis avec &kmidi;. Vous pouvez en changer le contenu en cliquant une seule fois sur défaut (s'il n'est pas déjà sélectionné) puis en sélectionnant Fichier Enregistrer pour remplacer le contenu du fichier de listes de lecture par votre liste de lecture courante. Vous pouvez également sélectionner Fichier Ajouter pour ajouter votre liste de lecture courante à la fin du fichier de listes de lecture. Pour créer une nouvelle liste de lecture, choisissez plutôt Fichier Enregistrer sous... et saisissez le nouveau nom que vous avez choisi dans la petite boîte de dialogue qui apparaît. Double-cliquez sur le nom d'une liste de lecture pour remplacer votre liste de lecture actuelle par le contenu d'une liste que vous avez enregistrée. Cela peut également se faire depuis le tableau de bord de &kmidi; en cliquant une seule fois sur le nom d'une liste de lecture dans la liste déroulante Ouvrir une liste de lecture.

Vous pouvez supprimer une liste de lecture en cliquant sur son nom puis en choisissant Fichier Supprimer .

La barre verticale séparant la liste de dossiers de la liste de lecture peut être glissée de gauche à droite avec la souris. La barre horizontale séparant ces dernières des noms de listes de lecture peut être glissée vers le haut et le bas.

### Noms de fichiers midi

Les noms des fichiers midi que vous voyez dans le tableau de bord de &kmidi; peuvent être légèrement différents des noms de fichiers réels. Par souci de lisibilité, &kmidi; remplace tous les _ dans le nom du fichier midi par des espaces, et tronque les extensions `.mid` et `.MID` si elles sont utilisées.

### Configuration

En cliquant sur le bouton de configuration du tableau de bord de &kmidi;, un écran de configuration apparaît, dans lequel vous pouvez choisir la couleur de fond des deux parties de ce tableau de bord ainsi que la couleur des leds. Pour le moment, la couleur utilisée pour le canal des percussions dans l'afficheur de canaux n'est pas configurable, elle est toujours jaune.

### Banques de sons

En haut à gauche de la partie inférieure se trouve le sélecteur de banque de sons. &kmidi; est distribué avec un choix de trois banques de sons : piano + guitare, piano, et guitare. Il n'est pas vraiment intéressant de choisir la banque de sons de piano ou de la guitare, ces choix sont disponibles essentiellement pour l'exemple. Quand vous vous procurez un grand nombre de banques de sons, vous pouvez les choisir depuis le tableau de bord de &kmidi;. Voici comment procéder :

Pour chaque banque de sons, créez un fichier `cfg` décrivant les sons et leurs banques et leurs numéros d'instrument (de programme midi). Puis saisissez dans le fichier `timidity.cfg` une ligne `source nom_de_fichier` ainsi qu'une ligne plus haut n, où nom_de_fichier est le nom que vous avez attribué au fichier contenant les sons, et où n est le numéro de la ligne à laquelle nom_de_fichier apparaîtra dans le tableau de bord de &kmidi;. Lorsque vous cliquerez sur ce nom, la banque de sons sera activée. Les banques de sons sont numérotées à partir de 0.

Dans les fichiers `cfg`, les banques de sons et de percussions ainsi que le nom des sons doivent être indiqués, car ceux qui ne le seraient pas ne seraient pas chargés depuis les fichiers où ils se trouvent (fichiers GUS ou polices de sons), même si les sons sont disponibles. C'est ainsi qu'il est facile d'exclure certains sons d'une police de sons ainsi que d'en charger de meilleurs depuis un police de sons chargé plus loin. Ne les déclarez simplement pas avant d'avoir demandé à charger la police de sons.

Quand le même son de la même banque de sons ou de percussions est déclaré plusieurs fois, seule la première déclaration est prise en compte. Mettez donc vos meilleures polices en premier.

Il existe un utilitaire `sf2cfg` permettant d'élaborer un fichier `cfg` pour un police de sons `sbk`/`sf2`, qui extrait tous les sons se trouvant dans la police de sons. Par ailleurs, des fichiers `cfg` pour `chaos8m.sf2` et `chaos12m.sf2` ont été inclus.

### Polyphonie

Vous entendez des blancs dans la musique ? Il se peut que &kmidi; prenne du retard dans les nombreux calculs nécessaires à l'ajustement de la hauteur des sons d'instrument, au filtrage du signal, à la combinaison des notes, etc. Si c'est le cas, vous pouvez améliorer la situation en utilisant le compteur en bas à droite de la partie inférieure du tableau de bord de &kmidi;. Il permet d'ajuster le nombre maximal de voix polyphoniques utilisées à un moment donné. Quand vous diminuez la polyphonie maximale, vous allégez la tâche de &kmidi; et perdez en contrepartie quelques effets de chorus ou de réverbération, ou alors il se peut que certaines notes soient raccourcies ou même perdues. (Dans certaines circonstances, &kmidi; génère des notes supplémentaires pour imiter l'effet de chorus ou de réverbération midi).

### Effets

Des effets peuvent modifier le son de plusieurs manières, dont certaines peuvent sembler mystérieuses. On peut demander des effets de quatre façons différentes, et les contrôler de deux façons différentes.

Une chanson midi peut spécifier un effet pour tous les instruments jouant sur l'un des 16 canaux midi. De même, elle peut spécifier plusieurs effets pour plusieurs canaux. Quand vous appuyez sur le bouton effet, le signal est filtré de manière à imiter les effets midi : chorus, réverbération, céleste et phaser, mais il n'y aura aucun effet si la chanson contenue dans le fichier midi ne les demande pas. Deux des effets midi standards, les harmoniques et la brillance, ne sont pas implantés par des filtres (les filtres ont été programmés par Nicolas Witczak).

Si vous n'appuyez pas sur le bouton effets, vous obtenez quand même des chorus et de la réverbération sur les canaux où ils sont demandés, mais de manière différente. Au lieu d'utiliser des filtres, des notes supplémentaires sont générées. Elles sont jouées à une hauteur légèrement différente pour l'effet de chorus, et légèrement retardées pour la réverbération. Il y a également des ajustements effectués pour tenir compte de l'enveloppe et du vibrato. Lorsque le bouton effets n'est pas enfoncé, vous n'obtenez pas d'effet céleste ou de phaser.

Les effets peuvent également être demandés par un son. C'est à dire qu'un son peut contenir une suggestion de niveau de chorus ou de réverbération. Les sons AWE précisent en général des effets, mais les sons Gravis-Forte ne le font pas (c'est pour cela que les banques de sons AWE ont tendance à avoir un son légèrement coloré). Les effets requis de cette façon sont réalisés par la méthode note fantôme, et ne sont pas affectées par le bouton effets.

Vous pouvez également demander des effets. Notez les quatre cases à cocher sur la droite du panneau de contrôle. Chacune peut être dans un état parmi trois : Normal (la valeur par défaut), Extra et Non. Les deux cases à cocher du milieu contrôlent le chorus et la réverb. Si elles sont réglées sur Normal, les effets sont traités comme décrits plus haut. Si elles sont réglées sur Extra, des notes supplémentaires sont générés sur tous les instruments et tous les canaux pour simuler du chorus ou de la réverbération, ceci étant assuré en plus des filtres d'effets s'ils sont demandés en cliquant sur effets. Quand ses case sont sur Non, aucune note de chorus ou de réverbération supplémentaire n'est générée.

Enfin, des effets peuvent être demandés par un message sysex étranger au système midi (system exclusive) dans un fichier midi. De tels messages ont été conçus pour permettre de contrôler l'architecture matérielle de certains synthétiseurs. &kmidi; décode dans une certaine mesure les messages sysex pour les synthétiseurs Roland GS et Yamaha XG, et fait de son mieux pour modifier le son en conséquence. Le chorus, la réverbération et leurs combinaisons sont réalisés grâce à la méthode de la note fantôme et peuvent être inhibés grâce aux cases à cocher décrites plus haut. Toutefois, quand la variation céleste du chorus est demandée dans un message sysex XG, le filtre céleste écrit par Witczak est invoqué, si du moins le bouton eff est enfoncé.

### Options de ligne de commande

En dehors de la possibilité de donner le nom d'un ou plusieurs fichiers midi sur la ligne de commande, les informations contenues dans cette section ne sont probablement pas très utiles à connaître. Si vous avez besoin de ces options, alors vous préférerez probablement utiliser la version texte de ce programme : timidity.

    kmidi options fichier

Utilisez "-" comme nom de fichier pour lire un fichier MIDI depuis l'entrée standard `stdin`

#### Options :

`-o` `nomdefichier`

  Enregistre la sortie dans nomdefichier, qui peut être un fichier, un périphérique, ou un serveur audio HP-UX, suivant le mode de sortie choisi grâce à l'option `-O`. Le nom de fichier spécial - permet de rediriger la sortie vers `stdout`.

`-O` `mode`

  Permet de choisir le mode de sortie parmi les modes précompilés. Le mode doit commencer par l'un des identificateurs de mode de sortie. Exécutez TiMidity avec l'option `-h` pour en avoir la liste.

`-s` `fréquence`

  Règle la fréquence d'échantillonage sur `fréquence` Hz ou kHz. Comme certains périphériques de son ne supportent pas certaines fréquences, un fréquence voisine peut être choisie en fonction de l'implantation.

`-a`

  Active le filtre d'antialiasing. Les échantillons sont passés à travers un filtre passe-bas avant d'être joués, ce qui réduit le bruit de similitude à des fréquences de rééchantillonnage basses.

`-f`

  Active le mode de déclin rapide. Agit sur les enveloppes rapides. Certains fichiers MIDI ont un meilleur son lorsque les notes déclinent plus lentement, car on a alors une impression de réverbération.

`-p` `n`

  Active la polyphonie (le nombre maximal de voix simultanées).

`-A` `n`

  Augmente le volume de `n` pour cent (peut provoquer la suppression du surplus de signal)

`-C` `n`

  Détermine le rapport des fréquences d'échantillonage et de contrôle. Cela détermine à quel rythme les enveloppes sont recalculées, les rapports faibles conduisent à une meilleur qualité mais consomment plus de temps processeur.

`-E`

  Active les effets programmés par Witczak pour le chorus, la réverbération, le phaser et le céleste.

`-&num;` `n`

  Sélectionne la banque de sons

`-L` `dossier`

  Ajoute le dossier au chemin de recherche

`-c` `fichier`

  Lit un fichier de configuration supplémentaire

`-I` `n`

  Définit l'instrument `n` comme l'instrument par défaut.

`-P` `fichier`

  Utilise le `fichier` de son pour tous les morceaux

`-D` `n`

  Joue les percussions sur le canal `n`

`-Q` `n`

  Ignore le canal `n`

`-F`

  Active le passage rapide de la voie stéréo gauche à la voie stéréo droite et réciproquement

`-U`

  Retire les instruments de la mémoire entre les fichiers MIDI

`-i` `mode`

  Choisit l'interface utilisateur (voir ci-dessous pour en avoir une liste)

`-B` `n`

  Détermine le nombre de fragments de tampon mémoire

`-h`

  Affiche le message d'aide

#### Modes de sortie disponibles (`-0`)

`-O` `d`

  Fichier périphérique `dsp` de &Linux;

`-O` `w`

  fichier RIFF WAVE

`-O` `r`

  données brute d'enveloppe

#### Options de format de sortie (à la suite de `-O`)

``8'`

  échantillonnage codé sur 8 bits

``1'`

  échantillonnage codé sur 16 bits

``U'`

  encodage uLaw

``l'`

  encodage linéaire

``M'`

  mono

``S'`

  stéréo

``s'`

  sortie signée

``u'`

  sortie non signée

``x'`

  sortie à octets intervertis

#### Interfaces disponibles (à la suite de `-i`)

`q`

  interface &Qt; de &kmidi;

`d`

  interface nue (dumb)

#### Options d'interface (à la suite de l'option `-i``?`)

``v'`

  plus verbeux (cumulatif)

``q'`

  plus silencieux (cumulatif)

``t'`

  détaille les étapes de l'exécution des morceaux

`-i`

  sélection du mode d'interface utilisateur (voir la liste plus bas)

## Questions et réponses

Où puis-je me procurer une banque de sons complète ?

Veuillez vous rapporter à la section correspondante du chapitre sur l'installation de &kmidi;.

## Architecture

### Processus

&kmidi; est l'interface utilisateur qui prend en charge l'affichage à l'écran, l'appui sur les boutons, etc. Il s'exécute dans un processus séparé de &timidity;, qui lit des fichiers MIDI et les joue.

### Méthode de synthèse sonore

&timidity; dispose d'un générateur de note, de deux générateurs d'enveloppe, de trois oscillateurs sinusoïdaux basse fréquence, d'un filtre passe-bas, et d'une unité d'effets. (Le filtre passe-bas n'est utilisé que quand la quatrième option d'interpolation de &kmidi; est choisie et que le bouton filtre est enfoncé -- pour le moment ça ne fonctionne pas bien).

Le générateur de note rééchantillonne les sons d'instruments aux fréquences de base appropriées aux notes en cours d'exécution. (L'algorithme d'interpolation utilisé peut être choisi en utilisant les quatre cases à cocher dans la partie supérieure du tableau de bord de &kmidi;).

Les générateurs d'enveloppe modulent chaque note avec, dans l'ordre : une phase d'attaque, une phase de soutenu, une phase de déclin, et une phase de relâchement. Un des générateurs prend en charge l'amplitude, et les autres s'occupent du timbre et/ou de la fréquence de suppression du filtre passe-bas.

Les oscillateurs basse fréquence modulent l'amplitude (pour le trémolo), la fréquence (pour le vibrato), et le filtre passe-bas la fréquence de suppression (rezo sweep du XG).

L'unité d'effets fournit des effets d'écho, de désaccordage, de réverbération, de chorus, de céleste et de phaser. L'écho (obtenu en générant des notes d'écho supplémentaires) et la réverbération (obtenue avec un filtre) implantent la réverbération midi. Le désaccordage (obtenue en générant des notes décalées supplémentaires) et le chorus (obtenu avec un filtre) implantent le chorus midi (les filtres d'effets ne sont actifs que quand le boutons effets de &kmidi; est appuyé. L'écho et le désaccordage peuvent être contrôlés grâce aux deux cases à cocher du milieu sur la droite de la partie inférieure, et grâce aux menus Chorus et Réverb.

Les instruments peuvent avoir un ou deux sons, et pour chacun d'entre eux, une banque de sons peut fournir différents sons pour les différentes plages de vélocité (en général pour les pianos) et pour différentes plages de hauteur. Les banques de son GUS fournissent toutefois seulement un seul son et une seule plage de vélocité par instrument (si vous cliquez sur la case le plus à droite sur la droite de la partie inférieure, &kmidi; &kmidi; affichera dans sa fenêtre d'informations les noms des sons au fur et à mesure qu'il les charge, un `(2)` s'ils ont deux sons, et la plage de vélocité).

### Implantation midi

L'implantation des messages et contrôleurs midi qui existent de par le monde fait qu'ils provoquent quelque chose, mais pas forcément ce à quoi on s'attend. Les contrôleurs NRPN qui permettent de régler le temps d'attaque et de déclin ne sont pas implantés, car je n'ai pas trouvé de fichier midi qui les utilise. Le contrôleur du flangeur n'est pas implanté, bien que le flanging demandé par un message sysex dump du XG soit implanté. Seulement quelques contrôles matériels des sysex dump de Roland et Yamaha sont implantés.

&timidity; permet de gérer des fichiers midi prévus pour être joués sur jusqu'à quatre synthétiseurs, en maintenant séparés les quatre ensembles de 16 canaux sur chaque synthé. Cependant, dans le fichier midi, les synthés doivent être sélectionnés en utilisant des commandes de port (par le biais de sysex dumps du Roland-GS ou du Yamaha-XG). Certains fichiers midi prévus pour plusieurs synthés n'utilise pas de commandes de port. (La fenêtre d'informations affiche les commandes de port lorsqu'elles existent).

L'affichage à barres verticales de &kmidi; de l'activité des canaux est limitée à deux jeux de 16 canaux. L'affichage par canal des sons avec des barres horizontales pour les valeurs de contrôleur est limité à un seul jeu de 16 canaux.

### Volume

&kmidi; réduit significativement les niveaux de volume générés par &timidity; dans son implantation originelle. Cela diminue l'écrétage du signal et donne une meilleure dynamique (malheureusement, il se peut qu'il y ait des sons inattendus aux faibles volumes). Si vous souhaitez plus de volume, je vous suggère d'augmenter le volume quelque part ailleurs, en utilisant &kmix; pour augmenter le volume de ligne ou de mixage de `/dev/dsp`, ou en amplifiant le son au niveau des haut-parleurs ou d'un autre périphérique.

### Problèmes de calcul

&timidity; peut prendre du retard quand il calcule les données à envoyer au pilote sonore, et il peut donc y avoir des coupures dans la musique. &timidity; essaye d'anticiper l'éventualité d'une coupure en surveillant l'état de son tampon de sortie et de ceux du pilote sonore, et si les tampons ne sont pas assez remplis, il essaye de rattraper son retard en diminuant le nombre de calculs qu'il doit effectuer : il utilise une routine d'interpolation plus rustique, lors du rééchantillonnage, il arrête de faire de l'écho supplémentaire et des notes jouées plus haut et plus bas pour les effets de réverbération et de chorus, il se met à arrêter les notes précocement, et saute même des notes. C'est ainsi que, en fonction du morceau midi, de la banque de sons, de la rapidité de votre système, même si vous n'entendez pas de coupures, vous remarquerez une baisse de qualité lorsque &timidity; est surchargé. Les témoins lumineux du tableau de bord de &kmidi; donne une idée de l'état de désespoir de &timidity; dans ses efforts pour continuer à jouer de la musique. (Signes de désespoir : la led du tampon passe d'un vert sain à un orange fiévreux, la led de l'interpolation s'éteint (ce qui signifie que l'interpolation linéaire est utilisée pour rééchantillonner), la led d'écho ou de désaccordage s'éteignent (ce qui signifie que des notes d'écho ou de désaccordage ne sont plus jouées).

La surveillance du tampon de sortie passe par des appels au pilote de sortie pour déterminer la quantité de données dans les tampons. Je sais comment faire ça avec le pilote OSS de Hannu Savolainen (pour &Linux; et quelques autres systèmes), peut-être pour les vieilles stations Sun (ça fonctionnait), mais pas pour les autres pilotes.

Vous pouvez alléger la tâche de calcul de &timidity; grâce à plusieurs expédients :

1. Réduisez la polyphonie autorisée (le compteur rotatif dans la partie du bas).

2. Désactivez le bouton effets.

3. Optez pour une interpolation de rééchantillonage moins gourmande (une des cases à cocher de la partie du haut les plus à gauche).

4. Désactivez l'écho, la désaccordage ou la stéréo, en utilisant les trois cases à cocher de gauche de la partie du bas.

5. Choisissez le réglage Pas de réverb du menu Réverb.

Bien sûr, il y a souvent des pertes de qualité dues à l'opérateur. Le bouton filtre n'a pas d'effet à moins de choisir l'option d'interpolation par spline cubique + Filtrage.

### Problèmes de mémoire

Il se peut que &timidity; utilise trop de mémoire pour les sons. Des symptômes peuvent être que votre gestionnaire de fenêtres devienne très lent, ou plante. Ce problème ne se produit probablement que si vous utilisez de grosses polices de sons sf2 de 30 mégaoctets et plus. Par exemple, les sons de piano dans la police de sons PC400 de Personal Choice peuvent utiliser 25 mégas chacun. Après avoir joué une liste de fichiers MIDI qui utilisent trois de ces pianos, eh bien ça fait 75 mégas de mémoire vive utilisée. &kmidi; vous permet, au moyen de sa boîte de dialogue de configuration, de définir un nombre maximal de mégaoctets qui peuvent être utilisés pour conserver les sons utilisés pour jouer les fichiers midi précédents. Quand ce maximum est dépassé, &timidity; déchargera les sons utilisés il y a le plus de temps, pour rendre de la mémoire vive au système. Le maximum par défaut est 60 mégas, ce qui fonctionne bien sur ma machine (j'ai 48 mégas de mémoire vive et 196 mégas de cache). Si vous le réglez sur une valeur inférieure, il y a plus de sons qui devront être rechargés à partir des fichiers de sons lorsque vous jouez une liste de morceaux midi, ce qui peut ralentir les opérations. Si vous disposez de beaucoup de mémoire vive, vous pouvez utiliser le réglage pas de limite.

Si vous avez alloué suffisamment d'espace mémoire, des fichiers de polices de sons entiers peuvent être lus d'un seul coup, au lieu d'être lus son par son. Il peut être contre-productif de déclarer un maximum trop bas, car les fichiers de polices de sons occupe bien moins de mémoire totale quand le fichier est chargé en une seule fois que lorsque les sons sont lus un par un (je ne sais d'ailleurs pas pourquoi).

Pour des systèmes "petit-indien" (octet d'adresse la plus basse de poids faible) comme les systèmes x86, les polices de sons sf2 sont cartographiés en mémoire plutôt que d'être lus. C'est beaucoup plus rapide au démarrage. Je n'ai pas trouvé de moyen de faire la même chose sur des systèmes "grand-indien".

Après avoir joué un fichier midi, &kmidi; indique dans la fenêtre d'informations combien de mémoire est actuellement occupée par les sons.

Si vous n'avez pas beaucoup de mémoire vive ou de mémoire cache, le fait de définir un maximum peu élevé pour la mémoire de sons peut ne pas empêcher que &kmidi; ne plante votre système. Soyez donc prudent lorsque vous utilisez de grandes polices de sons.

## Licences et remerciements

&kmidi; utilise le moteur &timidity; 0.2i de Tuukka Toivonen - Copyright (C) 1995 Tuukka Toivonen toivonen@clinet.fi. En fait, une version améliorée du programme original de Tuukka avec cinq autres interfaces utilisateur alternatives est contenue dans la distribution de &kmidi; (voir plus bas pour des informations sur la compilation de &timidity;).

&kmidi; et &timidity; utilisent les extensions de polices de sons AWE de Takashi Iwai iwai@dragon.mm.t.u-tokyo.ac.jp et les extensions AMD InterWave extensions de Greg Lee lee@hawaii.edu qui vous permettent d'utiliser des polices de sons (fichiers `.sbk` et `.sf2`) et les banques de sons IW (fichiers`.fff`/`.dat`) en plus des fichiers `.pat`.

## Copyright

&kmidi; Copyright 1997 Bernd Johannes Wuebben wuebben@kde.org

&kmidi; utilise le moteur &timidity; 0.2i de Tuukka Toivonen, Copyright © 1995 Tukka Toivonen toivonen@clinet.fi.

Traduction française par &LudovicGrossard; et &EricBischoff;.

&underFDL; &underGPL;

## Installation

### Comment obtenir &kmidi;

&kmidi; fait partie du projet &kde; http://www.kde.org. &kmidi; peut être téléchargé à l'adresse ftp://ftp.kde.org/pub/kde/, le site &FTP; principal du projet &kde;.

### Configuration nécessaire

Pour compiler avec succès &kmidi;, il vous faut les versions appropriées des bibliothèques de programmation `kdelibs`. Toutes les bibliothèques nécessaires ainsi que &kmidi; lui-même se trouvent à l'adresse ftp://ftp.kde.org/pub/kde.

Pour compiler l'interface nue en mode ligne de commande de &timidity;, tout système standard de type &UNIX; devrait convenir. Les autres interfaces nécessitent des configurations spécifiques (reportez-vous aux différents fichiers `README` de la distribution). L'interface &Motif; fonctionne assez bien avec Lesstif, mais fonctionne mieux avec &Motif;.

### Compilation et installation

Si vous avez déjà installé &kmidi;, il serait avisé de déplacer ailleurs votre dossier de configuration (en principe `&dollar;`KDEDIR`/share/apps/kmidi/config/`) avant d'installer cette version, car les fichiers qui s'y trouvent ont changé, et il est probable que vous désiriez utiliser ou au moins jeter un œil aux nouvelles versions. De même, avant d'installer la version non-&kde; de &timidity;, faites une copie de `/usr/local/lib/timidity/`. D'un autre côté, si vous souhaitez une installation neuve, il vous faut complètement supprimer tous les fichiers de ces deux dossiers, car il se pourrait que les vieux fichiers ne soient pas remplacés par les nouvelles versions.

Si vous disposez de la distribution complète de kdemultimedia, placez-vous dans le dossier de kdemultimedia, puis saisissez

    &percnt;./configure

ou alors, pour inclure toutes les autres interfaces utilisateur :

    &percnt;./configure
    --enable-interface=ncurses,xaw,gtk,tcltk,slang,motif

Puis pour construire tous les programmes multimédia, restez dans ce dossier, ou alors si vous ne souhaitez construire kde &kmidi; alors utilisez `cd` pour aller dans le dossier `kmidi`, puis saisissez :

    &percnt; make
    &percnt; make install

La version non &kde; de &timidity;, `timidity`, est compilée et installée en même temps que &kmidi;. La page de manuel `timidity.1` n'est toutefois pas automatiquement installée dans `/usr/man/man1/`.

### Comment se procurer un jeu complet de sons ?

&kmidi; et &timidity; peuvent utiliser deux sortes de sons : les sons GUS et les polices de sons AWE32 (fichiers `sf2`). Un son, &cad; un ensemble d'échantillons et de paramètres pour un instrument donné, se trouve dans un fichier qui lui est propre si c'est un son GUS, alors que les ensembles de sons AWE en placent plusieurs dans un seul fichier `.sf2` (ou `.sbk`).

Je recommande les polices de sons `.sf2`, et, parmi ces dernières, de préférence les polices Chaos mentionnées ci-dessous.

Ouvrez la fenêtre de configuration de &kmidi; pour accéder à des liens vers des pages web avec des banques de sons. Voici quelques autres endroits où vous pouvez vous procurer des sons.

Dan Hollis goemon@anime.net a construit une banque de sons. Veuillez consulter sa page à l'adresse http://www.anime.net/~goemon/timidity, et donnez-lui un coup de main pour en faire la meilleure banque qui existe.

Nouveau : j'ai installé cette banque de sons sur ftp.kde.org. Elle se trouve en ce moment à l'adresse ftp://fiwi02.wiwi.uni-tuebingen.de/pub/kde/stable/Beta2/apps/multimedia/sound/ mais elle risque de bouger encore quelque peu avant que nous ne lui trouvions un emplacement correct. Fouillez donc un peu sur ftp.kde.org, si cette banque ne se trouve déjà plus à cet endroit au moment où vous lisez cette documentation.

Les sons peuvent aussi se trouver sous la forme de paquetages dep ou rpm sur l'archive de Sunsite :

- Debian : timidity-patches_0.1.tar.gz

- RPM : timidity-patches-1-1.i386.rpm

- RPM : timidity-patches-1-1.src.rpm-try2

Je n'ai pas (encore) testé ces sons, et personnellement j'utilise la banque de sons Midia ainsi que quelques sons et quelques banques de percussions supplémentaires. La banque de sons Midia se trouve à l'adresse : ftp://archive.cs.umbc.edu/pub/midia/.

Pour des banques de sons et de percussions supplémentaires, procurez-vous les sons wow et gsdrum à l'adresse ftp://ftp/cdrom.com/pub/gus/sound/patches/files/.

Vincent Pagel a rassemblé une collection de sons. Cette adresse n'est en service que pendant la nuit (Paris). ftp://sig.enst.fr/pub/midi/instruments/. Le fichier de configuration correspondant à cette banque de sons se trouve ici.

Jetez également un œil à la page de Timidity.

ainsi qu'à la page de Takashi. La page de Takashi recommande la police de sons AWE32 de 8 mégas `chaos8m.sf2` et la police de sons AWE32 de 12 mégas `chaos12m.sf2` disponibles à l'adresse , qui sont très bien. (Elles sont fournies sous forme de fichier d'archives auto-décompactable `.exe`).

#### Installation d'une banque de sons

Certaines de ces banques de sons sont fournies avec un fichier de configuration `.cfg` semblable aux fichiers .cfg fournis avec &kmidi; et résident dans le dossier `KDEDIR/share/apps/kmidi/config`. Pour les polices de sons `.sf2`, un programme utilitaire, `sf2cfg`, qui construit un fichier `.cfg` à partir d'une police `.sf2` est fourni. Cet utilitaire est compilé en même temps que &timidity;.

Il n'est pas nécessaire de donner aux fichiers `.cfg` l'extension `.cfg`. Il s'agit de fichiers texte ordinaires dont la structure est décrite dans une autre section de ce manuel.

Pour terminer l'installation d'une banque de sons complète, modifiez le fichier `timidity.cfg` et recopiez-y les fichiers de configuration correspondants à la (aux) banque(s) de son(s) que vous avez téléchargée(s). Reportez-vous au fichier `timidity.cfg` pour voir comment faire. C'est tout. Maintenant vous pouvez continuer et jouer les autres fichiers midi qui sont dans la distribution de &kmidi; (et également n'importe quel autre fichier midi bien entendu).

#### Divers

Parfois, vous vous apercevrez (en ouvrant la fenêtre d'informations) que &kmidi; ne peut pas trouver de son pour un instrument donné. Dans ce cas, tout ce que vous avez à faire est d'aller vous procurer le son manquant et de l'installer en le déplaçant dans le dossier patch/ et en éditant votre fichier `.cfg` de banque de sons afin d'indiquer à &kmidi; qu'un nouveau son est disponible.

Parfois un instrument particulier ne sonne pas très bien. Dans ce cas, allez simplement vous procurer un son différent dans une des archives Ultrasound et remplacez le son qui pourrait être mieux par un meilleur son. Comme vous pouvez le voir, la qualité d'exécution de chacun des instruments est entièrement entre vos mains. Vous pouvez même fabriquer vos propres sons à l'aide de l'utilitaire `pat2wav` inclus dans la distribution de &kmidi;.