Transferer une musique Spectrum sur Amstrad CPC
-----------------------------------------------
Tom et Jerry du GPA * Decembre 2005


Ce petit article se propose de vous indiquer la marche a suivre pour
transferer sur CPC des musiques composees sur un malheureux concurrent de
notre machine fetiche ( :-) ), le Sinclair Spectrum. Depuis le rachat de
Sinclair par Amstrad, les derniers modeles de Spectrum ont eu droit
a un beau processeur sonore AY-8910, proche cousin du AY-8912.
Un nombre impressionnant de musiques sont disponibles sur internet et il est
tout a fait possible la plupart du temps de les transferer sur CPC !

C'est l'ami Tronic qui, apres m'avoir ouvert les yeux sur le monde merveilleux
des musiques Spectrum, m'a incite a rediger ce document. Il ne pretend pas
etre exhaustif, mais vous evitera peut-etre de perdre du temps betement si
vous souhaitez effectuer ce type de transfert.

Je n'ai pas mis de lien pour certains logiciels dont vous avez besoin pour le
transfert afin de ne pas trop augmenter la taille de l'archive. Une simple
recherche sur Internet vous permettra de vous les procurer (tous freeware).


Pre-requis
----------

* Un PC (eh oui....)

* ZX Spectrum Soundchip Emulator de Sergey Bulba Vladimorovich.
Ce programme permet de creer des fichiers YM6! à partir des musiques Spectrum
qu'il est capable de lire (pratiquement tous les formats !).

* YM6! Spectrum to Atari : un outil specialement bricole pour cet article !
  A noter que le programme a besoin du fichier VB6FR.DLL pour fonctionner.

* LHA.EXE, un vieil archiveur utilisant le format LZH. Les fichiers YM6! sont
  par defaut compactes avec cette routine de compression.

* Le KIT AY v0.3 de Madram/Overlanders. Ce programme permet de convertir
  les fichiers YM6! decompresses en fichiers AYC, un format compacte
  specifique au CPC.

* Un outil permettant de transferer un fichier de type PC sur une disquette
  CPC (ou une image de disquette). J'utilise personnellement l'excellent
  programme de Demoniak, ManageDsk.

* Un CPC ou a defaut, un emulateur CPC.

* Maxam d'Arnord LTD. et le source Maxam de l'AY Player 0.5.
  Ce source est une version un peu epuree du source DAMS livre avec le KIT
  AY 0.3, utilisable directement. Il est compilable avec toutes les versions
  de Maxam. L'archive YM6TOCPC.DSK contient le source, et une version deja
  compilee servant d'exemple.

* Une musique Spectrum : j'ai choisi pour l'exemple la "Sokkal" de X-Agon
  of Fantasy. Beb/Ovl va pouvoir organiser des raves monstres dans son
  studio :-).


Etape 1 : Creer un fichier YM6! a partir d'une musique Spectrum.
----------------------------------------------------------------
Après avoir installe ZX Spectrum Soundchip Emulator, il faut charger la
musique convoitee dans la playlist (bouton PL sur l'interface principale),
puis faire un clic droit sur le nom de la musique. Un menu contextuel
s'affiche, permettant d'exporter la musique sous divers formats (YM6!, WAV,
etc...).
Sauver le fichier sous le format YM6!.
Pour notre exemple, le fichier s'appellera SOKKAL.YM, et sera sauvegarde
sous le repertoire C:\TEST.


Etape 2 : Décompacter le fichier YM6!
-------------------------------------
- Recopier le fichier LHA.EXE sous C:\TEST
- Ouvrir une session en mode texte (COMMAND ou CMD, en fonction de votre
  système d'exploitation).
- Se positionner dans le répertoire ou le fichier YM est copie.
- Taper la commande LHA X <nom du fichier>. Pour notre exemple, cela donnera
  LHA X SOKKAL.YM.
  Si tout se passe bien, vous devez obtenir un nouveau fichier dont le nom est
  AY_EMUL.
  Si cela ne fonctionne pas, verifier que le nom du fichier source soit
  conforme a la "norme" MSDOS 8.3 (8 caractères pour le nom + 3 caracteres 
  pour l'extension).

  
Etape 3 : Corriger les frequences du fichier YM6! decompacte
------------------------------------------------------------
- Lancer le programme "YM6! Spectrum to Atari". L'interface est suffisamment
  simple pour ne pas necessiter de commentaire :-).
  Cet outil corrige les frequences des voies A B C et des enveloppes hardware
  pour que le fichier YM6! soit considere comme un fichier ATARI ST.

  Le programme a ete teste avec succes sur un PC avec Windows 98SE et un 
  autre avec XP Professional. Desole, pas de version Windows 3.1 prevue !

  Le fichier peut traiter des musiques YM comportant jusqu'a 30 000
  patterns, ce qui nous fait quand meme 10 minutes de musique ! C'est meme
  inutile car le AY Kit 0.3 de Madram n'autorise des musiques que de
  22528 iterations, soit plus de 7 minutes, quand meme !
  
  Lors d'une conversion de frequence, on peut rencontrer des "defauts" sur
  les sons hardware (ils sont trop hauts), en particulier lorsqu'ils sont
  utilises en meme temps sur plusieurs voies.
  Le parametre "Register 11-12 Adjustment" (experimental !) permet dans
  une certaine mesure de corriger ce probleme (habituellement une valeur
  de 1.02). Attention, la musique generee ne sera pas forcement totalement
  fidele, a vous de faire des essais et de trouver l'improbable bon
  compromis !
  
  
Etape 4 : Transferer sur une image disque DSK le fichier YM6!
-------------------------------------------------------------
Avec ManageDsk, ajouter a une image DSK vierge le fichier YM6! (au format
ASCII).

A cette etape, on peut avoir des problemes, lies a la grosseur du fichier YM6!
s'il depasse la taille theorique d'une disquette CPC au format DATA (178ko).

ManageDsk permet depuis peu de stocker sur une disquette jusqu'a 256ko,
utilisable par l'AmsDos sans aucune bidouille. Cela permet de passer une bonne
partie des YM6! sur CPC. Il faut par contre soit utiliser un emulateur, soit
un lecteur 3.1/2 pour pouvoir utiliser ce format.

Sur un format 178ko, vous pouvez stocker une musique de 3 minutes 47 secondes.
Sur un format 256ko, vous pouvez stocker une musique de 5 minutes 25 secondes.

Au dessus de cette taille, debrouillez-vous ! On doit pouvoir bricoler avec
des formats 80 pistes, mais le "passage" d'un fichier PC vers une image disque
CPC s'avere plus problematique.


Etape 5 : Convertir le fichier YM6! en fichier AYC
--------------------------------------------------
Lancer le programme YM2AYC.BAS. Specifier comme fichier source le fichier
YM6!.
Si vous ne souhaitez pas lire la documentation de l'AYC toolkit, definir tout
les buffers de decompression a &0100, histoire de simplifier les choses et de
pouvoir utiliser le player deja compile sur l'archive YM6_SPEC.DSK.
Si tout se passe bien, vous devez vous retrouver avec un beau fichier 
YOUPLA2.AYC sur votre disquette.


Etape 6 : jouer la musique
--------------------------
A ce jour, il n'y a pas de "player officiel" AYC sur CPC. Il va donc falloir
compiler le source Maxam du player que vous trouverez dans l'archive, en 
l'adaptant eventuellement a vos besoins (emplacement memoire et taille des
buffers de decompressions si besoin est).

* Lancer Maxam.
* Appuyer sur la commande "T"
* Charger avec la commande "L" le fichier source AYC.asm
* Tapez E pour editer le source et eventuellement le modifier.
	L'adresse d'execution de la musique est en debut de source
	Les buffers de décompression sont en fin de source

* Appuyez sur Escape pour revenir au menu de Maxam.
* Appuyez sur "A" pour compiler le source.

Dans notre exemple, on va faire simple :

	Emplacement du player : &5000
	Emplacement de la musique : &6000
	Emplacement des buffers : &4000-&4100, etc...

Pour écouter la musique au final, taper le petit programme suivant :

	10 OPENOUT"D":MEMORY &3FFF
	20 LOAD "madram.bin",&5000
	30 LOAD "youpla2.bin",&6000
	40 CALL &5003
	50 CALL &BD19:CALL &5003:GOTO 50

C'est pas plus dur que cela !
