[Tutorial]Maxmod, las librerías de audio de la NDS 5 5 1

[Tutorial]Maxmod, las librerías de audio de la NDS

Ver el tema anterior Ver el tema siguiente Ir abajo

[Tutorial]Maxmod, las librerías de audio de la NDS

Mensaje por Roberto258 el Vie 20 Mayo 2011 - 23:12

Bienvenidos a este "paréntesis" de mis tutoriales de NFlib.Os pregutaréis por qué y para qué hago un tutorial aparte.La respuesta es bien sencilla, noto que la NFlib no es lo suficientemente completa en lo que al audio se refiere.

Maxmod qué es y para qué sirve.

Maxmod es una librería que nos permitirá controlar abiertamente el sonido de nuestras Nintendo DS.Se utiliza como cualquier otra, como la misma NFlib, se declara al principio y añade funciones propias que nos ayudarán y mucho, a la hora de dar más vida a nuestro homebrew.

Preparación

Esto es lo más difícil de hacer, así que estad atentos:

1-¿Necesitamos canciones no?Coged la canción que queráis y convertidla l formato .wav con el switch sound file coverter ( buscar en google);



*Nota: Poned las opciones tal como están en la imagen.

2-Con eso nos bastará con los pequeños sonidos, pero para la música necesitaremos algo más, el OpenMPT.Tras instalar el programa haremos lo siguiente:

2.1-Abrimos nuestro archivo .wav pulsando sobre File/Open.



*Nota: Debemos especificar que es en formato .wav( como se muestra en la imagen).

2.2-Exportamos nuestra canción ya cargada a .it pulsando sobre File/Compatibility Export



*Nota: ¡¡Por favor!!Dejad el nombre tal cual os lo pone.

3-Ahora deberemos convertir nuestros sonidos y música(sí, otra vez xD) a un fichero .bin y a otro .h.Para ello crearemos un documento de .txt nuevo y escribir lo siguiente:

Spoiler:


C:\nds\devkitPro\devkitARM\bin\mmutil -osoundbank.bin -hsoundbank.h -d 3KU.wav 3KU.compat.it
pause



Vayamos por partes; lo primero es la ruta donde hayamos instalado el devkitpro( ver el primer tutorial).Lo segundo son 2 comandos para convertir el sonido a los ficheros .h y .bin.Lo tercero ya es los nombres de las canciones y sonidos que queramos convertir( podemos convertir todos los que queramos del tirón) con la extensión que tienen(.wav .it .mod o .xm).
Cuando lo hayamos escrito, le damos a Archivo/Guardar como... y ponemos en nombre convert.bat y de tipo todos los archivos.



Ya está, ahora colocamos el convert.bat donde tengamos nuestros archivos de música y damos doble click sobre él.Nos saldrán dos archivos.

En el código

Una vez tengamos convertidos los sonidos, creamos un nuevo proyecto y ponemos el soundbank.h en la carpeta source y el soundbank.bin en una carpeta dentro de nitrofiles( Ejemplo: nitrofiles/audio).
Una vez hecho esto, abrimos el archivo makefile que está en la raíz de nuestro proyecto con un editor de texto y modificamos las siguientes líneas.

Spoiler:


TARGET := $(shell basename $(CURDIR))
BUILD := build
SOURCES := source
INCLUDES := include
DATA := data
GRAPHICS := gfx
NITRODATA := nitrofiles
Audio := Audio



Spoiler:


#---------------------------------------------------------------------------------
# any extra libraries we wish to link with the project
#---------------------------------------------------------------------------------

LIBS := -lnflib -lfilesystem -lfat -lnds9 -lmm9



*Nota: Lo que hay que modificar lo he puesto en negrita.

Una vez hecho esto, solo queda declarar la librería y el soundbank.h en el main.c, de la siguiente manera:



Reproduciendo sonidos

3 cosas:

mmInitDefault("audio/soundbank.bin");
//Cargamos el archivo de sonido

mmLoadEffect (SFX_3KU);
//Cargamos el sonido 3KU.wav, que se representa en el archivo .h como "SFX_NOMBRE( siempre en mayúsculas).

mmEffect (SFX_3KU);
//Lo reproducimos

Siguiendo esto más lo que ya sabíamos sería así:

Spoiler:
/*
-------------------------------------------------
Includes
-------------------------------------------------
*/

// Includes c/c++
#include

// Includes propietarios NDS
#include

// Includes librerias propias
#include

//Includes para manejar el audio
#include // Maxmod definitions for ARM9
#include "soundbank.h" // Soundbank definitions


/*
-------------------------------------------------
Main() - Bloque general del programa
-------------------------------------------------
*/

