Ultimate Tracker 2.0 * Un logiciel Retour 2048 * Par : - Checksum of Equinox (adaptation Amiga) - Edy of Equinox (adaptation Falcon) - Sharp Man of The Black Cats (Programme) _______________________________________________________________ Documentation Fran‡aise _______________________________________________________________ 1. Introduction = ============ Ce programme joue des modules Amiga (ou Atari) soundtracker, Noisetracker ou Protracker 1.2. Il fonctionne sur tous les Atari ‚quip‚s d'un circuit sonore en DMA (STe, Mega STe, TT ou Falcon). Il peut ˆtre utilis‚ aussi bien en tant que programme normal qu'en tant qu'accessoire de bureau. Depuis la version 2.0, le player utilise l'interruption MFP i7 … la place du Timer A. Donc maintenant, tous les timers sont libres (particuliŠrement le timer utilis‚ par l'AES dans evnt_timer). 2. Comment fonctionne-t-il ? = ========================= Il y a trois fa‡ons de lancer ce programme : Comme un programme normal (l'extension est .PRG ou .APP) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Cliquez simplement sur l'ic“ne du player pour le lancer. Quand le programme est charg‚, le player s'affiche dans une fenˆtre GEM. Il y a aussi un menu GEM pour acc‚der aux accessoires de bureau (comme le gestionnaire de son en CPX). Vous pouvez charger un module ou quitter le programme directement grƒce … ce menu. Comme un programme GEM n‚cessitant des paramŠtres (.GTP) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Cliquez sur l'ic“ne du player pour le lancer. Une boŒte de dialogue apparaŒt alors et vous demande d'entrer des paramŠtres. Les paramŠtres sont le chemin et le nom d'un module, tapez les et appuyez sur return. Le player va charger et jouer le module automatiquement. Si vous tapez return sans tapez quoi que ce soit, le programme agira comme si il s'agissait d'un programme GEM normal. Notez que vous pouvez d‚placer l'ic“ne d'un module et la lacher sur l'ic“ne du player, le player chargera et jouera ce module. (Cette derniŠre possibilit‚ n'est possible que pour un TOS dont la version est sup‚rieure … 1.62). Grƒce … cette possibilit‚, vous pouvez installer le player comme une application pour les fichiers *.MOD dans le menu "options" du bureau. Quand vous cliquerez sur un module, le player le jouera automatiquement. Comme un accessoire de bureau (l'extension est .ACC) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Installez le player … la racine de votre disque de boot et rebootez l'ordinateur, le player sera automatiquement charg‚, vous pouvez alors l'appeler … partir de n'importe quelle application. De plus, vous pouvez jouer un module n'importe o— en tƒche de fond. Cette possibilit‚ n'est r‚alisable que si le player est lanc‚ en tant qu'accessoire. Vous pouvez utiliser l'accessoire en tant qu'application pour les fichier *.MOD grƒce au programme "PLAY_ACC.GTP". 3. Petites explications = ==================== 1. Les ic“nes ~~~~~~~~~~~~~ Le player s'affiche dans une fenˆtre GEM standard. Ses ic“nes sont simples … comprendre, de gauche … droite : Charger : Charge un module en m‚moire. La taille du module ------- doit entrer dans le buffer (voir plus bas). Si le programme est lanc‚ comme un PRG, APP ou GTP, vous pouvez aussi charger un module … partir du menu. Le player peut charger des modules compact‚s avec Pack Ice toute version (compacteur Atari), Power Packer (compacteur Amiga) ou Noisepakker 1.0 de Delta Force, il sera d‚compact‚ automatiquement avant d'ˆtre jou‚. (Nouveau ! vous pouvez mainte- nant charger des modules pack‚s avec Power Packer ou Noisepakker puis repack‚s ensuite avec Pack Ice le taux de compactage pour Noisepakker+Ice est de plus de 70% !!) Retour : Revient en arriŠre dans la musique (saute … la ------ pattern pr‚c‚dente). Jouer : D‚marre la musique. ----- Avance : Avance dans la musique (saute … la pattern suivan- ------ te). Pause : Fait une pause dans la musique. Cliquez une ----- seconde fois sur cet ic“ne pour redemarrer la musique. Stop : Stoppe la musique et efface le module de la ---- m‚moire. 2. Les fr‚quences ~ ~~~~~~~~~~~~~~ Il y a quatre boutons sous les ic“nes, ces boutons vous permettent de choisir la fr‚quence. Les fr‚quences disponibles sont 6.25 KHz, 12.5 KHz, 25 KHz ou 50 KHz. Certaines fr‚- quences ne sont pas disponibles sur toutes les machines. Sur Falcon, 6.25Khz n'est pas disponible (le circuit DMA son du Falcon ne peut restituer des sons … cette fr‚quence) et 50 Khz n'est pas disponible si la vitesse du CPU est de 8 Mhz. 50 khz n'est pas disponible sur STe ou MegaSTe. Sur MegaSTe, 50 Khz est disponible si la vitesse du CPU est de 16Mhz et si le ca- che est actif. Notez que plus la fr‚quence est ‚lev‚e, plus le son est bon mais plus la musique prend de temps machine. C'est assez important de choisir la bonne fr‚quence si vous utilisez le player comme un accessoire de bureau parce que les autres applications en fonctionnement vont ˆtre plus ou moins ralenties par le player. (Personnellement, je pense que 12.5 est une bonne valeur pour un STe (mˆme si vous pouvez ‚couter … 25), 25 pour un Mega STe ou Falcon030 et 50 pour un TT). Attention: Il y a beaucoup de tests qui sont faits : selon la machine et la vitesse du CPU, certaines fr‚quences ne sera pas disponibles. Si vous utilisez un MegaSTe … 16 MHz et que vous ‚coutez … 50KHz, si vous switchez la vitesse du CPU … 8MHz, la fr‚quence passera automatiquement … 12.5 KHz et 50 KHz ne sera plus disponible jusqu'… ce que la vitesse CPU repasse … 16MHz de mˆme que le Falcon : si vous ‚coutez … 50 KHz et que vous coupez les caches du 68030, la fr‚quence va changer automatiquement. Mais s'il-vous-plaŒt, ne jouez pas avec les caches et la vitesse CPU pendant que le player est en train de jouer. 3. Loop ~~~~~~~ Ce bouton switche le flag loop (en fran‡ais dans le texte). Si il est ON, le module sera rejou‚ quand il arrivera en fin, si il est OFF, il sera arrˆt‚ et effac‚ de la m‚moire. 4. Affichage de la position ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sous ces boutons, il y a un affichage graphique de la position courante de la musique. 5. Les autres boutons ~ ~~~~~~~~~~~~~~~~~~ Sous ces 4 boutons (ou sous les ic“nes si vous utilisez un Falcon), il y a 3 boutons : -> Quit : Ferme la fenˆtre du player et stoppe la musique. -------- Cette musique est effac‚e de la m‚moire. Si vous utilisez le programme comme un PRG, APP ou GTP, vous pouvez faire la mˆme chose avec l'option QUIT du menu FILE. -> Play : Ce bouton est seulement disponible si le programme -------- est un accessoire de bureau. Cliquer sur ce bouton va fermer la fenˆtre du player mais la musique continue de jouer en tƒche de fond. Config: Ce bouton vous permet de configurer le player. ------ Vous pouvez changer la taille de la m‚moire allou‚e et le chemin par d‚faut pour les modules. 1. La taille du buffer - ------------------- Pour charger un module, le programme r‚serve de la m‚moire quand il est lanc‚. Par d‚faut, la taille est de 256000 octets. Vous pouvez diminuer ou augmenter cette taille, mais notez que la nouvelle valeur sera effective seulement la prochaine fois que vous lancerez le programme car l'allocation de m‚moire est faite seulement une fois (quand le programme d‚marre). Quand vous cliquez sur ce bouton, une boŒte de dialogue apparaŒt et affiche dans la partie sup‚rieure la taille de la m‚moire actuellement r‚serv‚e, tapez dans la partie inf‚rieure la taille que vous d‚sirez et cliquez sur OK ou tapez sur return. 2. Le chemin par d‚faut - -------------------- Vous pouvez choisir le chemin o— le player va chercher les modules. Pour le choisir, cliquez sur le bouton "Choose path", un selecteur de fichiers apparaŒt pour cela. Le chemin s‚lectionn‚ est affich‚ dans une boŒte. Si le chemin n'entre pas dans la boŒte, vous pourrez le visualiser en clickant sur les boutons flˆch‚s pour le faire scroller. Pour sauver ces paramŠtres, clickez sur OK (Cancel pour quitter). Les nouveaux paramŠtres sont sauv‚s directement dans le fichier du programme, c'est pour cela qu'un s‚lecteur d'objet apparaŒt, indiquez l'emplacement du fichier du player et cliquez sur Confirme. Comme la taille est sauv‚e directement dans le fichier du programme, vous ne devez pas changer la structure de ce fichier, par exemple, vous ne pouvez pas compacter le player. En fait, vous pouvez compacter le player, mais vous devrez le d‚compacter avant de modifier la taille puis le recompacter aprŠs. 4. Ultimate Tracker et Multitos = ============================ Ultimate Tracker fonctionne parfaitement avec Multitos sur toutes les machines sur lesquelles je l'ai test‚ (STe, TT et Falcon). Il fonctionne parfaitement avec des grands ‚crans et des cartes graphiques (comme Spektrum). Les ressources utiliseront les caractŠristiques de l'AES du Multitos sur un STe ou TT. Attention : ne modifiez pas les flags du programme (avec le programme PRGFLAG.PRG), ce programme doit avoir le bit "SUPER" mis … 1 parce qu'il utilise un timer sous Multitos, si vous le mettez … z‚ro, le systˆme va se planter. ATTENTION ! ne tuez jamais le process quand le player joue un module car la m‚moire utilis‚e par la routine en interruption va ˆtre lib‚r‚e sans pr‚venir le player. Stoppez la musique, puis, tuez le processus. 5. Les commandes APPL_WRITE = ======================== GEM offre un moyen de communiquer entre les applications au travers d'un buffer d'‚venements. Ceci permet … une application de prendre le contr“le d'une autre. Ultimate Tracker supporte ces commandes, donc, votre application peut piloter le player. Comment cela fonctionne-t-il ? Avant toute chose, le player doit ˆtre r‚sident en m‚moire. La seule fa‡con de faire ceci est de l'installer comme accessoire de bureau avec un TOS monotƒche, vous pouvez le lancer de la fa‡on que vous d‚sirez avec Multitos. Puis, vous devez trouver l'identification AES du player, il y a deux moyens de trouver cet id. La m‚thode "‚l‚gante" est d'utiliser la fonction AES appl_find comme ceci : id=APPL_FIND(nom) o— nom est le nom du player sans son exten- sion, attention, le nom doit faire 8 caractŠres. Cette fonc- tion retourne l'id AES. Si vous ne connaissez pas le nom du programme, il y a un autre moyen de proc‚der : le player, quand il est install‚, place un cookie dans le cookie jar. Ce cookie est : "UTRK" et les donn‚es du cookie est l'id AES courant. Faites attention et utilisez cette derniŠre m‚thode pour trouver l'id AES si vous ˆtes s–r de ne pas le trouver avec appl_find. Vous pouvez imaginer facilement les problŠmes si il y a plusieurs instances du player en m‚moire, vous ne pourrez pas savoir … qui appartient l'id AES retourn‚ par appl_find ou par le cookie jar. 1. Les commandes envoy‚es ~~~~~~~~~~~~~~~~~~~~~~~~~ Grƒce … cet id AES, vous allez pouvoir contr“ler le player ou recevoir des messages de lui. Vous pouvez envoyer des comman- des au player avec la fonction AES APPL_WRITE. APPL_WRITE de- mande 3 paramŠtres : l'identification du player, le nombre d'octets … envoyer au player et l'adresse d'un tableau d'en- tiers (mot de 16bits) qui contient la commande … envoyer au player. Les commandes ont ce format : - 1er mot : toujours ‚gal … ID_TRACK (999) - 2eme mot : num‚ro de la commande - 3 - 8 : paramŠtres Les commandes sont : T_LOAD (900) : Charge un module dans le buffer du player. L'adresse du chemin et du nom du module est dans le 3eme et 4eme mots. (partie faible dans le 3Šme et forte dans le 4Šme). T_PLAY (901) : Joue le module charg‚. T_FORWARD (902) : Avance rapide. T_REWIND (903) : Retour rapide. T_PAUSE (904) : Pause. T_STOP (905) : Stoppe la musique et l'efface de la m‚moire. T_ABOUT (906) : Affiche une boŒte d'information. T_OPEN (907) : Ouvre la fenˆtre du player. T_CLOSE (908) : Ferme la fenˆtre du player. T_FREQ (909) : Change la fr‚quence. Le 3Šme mot contient la fr‚quence (0-3). T_LOOP (910) : Switche le flag loop ON/OFF. T_IDENT (911) : Dit au player que l'application veut rece- voir des messages du player. Le 3Šme mot contient l'id AES de l'application. (voir paragraphe suivant). T_FIDENT (912) : Dit au player que l'application ne veut plus recevoir de message du player. (idem) T_INFOS (913) : Demande des informations au player. Voir le paragraphe suivant pour la recep- tion de ces informations. Pour voir comment utiliser ces commandes, jetez un oeil dans le programme nomm‚ \EXEMPLE\SHELL\CMD_TRAX.C. C'est un shell qui contr“le le player. Note: Si vous utilisez ceci sous Multitos, n'oubliez pas de ---- mettre la flag "GLOBAL" de votre application … 1, parce que quand vous allez envoyer la commande T_LOAD au player, le player va aller lire … l'adresse que vous lui avez donn‚ pour trouver le chemin du module, mais cette adresse est situ‚e dans la m‚moire de votre application. Le flag "GLOBAL" permet au player de lire dans la m‚moire de votre application. Si ce flag est off, Multitos va faire une erreur de protection m‚moire et va effacer le player de la m‚moire. 2. Messages re‡us ~~~~~~~~~~~~~~~~~ Vous pouvez envoyer des commandes au player, mais vous pou- vez recevoir des messages du player aussi. Ces messages di- sent … l'application tout ce que fait le player. Pour rece- voir ces messages, vous devez proc‚der de cette fa‡on : - Dire au player que nous voulons recevoir des messages avec la commande T_IDENT. A partir du moment o— le player re- ‡oit ce message, il va envoyer les messages … l'app. - Attendre les messages dans une boucle evnt_multi. - Quand l'application n'a plus besoin des messages, envoyer la commande T_FIDENT. Ils ont ce format : - 1er mot : toujours ‚gal … ID_REPONSE (998) - 2Šme mot : num‚ro du message - 3 - 8 : paramŠtres Les messages sont : R_PLAY (951) : Le module commence … ˆtre jou‚. R_FORWARD (952) : Avance rapide. R_REWIND (953) : Retour rapide. R_PAUSE_ON (954) : La pause est activ‚e. R_PAUSE_OFF(955) : La pause est d‚sactiv‚e. R_STOP (956) : Le module est stopp‚ et effac‚. R_OPEN (957) : La fenˆtre du player est ouverte. R_CLOSE (958) : La fenˆtre du player est ferm‚e. R_FREQ (959) : La fr‚quence … chang‚ (nouvelle fr‚quence dans le 3Šme mot). R_LOOP_OFF (960) : Flag loop OFF. R_LOOP_ON (961) : Flag loop ON. R_BEGLOAD (962) : Un module est charg‚. (Le mot 3 contient la partie haute de l'adresse du nom du module et le mot 4 la partie basse). Pour acc‚der … ce nom sous MultiTOS, vous de- vez ˆtre en superviseur, car le player a son flag Super mis. R_ENDLOAD (963) : Le module a ‚t‚ charg‚ sans erreur. R_FAILOAD (964) : Erreur durant le chargement. R_MOVE (965) : La fenˆtre du player a ‚t‚ d‚plac‚e. Les nouvelles positions X et Y sont dans les mots 3 et 4. R_INFOS (966) : Ce message est envoy‚ quand le player re- ‡oit la commande T_INFOS. mot 3 : handle fenˆtre player. mot 4 : handle graphique VDI. mot 5 : Id AES. mot 6 : Num‚ro de version majeur. mot 7 : Num‚ro de version mineur. R_POSIT (967) : Position courante de la musique. mot 3 : position courante. mot 4 : derniŠre position. R_QUIT (968) : Le player est effac‚ de la m‚moire. R_ENDMOD (969) : Le module est termin‚ (seulement quand le flag loop est OFF). R_PROTECMOD(970) : Ce message est re‡u quand le module char- g‚ contient des informations corrompue, il va ˆtre impossible de d‚terminer quand le module va boucler, donc on ne pourra pas reculer, avancer ou voir la position de la musique. Si vous avez besoin d'autres messages,dites le moi. Regardez le programme EXEMPLE\RECEIVE\RECEIVE.C Note: Si vous utilisez ceci sous MultiTOS, vous devez ˆtre ---- en mode superviseur si votre application acc‚de au nom du module dans le message T_BEGLOAD parce ce que vous voulez acceder … une adresse qui est situ‚e dans la m‚moire du player et cet espace m‚moire … son flag "Super" mis … 1. Donc cette m‚moire peut seulement ˆtre acc‚d‚e en mode superviseur. 6. Limitations = =========== Il y a quelques limitations dans ce programme. Jusque mainten- ant, il ne teste pas si le fichier charg‚ est un module ou pas, si vous essayez de charger autre chose qu'un module, le programme va se planter. Il y a parfois un bug sur le Falcon : le player fait un bruit bizarre au lieu de jouer la musique. Il semble que ce bug est r‚solu. De toute fa‡on, pour ‚viter ce problŠme, placez le programme nomm‚ FPATCH.PRG dans votre dossier AUTO, il corrige 2 bugs (et l'un d'entre eux est l'initialisation du son, ceci est valable pour les TOS inf‚rieurs au TOS 4.05). !!! SVP NE LANCEZ PAS DEUX INSTANCES DE CE PROGRAMME DANS LA MEME CESSION. DES CHOSES GENANTES PEUVENT SE PRODUIRE (Pour- quoi voulez-vous ‚couter deux modules en mˆme temps ???) 7. Les sources = =========== Il y a trois sources donn‚es avec ce programme : - SHELL : Un petit shell qui peut contr“ler le player grƒce aux commandes appl_write. Utilisez le avec MintShell sous MultiTOS ou avec un shell dans une fenˆtre sous TOS. - RECEIVE : Un exemple de programme qui affiche les messages qui sont envoy‚s par le player … une application. Grƒce … cet exemple et au premier, vous pouvez voir comment faire une communication dans les deux sens entre le player et une application. Pour voir comment ces programmes fonctionnent, utilisez les simultan‚ment sous MultiTOS avec MintShell (amusant !)/ - PLAY_ACC : Un programme qui vous permet d'utiliser le player qui est un accessoire comme application pour les fichiers .MOD. Installez ce programme dans le bureau comme application et alors, chaque fois que vous cliquerez sur l'ic“ne d'un module, l'accessoire le chargera et le jouera. Je ne diffuse pas les sources du player maintenant car il y a encore des bugs … corriger er je veux refaire la gestion de la m‚moire. CPU utilis‚ ~~~~~~~~~~~ J'ai fait des petits tests avec GEMBENCH pour voir combien de temps CPU prenait le player. Les tests en ‚t‚ fait sur Falcon en mode 736*560 en 16 couleurs : 12.5 Khz : 16 % du temps CPU 25 Khz : 27 % 50 Khz : 50 % Pour nous contacter ~~~~~~~~~~~~~~~~~~ The Black Cats / Equinox Chƒlet de Riqueval 02420 Bellicourt France 3614 RTEL1/RTEL2 ou 3614 TEASER ou 3615 STMAG bal Sharpman 8. Historique = ========== v.1.0ž - Charge seulement et joe un module sur Falcon v.1.1ž - Joue les modules en accessoire de bureau (accepte les modules compact‚s avec Pack Ice). v.1.2ž - Corrige beaucoup de bugs v.1.4ž - Nouvelle interface graphique v.1.5ž - Supporte Power Packer v.1.6ž - Supporte les routines STe et TT v.1.7ž - Fonctionne sous Multitos/supporte les cmdes APPL_WRITE v.1.0 - Supporte AES 4.0 sur STe ou TT v.1.1 - Supporte toutes les versions de Pack Ice et Noisepakker 1.0 v.1.2 - Permet de sauver le chemin par d‚faut v.1.3 - Routine replay sur Falcon acc‚l‚r‚e par NOP/DSP CREW (merci !!!) v.1.4 - J'ai corrig‚ un tas de saloperies de bugs v.1.5 - "Nouvelle" routine player - Permet de changer la fr‚quence sur Falcon030 - Corrige des bugs d'affichage - Utilise le cache du 030 sur TT et la m‚moire cache du MegaSTe v.1.7 - Corrige un tas de bugs v.2.0 - Permet la communication avec un shell dans les 2 sens - Utilise l'int. MFP i7 au lieu du Timer A - Affiche la position courante