CODINGAMSLIVE ★ AMSLIVE n°15 - YM FAIT DU SKI ★

AMSLIVE n°15 - YM FAIT DU SKICoding Amslive

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-arbrite ?
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ésume à :

  • 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 plus facilement et plus rapidement le PSG.
  • l'environnement logiciel, avec des trackers plus complexes, gérant plus d'effets...

QUELQUES BYTES SUFFISENT

L'intérêt 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 nraura 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 énormément 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 ILOT 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 fa 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 s1arrêtant inopinément.
Avantages : les routines de compressions/décompressions 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 #FF. Si on la rencontre, on ne touche pas au registre. C'est parfait, car il s'agit d'un registre 4 bits et il n'y a donc pas de confusion possible. 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 !).

CONCLUSION

Le CPC c'est bien beau.

AMSLIVE n°15

» YMCRUNCHER v0.8 win32 ( NEW)
» KITAY : Player/convertisseur de fichier YM pour CPC ( avec les sources ) de MADRAM / OVL
» Download Dual Module Player ( player de .AYC votre CPC )

★ ANNÉE: ???
★ AUTEUR: MADRAM

Page précédente : AMSLIVE n°15 - PPI / PSG

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » AMSLIVE n°18 - Crtc Detection
» Coding » AMSLIVE n°07 - SINUS SITE , LA SUITE (2/2)
» Coding » AMSLIVE n°04 - Initiation Au Soundtracker
» Coding » AMSLIVE n°07 - HAPPY DRIVERS : LES RSX AMSDOS
» Coding » AMSLIVE n°04 - Z80
» Coding » AMSLIVE n°08 - 3D - BRESEN MAD (2/2)
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 602 millisecondes et consultée 3574 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.