int main(int argc, char **argv) {

//Inicia el audio

soundEnable();

//Elige el sistema de archivos

NF_SetRootFolder("NITROFS");//Elegimos nitrofiles como carpeta inicial

//Carga el archivo de sonido

mmInitDefault("audio/soundbank.bin");

//Carga el sonido

mmLoadEffect (SFX_3KU);

//Lo reproduce

mmEffect (SFX_3KU);

// Bucle (repite para siempre)
while(1){


swiWaitForVBlank(); // Espera al sincronismo vertical

}


return 0;

}


Reproduciendo música

Es casi lo mismo que el sonido:

mmInitDefault("audio/soundbank.bin");
//Cargamos el archivo de sonido

mmLoad (MOD_3KU);
//Cargamos el sonido 3KU.it, que se representa en el archivo .h como "MOD_NOMBRE( siempre en mayúsculas).

mmStart (MOD_3KU, MM_PLAY_LOOP);
//Lo reproducimos

*Nota: existen dos tipos de reproducciones, MM_PLAY_LOOP que repetirá la canción cuando termine y MM_PLAY_ONCE que la parará.
Ejemplo:

Spoiler:


/*
-------------------------------------------------
Includes
-------------------------------------------------
*/

// Includes c/c++
#include

// Includes propietarios NDS
#include

// Includes librerias propias
#include

//Includes para manejar el audio
#include // Maxmod definitions for ARM9
#include "soundbank.h" // Soundbank definitions

/*
-------------------------------------------------
Main() - Bloque general del programa
-------------------------------------------------
*/

int main(int argc, char **argv) {

//Inicia el audio

soundEnable();

//Elige el sistema de archivos

NF_SetRootFolder("NITROFS");//Elegimos nitrofiles como carpeta inicial

//Carga el archivo de sonido

mmInitDefault("audio/soundbank.bin");

//Carga el audio

mmLoad (MOD_3KU);

//Lo reproduce

mmStart (MOD_3KU, MM_PLAY_LOOP);

// Bucle (repite para siempre)
while(1){

swiWaitForVBlank(); // Espera al sincronismo vertical

}

return 0;

}



Desechos

mmUnload( MOD_NOMBRE );
//Descargamos de la RAM una canción

mmUnloadEffect( SFX_NOMBRE );
//Descargamos de la RAM un sonido

Aquí concluye mi tutorial, pero si aún os quedáis con hambre, podéis leer algo más( en inglés) en la página oficial de maxmod.

Otros tutoriales nflib

1-Conceptos previos e instalación.
2-Textos;usarlos y mostrarlos.
3-Gráficos simples fondos & sprites.Utilizar los splashes.
4-Teclas,música & cmaps.

Roberto258
NDS-Fan

Masculino
Cantidad de envíos: 857
Localización: P'allá, p'allá, y luego to p'alante
Empleo/Ocio: Llevar el juego del asesino :P
Humor: Quarcástico
Opinión sobre NDS-Extra: Me Encanta
Reputación: 77
Puntos: 1081
Inscripción: 28/08/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: [Tutorial]Maxmod, las librerías de audio de la NDS

Mensaje por pepenillo el Sáb 21 Mayo 2011 - 10:01

Lo probaré, pero segun lo he leido parece un poco dificil

pepenillo
NDS-Extrero

Masculino
Cantidad de envíos: 1765
Opinión sobre NDS-Extra: Ninguna
Reputación: 176
Puntos: 2533
Inscripción: 12/08/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: [Tutorial]Maxmod, las librerías de audio de la NDS

Mensaje por Roberto258 el Sáb 21 Mayo 2011 - 10:46

pepenillo escribió:Lo probaré, pero segun lo he leido parece un poco dificil


Con decirte que comencé a intentar utilizarlas en diciembre del año pasado y hasta hace unas semanas seguía en un "punto muerto",Pero vamos, que para que no os pase lo mismo os lo he puesto a huevo, con imágenes, con ese programa que me costó la vida encontrar y totalmente en español, que dudo que encuentres tutoriales de esto en español.

Un saludo y recuerdo hacer cada paso con mucho cuidado.

Roberto258
NDS-Fan

Masculino
Cantidad de envíos: 857
Localización: P'allá, p'allá, y luego to p'alante
Empleo/Ocio: Llevar el juego del asesino :P
Humor: Quarcástico
Opinión sobre NDS-Extra: Me Encanta
Reputación: 77
Puntos: 1081
Inscripción: 28/08/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: [Tutorial]Maxmod, las librerías de audio de la NDS

Mensaje por Rafael-animal el Sáb 11 Jun 2011 - 17:39

¡Al fin pude poner música en condiciones!
Muchas gracias por el tutorial =).

Rafael-animal
NDS-Junior

Masculino
Cantidad de envíos: 84
Opinión sobre NDS-Extra: Tiene que mejorar
Reputación: 23
Puntos: 125
Inscripción: 13/01/2011

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

Permiso de este foro:
No puedes responder a temas en este foro.