Jour 6 - Les maths adaptées au Dev DS ← Précédent

Jour 7 - Les sons

Aujourd’hui, nous étudierons la lecture de sons sur la Nintendo DS... Tout d’abord, vous devez savoir que PAlib vous offre 2 méthodes différentes d’utilisation des sons. :

  • Le format raw, joli comme un wav, est bon pour les effets spéciaux (lasers bruits, etc.....) mais prends trop d’espace pour les musiques... Il utilise une méthode d’échantillonage.
  • Le lecteur de mod (merci Deku !!!), est parfait pour le playback de musique, parce que chaque musique prend très peu d’espace dans la rom... Il utilise les quatre caractéristiques de la musique (hauteur, durée, nuance et timbre).

Fichiers son Raw

La DS ne peut pas jouer des fichiers Wav (ou d’autres formats tels que le mp3 ou le ogg) tel quel, vous devrez donc le faire en 2 étapes : convertir le fichier au format raw, et le jouer... Différents sites proposent de télécharger des sons, de style effets spéciaux : http://www.universal-soundbank.com/ ou bien http://www.sampleswap.org/ (il faut s’inscrire).

Convertir un Wav en Raw

J’utilise personnellement Switch, parce qu’il fonctionne vraiment bien (et est facile à employer), mais Kleevah recommanderait plutôt Audacity, et quelques autres utilisent Sox (utilisation de lignes de commande). J’utiliserai Switch pour ce tutorial, mais si vous voulez ajouter la convertion en utilisant d’autres programmes, nous pouvons faire les sections multiples...

Après téléchargement et installation de Switch (n’installez pas tous les autres logiciels qu’ils suggèrent), ouvrez-le et vous devriez obtenir ceci :

Maintenant, cliquez sur les boutons Add File ou Add Folder pour ajouter des dossiers à vous liste de convertion... Une fois que vous avez ajouté tous les fichiers que vous voulez convertir, changez le format de sortie (en bas à gauche) au format raw, et changez les préférences d’encodage pour avoir ça :

Vous pouvez laisser la sortie stéréo si vous préférez, et pouvez également placer un autre taux d’échantillonnage que 11025... mais vous DEVEZ laisser le format 8 bits signé si vous voulez que le fichier converti fonctionne... J’aime bien ces options parce qu’elles donnent de plus petits fichiers avec une bonne qualité, et je ne m’inquiète pas à beaucoup à son sujet le son stéréo (mais qui peut être utilisé, comme dans Super Mario 64 DS, dans le mini jeu où vous ouvrez les boîtes et le bruit est différent, de gauche à droite, puis juste à gauche, etc.....).

Vous pouvez également choisir le répertoire de sortie. Une fois que vous êtes prêt, cliquez le bouton Convert, et ce n’est plus qu’une question de secondes avant que vous obteniez vos fichiers raw !!!

Convertir tout les formats en Raw dans Audacity

Dans Audacity, convertir est a peu près pareil.

D’abord, ouvrez Audacity, Appuyez sur Ctrl+P ou allez dans le menu Edition et cliquez sur Préférences. Cliquez sur le format de fichier tab. Cliquez sur “Uncompressed Export Format”(Exporter Format decompressé) puis mettez ce que vous mettez dans Switch : “RAW (header less)” et signez 8bits PCM. Clquez sur OK puis sur suivant. Maintenant, ouvrez le fichier que vous voulez convertir, puis allez dans le menu du fichier et cliquez sur “Export As RAW” et vous êtes prêt !

PS : Switch est quand même plus simple d’utilisation et rapide, je vous conseillerai Switch plutôt que Audacity.

Jouer les fichiers raw

Maintenant que vous avez vos fichiers raw, placez les dans le répertoire data de votre projet. Si vous n’en avez pas, créez-le... L’exemple que nous allons utiliser est Sound/Sound...

C’est un code très facile à comprendre :

