Logo de l'association MO5.COM
Connexion / S'inscrire

     Association MO5.COM pour la préservation du patrimoine informatique et vidéo-ludique

 Lecture d'un article
 
Accueil
 
Association
 
Musées en ligne
 
Communauté
 
Le format YM
Par CSKi - Crée le 05/11/2002 - Dernière modification le 09/02/2005

Le format YM

De tout temps, les hommes se posent des questions. Qu'est-ce qui lie la conscience au corps ? Les notions de mérite et de responsabilité reflètent-elles l'illusion du libre-arbitre ? Qu'est-ce qu'on mange ? Et, plus récemment : le YM, c'est quoi ?

Tout commença lorsque Arnaud Carré alias Léonard décida d'écouter à son aise sur PC (ce qui semble contradictoire) des musiques d'Atari ST. Cet ordinateur utilise un composant Yamaha, clone du AY de General Instrument. Les différences se résument à :
- Une fréquence d'horloge deux fois plus élevée, ce qui se traduit par une meilleure précision (quasiment imperceptible) et par une gamme décalée d'une octave.
- L'environnement matériel, qui permet de programmer facilement et rapidement le PSG.
- L'environnement logiciel, avec des trackers complexes, gérant plein d'effets...

Quelques bytes suffisent

L'intêret d'un tel composant, c'est qu'il suffit de lui envoyer quelques données (hauteur du son, amplitude...) et il s'occupe du reste. Généralement, on remet à jour ces paramètres tous les 50ièmes de seconde (en phase avec le rafraîchissement écran), et cela donne les musiques que l'on entend dans la majorités des jeux et démos. Le rôle d'un "player" consiste à préparer les données à envoyer. Par exemple, tel son de percussion correspondra à une suite de valeurs (au début l'amplitude est forte, puis l'amplitude décroit rapidement tandis que la période augmente). On ne stocke qu'une seule fois cette suite, et on n'aura qu'à mettre le numéro du son à chaque fois qu'on en aura besoin. Cela explique pourquoi les fichiers musiques se révèlent si petits.

Bienvenue dans un monde de bourrins

L'autre solution retenue par Léonard est de stocker toutes les valeurs fournies au PSG. Si tel passage se répète X fois, et bien il y aura X fois les mêmes données. Un jeu CPC dont j'ai oublié le nom utilisa cette technique bien avant l'heure !

Le format YM, c'est simplement ça, agrémenté d'un header spécifiant le nom de la musique, celui de son auteur, et autres infos sympathiques. Cela dispense d'un player spécifique qu'il faudrait traduire pour passer d'une machine à une autre, mais prend énormement de place : Une minute de musique représente 60*50*14 = 42000 octets ! Cependant, une fois compressé, on retombe à des fichiers de quelques kilo-octets. Mais la compression utilisée sur PC demande de gros tampons, et pire, décompresse tout d'un seul tenant. Ce n'est donc pas exploitable sur CPC.

Retour dans un ilôt de finesse

Sur CPC, il faut compresser à notre manière, de façon à pouvoir récupérer les données petit à petit, et sans avoir à conserver celles qui ont servi. C'est dans la RTS de Jack qu'une telle technique a été appliquée pour la première fois (je ne compte pas les essais dormant sur des disks. Certains n'ont qu'à sortir des démos plus souvent !). Sur MSX des bougres ont créé le format MYM, remaniement du YM à une sauce plus digeste. Le Spectrum a suivi, et maintenant des CPCistes (dont Andy C. et Kevin Thacker/Morpheus) sont en train de porter le player MYM. Une version 0.4 est sortie, ne faisait pas de correction de fréquences et s'arrêtant inopinément. Avantages : les routines de compression/décompression sont déjàs écrites, et il existe une petite bibliothéque de fichiers .MYM.

Par contre, la dite compression ne semble pas très efficace. Voir la zik de Commando (version Spectrum) à 18 ko fait sourire. Patientez un peu, Overlanders proposera bientôt un kit de création de .AY : des ziks plutôt compactes bénéficiant d'un replay très peu gourmand en temps machine.

Le bug du YM

Signalons au passage que le format YM a un défaut.

Il faut d'abord savoir que quand on renvoie deux fois la même valeur dans un registre, rien ne se passe. Sauf dans le cas du registre 13 ! En effet ça réenclenche la génération de l'enveloppe à partir du début. Léonard a prévu le coup en introduisant la valeur flag
Mais il applique aussi ça aux registres 11 & 12 (qui sont 8 bits), alors qu'il n'y a pas lieu de le faire. Ainsi donc, avec le format YM, impossible d'envoyer une enveloppe de période #FF, (ni #FFxx, mais je ne crois pas que celles-ci soient bien indispensables !).


Ressources

Le kit AY (Preview) est un utilitaire sur CPC capable de compresser un fichier YM, et de le rejouer en le décompressant à la volée. Les amoureux de l'Amiga et ceux du PC seront heureux de trouver le [LNK2] et le [LNK3].

Vous pouvez trouver différents players sur les plates-formes de type Windows, celui de Leonard/Oxygene (ST-Sound) restant la référence incontournable (c'est normal, c'est lui l'inventeur du format). Son site ([LNK4]) vous permettra de récupérer la dernière version de ST-Sound, un certain nombre de YM et même un plugin pour [LNK6] !
Les linuxiens pourront télécharger un portage de ST-Sound pour leur OS préféré : [LNK5].

Les autres machines ne sont pas en reste, le site de [LNK7] leur permettra de récupérer le player pour MSX et CPC. Les utilisateurs de ZX pourront récupérer le fichier [LNK10], ceux qui sont sur Amiga prendront soit [LNK11], soit [LNK12].

Quelques liens supplémentaires, histoire de vous constituer votre banque de YM :
- The YM2149 Lovers Page propose une archive contenant toutes les musiques de David Whittaker.
- ST-Sound Pleasure Dome, où on peut trouver plus de 73 heures de musique.


Remerciements

Auteur de l'article : MadRam/OVL
Section Ressources : Cracky/CocOOn

 
En discuter dans les ForumsTous les articles