5075
UTILITAIRE -> Son
© _Public_Domain_ (2003)
 
 
 
The Soundtrakker Player 1.4
cpc
 
 

NOTICE / MANUAL

TXT (1)

NOTICE TEXTE n° 1 (15.17 Ko)

>>>> The Soundtrakker Player 1.4 <<<< T&J du GPA (c) 1994, 1997, 2003 ! Francais ******** Quelques semaines (mois ?) apres la sortie de la version 1.2, voici une nouvelle evolution de TSP ! Vous la devez a l'enthousiasme de Beb/Ovl, qui m'a litteralement noye de messages demandant des nouvelles fonctionnalites ! The Soundtrakker Player est a l'origine un logiciel qui permet de lire des musiques Soundtrakker compilees. Il reconnait aussi les musiques AMC (support tres limite...) et les musiques dites generiques. La nouvelle version supporte un format supplementaire, TSP. Il permet de jouer pratiquement toutes les musiques existantes, a partir du moment ou elles disposent d'un header specifique. On reconnait ces fichiers a leur extension (.MZL). Autre interet de ce format, on peut jouer tous les morceaux d'un fichier contenant plusieurs musiques. Petit bonus pour Madram et Beb, TSP permet de jouer "a la suite" plusieurs musiques grace a un fichier special appele playlist. Cela transforme votre CPC en une sorte de jukebox ! Cette fontionnalite est un peu frustre, car je ne voulais pas trop augmenter la taille du programme. Cette documentation contient des informations qui pourront vous interesser si vous souhaitez faire vos propres compilations de musiques. Si vous ne comprenez rien, regardez comment sont faites les musiques ci-jointes. Support limite des musiques AMC ------------------------------- Heritage de la version 1.1 (jamais terminee), les musiques faites avec AMC sont reconnues. Mais, TSP ne permet de jouer que le premier theme d'un fichier et en vitesse normale. En pratique, cela n'est pas bien genant car pratiquement personne n'a compose de musiques avec ce produit... Support des musiques generiques ------------------------------- Face a l'emergence de nouveaux formats (musiques YM compilees, etc... ), j'ai rajoute la possibilite de lire des musiques autres que Soundtrakker. Le programme n'est pas capable de reconnaitre ces formats, et se contente de verifier que le fichier commence par deux JUMP (&C3) a l'adresse d'initialisation et au player de la musique. C'est certes primitif, mais cela fonctionne ! Support des musiques TSP et TSP 128 ----------------------------------- Voici un nouveau format de fichiers, qui permet de jouer beaucoup plus de musiques commerciales que les musiques generiques. Il est par contre plus complexe a creer, je vous incite donc a lire la suite attentivement. Quelques petites notions d'assembleur s'averent indispensables... Une musique TSP est a la base une musique generique, qui a une entete particuliere, permettant de la charger soit en memoire centrale (comme une musique generique normale), soit dans la memoire etendue du CPC. Dans ce cas, le CPC utilise le mode ALTERNATE (OUT &7F00,&C2) qui permet de connecter les banks de memoire etendus en ligne. Cela permet de disposer d'une plage memoire libre de 64ko ! On peut donc jouer des musiques implantees en memoire video ou dans les zones systeme sans probleme. Autre interet de ce format, il permet de a TSP de jouer toutes les musiques d'un fichier. Pour beneficier de ces avantages, il va falloir bricoler vos fichiers de musiques pour les rendre compatibles avec TSP. Voici la structure d'un fichier TSP. Par convention, l'extension d'un tel fichier est .MZL. Si cela ne vous plait pas, vous pouvez evidemment mettre ce que vous voulez ! Les seize premiers octets sont organises comme suit : Octets 0 a 2 : chaine hexadecimale &54 &53 &50 ( = TSP !) Octet 3 : zone memoire ou la musique est chargee : &C0 = le fichier est charge dans le buffer normal (&0040-&9xxx) &C5 = le fichier est charge dans la bank memoire etendue &C5 &C7 = le fichier est charge dans la bank memoire etendue &C7 Octet 4 : nombre de musiques dans le fichier (1 a xx) Octet 5 : musique jouee par defaut Octets 6 et 7 : adresse d'initialisation de la musique Octets 8 et 9 : adresse d'execution de la musique Octets 10 et 11 : adresse d'implantation initiale de la musique Octets 12 et 13 : longueur initiale de la musique Les octets 10 a 13 ne sont la qu'a titre indicatif, afin de savoir ou se trouve la musique en memoire. Ils ne sont pas utilises par TSP. Important !!! Toutes ces valeurs sont exprimees en hexadecimal ! Les octets suivants (au minimum 14 et 15) servent a stocker la longueur de chaque morceau d'une musique. Cette duree est exprimee en minutes/secondes. Cette information est utilisee par le mode Playlist. A la suite de cette table, TSP considere qu'il y a une routine de decompactage ou de deplacement du code de la musique. S'il n'y a rien de tel, l'octet doit avoir absolument la valeur &C9 (RETURN en assembleur). Apres cette routine, il y a le code de la musique. Si vous souhaitez compacter la musique, je vous recommande le Turbo Cruncher d'Elmsoft, qui est bien adapte a ce genre de traitement. Revenons sur l'octet 4, qui est tres important : - valeur &C0 : le fichier est charge en memoire centrale a l'adresse d'implantation du fichier MZL. - valeur &C5 : le fichier est charge en memoire etendue (bank 2) en &4000. La musique est jouee avec le mode Alternate (connexion en ligne des banks etendues). La musique est jouee a l'aide d'une routine implantee en &40. La zone ram disponible est situee entre &0100-&3FFF et &8000-&FFFF. - valeur &C7 : le fichier est charge en memoire etendue (bank 4) en &C000. La musique est jouee avec le mode Alternate a partir d'une routine implantee en &BE80. La zone ram disponible est situee entre &0040 et BE7F. Pour les valeurs &C5 et &C7, il y aura donc systematiquement une petite routine a partir du 16eme octet du fichier reorganisant le fichier en memoire. Lorsque le programme initialise une musique au format TSP, il donne a la routine d'initialisation dans le registre A le numero de la musique a jouer. (numero de musique - 1). Si la musique se sert d'un autre parametre pour s'initialiser, a vous de bricoler un bout de code qui fera l'interface entre le parametre envoye par TSP et celui qu'attend la routine d'initialisation de la musique. Limites : ********* On ne peut pas charger une musique dont le fichier a une longueur de plus de &4000. Ajouter un message dans le Header d'un fichier ---------------------------------------------- Nouveaute bien sympathique de TSP, on peut maintenant ecrire des textes dans l'entete des fichiers musicaux. Pour que TSP prenne en compte un message, on doit respecter la structure suivante : Octets &4D a &4F : chaine de caracteres "TsP" Octets &50 a &7F : message (pas de caractere ASCII inferieur a 32 ou superieur a 127). Creer une playlist ------------------ TSP permet de jouer plusieurs musiques a la suite sans intervention de l'utilisateur. Pour cela, il faut d'abord creer un fichier binaire ayant une structure particuliere, contenant les informations suivantes : Octet 0 a 11 : Nom et extension du fichier musical Octet 12 : Numero du theme musical a jouer Octet 13 et 14 : Duree de la musique en minutes/secondes Si la musique est une musique TSP, la valeur des octets 13 et 14 n'est pas prise en compte par le programme. Le fichier doit obligatoirement commencer par les douze octets suivants : "PLAYLIST.TSP" Le fichier doit se terminer par &FF (arret de la playlist) ou &00 (bouclage sur la premiere musique). Par convention (encore ?), l'extension d'un fichier playlist est .LST. La encore, si vous mettez autre chose, ca ne l'empeche pas de fonctionner. Dans l'attente d'un outil adapte (qui veut se sacrifier ?), le plus simple pour creer une playlist est encore d'utiliser MAXAM (si si !) et d'assembler un source contenant les donnees du fichier. Regardez le fichier PLAYLIST.ASM, c'est pas bien complique non ? Comment calculer la duree d'une musique ? ----------------------------------------- Le plus simple est de jouer la musique avec TSP et de noter la valeur du chronometre quand la musique boucle ou s'arrete. Un exemple : pour une musique comportant un seul morceau de 2 minutes et 30 secondes, on obtiendra : octet 14 = 2 octet 15 = &1E (soit 30 en hexadecimal) Note : la valeur doit tuojours etre convertie en hexadecimal pour un fichier TSP. English ******* Nine years after the official launch of this program, here is a new release of TSP ! It is a sequel of an old beta (1.1) coded in 1997. The Soundtrakker Player is a little "music player" for compiled Soundtrakker musics. This new release now recongnizes AMC tunes (limited support) and generic musics. Some bugs have been removed and the use of Tsp is a little bit more friendly. Since the 1.2 release of TSP has been launched, Beb of Overlanders has sent me many E-mail asking me for new functions. Well, with this new version, I hope he will be satisfied ! TSP is now able to play most of commercial musics, and can chain musics with a special file called playlist. So, your can consider your CPC as a home made jukebox ! Limited support of AMC tunes ---------------------------- This is a inheritage of the 1.1 release. AMC musics are done with the Exodus AMC trakker. Unfortunately, only a few musics have been done with this tool. TSP can only play the first music in a AMC file, and considers always that it is a single speed one. What is a generic music ? ------------------------- Looking at new music files (like AYC musics), I have addedd the possibility to read them if their INIT and PLAY addresses are in the first six bytes with JUMP instructions (&C3 xx xx &C3 xx xx). It is not quite technical, but that is better than nothing. What is a TSP/TSP 128 music ? ----------------------------- This new kind of file gives TSP the capability to play many more commercial musics than the 'generic' one. Unfortunately, it is more complex to create, that seems after all logical. Machine code knowledges are welcome... A TSP file is basically a generic music, with a special header. It can be loaded in the main memory (like a generic music) or in the extended memory. In this case, TSP uses the ALTERNATE mode (OUT &7F00,&C2), that creates a second 64kb ram with the extended memory. So it is possible to play musics in the video memory or in the system memory (&A67B-&BFFF) without any problem. Another great interest of this kind of file, TSP can plays all the tunes in a file (many commercial music files have more than one tune). Here is a complete explanation about the header datas of a .MZL file ( default extension of a TSP file). Take an aspirin first ! Bytes 0 to 2 : hexadecimal string &54 &53 &50 ( = TSP !) Byte 3 : memory area where to load the music file : &C0 = file is loaded in the main memory (&0040 - &9300) &C5 = file is loaded in the extended memory bank &C5 &C7 = file is loaded in the extended memory bank &C7 Byte 4 : number of musics in the file (1 to xx) Byte 5 : default music to play Bytes 6 and 7 : INIT address of the music Bytes 8 and 9 : PLAY address of the music Bytes 10 and 11 : original loading address of the music Bytes 12 and 13 : original length of the music Bytes 10 to 13 are not used by TSP to play the music. They are displayed when the music is played in the information window. Important !!! All these values are in hexadecimal ! The following bytes (at last bytes 14 and 15) are used to store musics duration in minutes/seconds. These informations are used by the "playlist" mode. After this list of word(s), TSP is looking for a piece of code (decrunching routine or instructions like LDIR... ). If you don't need to call a routine to organize the music in memory, you must put the value &C9 (RETURN in machine code). After this routine, there is at last the music code ! If you want to crunch the music file, I recommand you Turbo Cruncher from Elmsoft. Let's have a look back on the fourth byte of the header, this is REALLY important : - &C0 value : TSP read the loading addresse of the file and load it in the main memory. Nothing special. - &C5 value : the file is ALWAYS loaded in &4000 in the second extended memory bank. The music is played with a little routine in &40. The free memory area for your music is &0100-&3FFF and &8000-&FFFF. - &C7 value : the file is ALWAYS loaded in &C000 in the fourth extended memory bank. The music is played with a routine in &BE80. The free memory area for your music is &0040-&BE7F. For the two last values, there will be always a routine that organizes the music in memory. When the program call the INIT address of a music, it sends the number of the music to play in the register A (number of the music - 1). If the init code needs another information, you must program a little piece of code that will make the link between TSP and the music code. Limit : ******* A TSP file can have a maximum length of &4000 bytes. If the file is too big, pack it ! Header messages --------------- Tsp can read little message in the file headers. Nice to know who has composed the nice music you listen.. If you wanna make you own compilations with headers : Bytes &4D to &4F : Id string "TsP" Bytess &50 to &7F : message (no ASCII char lower than 32 or upper than 127). How to create a PLAYLIST file ? ------------------------------- With TSP, your CPC can play music for hours ! To do such a noisy thing, you have before to create a binary file with the following organization : Bytes 0 to 11 : Music name (with its extension) Byte 12 : Music number to play Bytes 13 and 14 : Music duration If the file is TSP music file, value of bytes 13 and 14 is not used by the program. So, you can put any value there ! Of course, the PLAYLIST file has a special header : It is quite simple, in fact. Bytes 0 to 11 must have the value : "PLAYLIST.TSP" The last byte of the file must be &FF (end of the playlist) or &00 (play again the first music) By agreement, the extension of a PLAYLIST file is .LST. If you want to make your own playlists, the easier way at the moment is to use MAXAM and generate a file containing the playlist datas. Look at the file PLAYLIST.ASM, it is not so complicated ! The way to calculte a music duration ------------------------------------- Listen the music with TSP and note the value of the timer when the music starts again or stops. Example : consider a file with one tune of 2 minutes 30 seconds. The result to put in your .MZL file or your playlist is : byte 14 : 2 (2 minutes) byte 15 : &1E (30 seconds in hexadecimal) Please note that in a TSP music file, values are always in hexadecimal !
 



Goto Top
CPC-POWER/CPCSOFTS, programmation par Kukulcan © 2007-2024 tous droits réservés.
Reproduction sans autorisation interdite. Tous les titres utilisés appartiennent à leurs propriétaires respectifs.
Hébergement Web, Mail et serveurs de jeux haute performance