#include <PA9.h>       // Inclue PA_Lib
#include "saberoff.h"  // Inclue le son (trouvé dans le dossier data au format raw mais lextension qui apparait içi est .h au lieu de .raw)
 
// Fonction : main()
int main(int argc, char ** argv)
{
	PA_Init();    // Initialisation de PA_Lib
	PA_InitVBL(); // Initialisation de la VBL standard
	PA_InitText(0, 0);
	
	PA_InitSound();  // Initialisation du système du son
	
	PA_OutputSimpleText(0, 6, 10, "Appuyez sur A pour jouer le son");
 
	// Boucle infinie pour laisser le programme fonctionner
	while (1)
	{		// joue le son si le bouton A est appuyé...
		if (Pad.Newpress.A)
                   PA_PlaySimpleSound(0, saberoff);
 
		PA_WaitForVBL();
	}
 
	return 1;
}

Il y a juste quelques étapes à suivre:

  1. #include “saberoff.h” inclut votre fichier raw, dit au compilateur où il est... C’est juste lenomdufichierraw.h, placé après l’include de PAlib...
  2. PA_InitSound(); initialise le système son de PAlib (le même pour les fichiers raw et mod), et paramètre les fichiers raw par défaut à un taux d’échantillonage de 11025 et au format 8 bits signés...
  3. PA_PlaySound(0, soundfile); C’est facile à utiliser, choisissez un canal(16 en tout de 0 à 15) et le nom du fichier son... rien de plus, rien de moins...

Compilez, lancez, et appréciez le bruit de sabre laser par une pression sur le bouton A ! (voir \PAlibexample\Sound\Sound\)

Fichiers mod

Les fichiers mod sont vraiment sympas à employer, parce qu’ils sont simples, prennent très peu d’espace dans la rom, et peuvent sonner très bien... Mais ils ne sont pas très facile à créer, il vaut mieux les rechercher sur le web... Je recommande personnellement de visiter The Mod Archive, Exotica (inactif), et ModLand . Prenez seulement les fichiers avec l’extension “.mod”...

Maintenant, allons voir l’exemple : Sound/ModPlayer !

D’abord, placez votre fichier mod dans le dossier data (j’ai appelé celui de l’exemple modfile.mod...). Si votre projet n’a pas de répertoire data, créez-le...

Maintenant, je vais poster le code entier pour une fois :

// Includes
#include <PA9.h>       // Inclue PA_Lib
#include "modfile.h"  // Inclue le fichier mod (le fichier mod est dans le dossier data)
 
 
// Fonction : main()
int main(int argc, char ** argv){
 
	PA_Init();    // Initialisation de PAlib...
	PA_InitVBL();	// Initialisation du VBL...
	
	PA_InitSound(); 	// Initialisation du son, pour le lecteur mod...
	
	PA_PlayMod(modfile);  		// Joue un mod
	
	while(1){	// Boucle infinie
		PA_WaitForVBL();
	}
		
	return 0;
} // Fin de main()

Il y a juste 3 choses à savoir !

  1. #include “modfile.h” doit être placé en haut du fichier, après avoir inclus PAlib... Ce fichier a le nom de votre fichier mod + “.h” (pour “modfile.mod”, votre fichier à inclure sera “modfile.h”). Si vous ne l’ajoutez pas, le programme ne saura pas que votre fichier mod est là... De plus votre fichier mod ne doit pas contenir de caractères spéciaux, d’espaces, ni aucun chiffre non plus mais uniquement des lettres !!
  2. PA_InitSound(); est l’initialisation du son... si vous ne l’utilisez pas, le lecteur de mod ne fonctionnera pas !
  3. PA_PlayMod(modfile); joue le fichier mod ! Oh, c’était facile !

Maintenant, une dernière chose : les restrictions... Votre fichier mod peut avoir de 1 à 16 canaux, mais je recommande 8 canaux, qui vous laisse 8 canaux pour des effets sonores.

Prochain → Jour 8 - DS Hardware

 
day7.txt · Dernière modification: 27/10/2009 11:19 par 92.140.160.50
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki