Bobby Sixkilla
19/09/2006, 01h30
Apex Sound System (AAS)
Auteur : YodaJr
A la demande de nes, je vais exposer tout ce que je sais sur cette librairie sonore. Tout sera bien sur orienté HAM vu que j'utilise cette lib.
D'abord recupérer la lib ici (http://www.apex-designs.net/tools_aas.html).
Pour se faciliter la vie :
Créer un dossier AAS et un dossier sfx dans le dossier du projet. (attention, jamais d'espace dans les dossiers).
Dans le dossier sfx, mettre tous les wav et les mods.
Dans le dossier AAS, mettre les dossiers AASDocs et LibAAS extraits de l'archive.
Il faut aussi extraire le fichier Conv2AAS.exe correspondant au systeme que l'on utilise et le mettre dans le dossier du projet.
Toujours dans le dossier du projet, creer un fichier convert.bat avec dedans :
@echo off
conv2aas sfx
pause
Ensuite le makefile :
Au OFILES ajoutez AAS_Data.o comme ceci :
OFILES += main.o AAS_Data.o
Ensuite dans VHAM > Project > Makefile > Files To Compile
Faites Add > AAS_Data.s
Oui à la question sur le rechargement.
Vérifiez également que les fichiers AAS_Data.h (et .s) sont bien dans le répertoire racine du projet (n'oubliez pas qu'ils sont générés par le convert.bat)
Ajoutez en dessous du OFILES :
ADD_LIBS += $(VHAM_CURPROJECT)/AAS/LibAAS/libAAS.a
INCDIR := $(INCDIR) -I $(VHAM_CURPROJECT)/AAS/LibAAS -I $(VHAM_CURPROJECT)/AAS/LibAAS/LowLevelAccess
On continue par le main.c (ou autre header c'est vous qui voyez) :
D'abord on ajoute ca tout en haut :
#include <AAS.h>
#include <AAS_Mixer.h>
#include "AAS_Data.h" //généré par le convert.bat
Ensuite après le ham_Init() :
AAS_ShowLogo();
ham_ResetAll(); //je nettoye après le logo d'AAS (pas obligatoire, mais il merde un peu ce logo)
Pour l'affichage du logo AAS (obligatoire pour ecouter les mods sur hardware)
Ca continue juste avant le lancement du VBL:
ham_StartIntHandler(INT_TYPE_TIM1,(void*)AAS_Timer 1InterruptHandler); //lancement de l'interruption d'AAS
AAS_SetConfig(AAS_CONFIG_MIX_24KHZ,AAS_CONFIG_CHAN S_4,AAS_CONFIG_SPATIAL_MONO,AAS_CONFIG_DYNAMIC_OFF ); //la config d'AAS
ham_StartIntHandler(INT_TYPE_VBL,(void *)&fonction_vbl); //c'est parti!
Bon pour la config :
AAS_CONFIG_MIX_xxKHZ est pour le mixage je présume, plus le chiffre est grand, plus le mixage est de qualité mais au dépend des ressources (xx varie de : 8, 12, 16, 20, 24, 28, 32)
AAS_CONFIG_CHANS_x est bien sur pour le nombre de canaux : 4 ou 8 (pareil pour les ressources)
AAS_CONFIG_SPATIAL_x pas compliqué : MONO ou STEREO
AAS_CONFIG_DYNAMIC_OFF alors lui on peut le mettre sur ON mais je ne sait pas à quoi il sert
Pour le VBL, on peut y mettre ou pas le AAS_DoWork()... il ne semble pas utile (moi je le met pas)... mais bon, mettez le et passez le en commentaire (//) il pourra peut ete servir à l'ocasion
Et enfin lancez convert.bat pour génerer le AAS_Data.h
Voila c'est fini pour la préparation, ouf...
Maintenant l'utilisation :
Pour savoir comment appeler vos sons et musiques, regardez dans le fichier AAS_Data.h, tout y est (par exemple je peut voir que mon intro.mod, je dois l'appeler AAS_DATA_MOD_intro)
Pour jouer un mod, c'est :
AAS_MOD_Play(nom_du_mod)
Avec dans mon exemple AAS_DATA_MOD_intro comme nom
Et bien sur les commandes associées :
AAS_MOD_Stop()
AAS_MOD_Pause()
AAS_MOD_Resume()
AAS_MOD_SetVolume(vol) //vol allant de 0 à 256
Toutes ces commandes interviennent sur le mod qui est en train de jouer bien sur
Bon les sons :
AAS_SFX_Play(0,64,22050,AAS_DATA_SFX_START_tir,AAS _DATA_SFX_END_tir,AAS_NULL);
Le premier paramètre, c'est le canal (voir avec la config du début, si on a défini 4 canaux, on peut jouer 4 sons à la fois)
Le 2eme c'est le volume (de 0 à 64)
Le 3eme c'est la fréquence du wav (de 1 à 65535)
Les 4eme et 5eme c'est le nom du son, la en l'occurence le wav s'appelait tir.wav )
Le dernier reste en NULL et c'est très bien comme ca
Avec comme d'hab :
AAS_SFX_Stop(canal)
AAS_SFX_Resume(canal)
AAS_SFX_SetVolume(canal,vol) //vol varie de 0 à 64
canal designe le canal qui joue le son que l'on veut
Voila, c'est tout ce que je sais, si vous avez des questions, gbadev... Non je déconne, posez les ici. :)
Auteur : YodaJr
A la demande de nes, je vais exposer tout ce que je sais sur cette librairie sonore. Tout sera bien sur orienté HAM vu que j'utilise cette lib.
D'abord recupérer la lib ici (http://www.apex-designs.net/tools_aas.html).
Pour se faciliter la vie :
Créer un dossier AAS et un dossier sfx dans le dossier du projet. (attention, jamais d'espace dans les dossiers).
Dans le dossier sfx, mettre tous les wav et les mods.
Dans le dossier AAS, mettre les dossiers AASDocs et LibAAS extraits de l'archive.
Il faut aussi extraire le fichier Conv2AAS.exe correspondant au systeme que l'on utilise et le mettre dans le dossier du projet.
Toujours dans le dossier du projet, creer un fichier convert.bat avec dedans :
@echo off
conv2aas sfx
pause
Ensuite le makefile :
Au OFILES ajoutez AAS_Data.o comme ceci :
OFILES += main.o AAS_Data.o
Ensuite dans VHAM > Project > Makefile > Files To Compile
Faites Add > AAS_Data.s
Oui à la question sur le rechargement.
Vérifiez également que les fichiers AAS_Data.h (et .s) sont bien dans le répertoire racine du projet (n'oubliez pas qu'ils sont générés par le convert.bat)
Ajoutez en dessous du OFILES :
ADD_LIBS += $(VHAM_CURPROJECT)/AAS/LibAAS/libAAS.a
INCDIR := $(INCDIR) -I $(VHAM_CURPROJECT)/AAS/LibAAS -I $(VHAM_CURPROJECT)/AAS/LibAAS/LowLevelAccess
On continue par le main.c (ou autre header c'est vous qui voyez) :
D'abord on ajoute ca tout en haut :
#include <AAS.h>
#include <AAS_Mixer.h>
#include "AAS_Data.h" //généré par le convert.bat
Ensuite après le ham_Init() :
AAS_ShowLogo();
ham_ResetAll(); //je nettoye après le logo d'AAS (pas obligatoire, mais il merde un peu ce logo)
Pour l'affichage du logo AAS (obligatoire pour ecouter les mods sur hardware)
Ca continue juste avant le lancement du VBL:
ham_StartIntHandler(INT_TYPE_TIM1,(void*)AAS_Timer 1InterruptHandler); //lancement de l'interruption d'AAS
AAS_SetConfig(AAS_CONFIG_MIX_24KHZ,AAS_CONFIG_CHAN S_4,AAS_CONFIG_SPATIAL_MONO,AAS_CONFIG_DYNAMIC_OFF ); //la config d'AAS
ham_StartIntHandler(INT_TYPE_VBL,(void *)&fonction_vbl); //c'est parti!
Bon pour la config :
AAS_CONFIG_MIX_xxKHZ est pour le mixage je présume, plus le chiffre est grand, plus le mixage est de qualité mais au dépend des ressources (xx varie de : 8, 12, 16, 20, 24, 28, 32)
AAS_CONFIG_CHANS_x est bien sur pour le nombre de canaux : 4 ou 8 (pareil pour les ressources)
AAS_CONFIG_SPATIAL_x pas compliqué : MONO ou STEREO
AAS_CONFIG_DYNAMIC_OFF alors lui on peut le mettre sur ON mais je ne sait pas à quoi il sert
Pour le VBL, on peut y mettre ou pas le AAS_DoWork()... il ne semble pas utile (moi je le met pas)... mais bon, mettez le et passez le en commentaire (//) il pourra peut ete servir à l'ocasion
Et enfin lancez convert.bat pour génerer le AAS_Data.h
Voila c'est fini pour la préparation, ouf...
Maintenant l'utilisation :
Pour savoir comment appeler vos sons et musiques, regardez dans le fichier AAS_Data.h, tout y est (par exemple je peut voir que mon intro.mod, je dois l'appeler AAS_DATA_MOD_intro)
Pour jouer un mod, c'est :
AAS_MOD_Play(nom_du_mod)
Avec dans mon exemple AAS_DATA_MOD_intro comme nom
Et bien sur les commandes associées :
AAS_MOD_Stop()
AAS_MOD_Pause()
AAS_MOD_Resume()
AAS_MOD_SetVolume(vol) //vol allant de 0 à 256
Toutes ces commandes interviennent sur le mod qui est en train de jouer bien sur
Bon les sons :
AAS_SFX_Play(0,64,22050,AAS_DATA_SFX_START_tir,AAS _DATA_SFX_END_tir,AAS_NULL);
Le premier paramètre, c'est le canal (voir avec la config du début, si on a défini 4 canaux, on peut jouer 4 sons à la fois)
Le 2eme c'est le volume (de 0 à 64)
Le 3eme c'est la fréquence du wav (de 1 à 65535)
Les 4eme et 5eme c'est le nom du son, la en l'occurence le wav s'appelait tir.wav )
Le dernier reste en NULL et c'est très bien comme ca
Avec comme d'hab :
AAS_SFX_Stop(canal)
AAS_SFX_Resume(canal)
AAS_SFX_SetVolume(canal,vol) //vol varie de 0 à 64
canal designe le canal qui joue le son que l'on veut
Voila, c'est tout ce que je sais, si vous avez des questions, gbadev... Non je déconne, posez les ici. :)