[Tutorial] Modifica las músicas de tus juegos Wii.

Últimos cambios:
06/06/09 00:33
- Subida versión 2.1
* Carpetas para tener ordenados los archivos de entrada y salida.

05/06/09
- Subida versión 2.0F
* Reescrito gran parte del código.
* Mayor facilidad para loop en canciones.

26/03/09
- Subida versión 1.8F (con proceso automático de audio a *.brstm en Mono)

25/03/09 21:00
- Subida versión 1.7 (falta testearla un poco :3)

25/03/09 19:30
- Subida versión 1.6
- Añadido al tutorial cómo pasar a *.wav con FFmpeg.


Buenas a todos :3~
Antes de nada veo importante citar el post de Jolti135, ¡Pon tu propia música en el Brawl!, con un tutorial sobre cómo modificar canciones de los juegos de Wii con las tools de Androu. Puede parecer lo mismo en finalidad, pero lo que quiero conseguir es brindar una alternativa a su proceso de una manera bastante más detallada. Una vez dicho esto, damos paso al tuto :p


Qué es el formato *.brstm?
Es un formato usado en los juegos de Wii (no se si todos lo tienen como estándar) que empaqueta, por lo general, dos archivos de audio *.dsp cada uno pertenecientes a cada canal del audio en estéreo. A continuación vamos a ver cómo podemos crear nuestros propios archivos *.brstm para sustituir en nuestros juegos a partir de un *.wav (también explicaré el paso de *.mp3 a *.wav al tratarse de un formato de audio bastante extendido)



Reuniendo las Tools
Hacen falta una serie de aplicaciones que hay que buscar por la red (sea cual sea el método que se use para generar los *.brstm), al menos por el momento.

Y otras que usaremos en este tuto que son gratuitas (pueden servir otras aplicaciones):



¡Manos a la obra! (Imágenes desactualizadas)

Proceso para el audio en estéreo
1º. Cortar el mp3 (opcional)
Para ello utilizaremos el MP3DirectCut, un programa gratuito, sencillo y eficaz que nos ayudará a extraer un trozo de un *mp3 a nuestra elección. Su manejo es muy sencillo, le damos al botón de "Reproducir" (o movemos la scrollbar horizontalmente con el ratón) y al de "Detener" cuando lleguemos al momento a partir del cual queremos cortar. Le damos a "Fijar inicio" y repetimos el proceso para "Fiijar final". Una vez fijados ambos puntos, se "coloreará" un trozo de la canción, le damos a "Archivo -> Guardar selección..." y guardamos el *.mp3 obtenido. Si queremos, podemos realizar este paso con el Audacity más tarde.
Imagen

2º. Pasar el archivo de audio de *.mp3 a *.wav
Modo 1:
Descarga esta versión no oficial de FFmpeg compilada para Windows de 32 bits (desconozco si funciona en 64). Extrae el archivo "ffmpeg.exe" en la carpeta del "brstm-wav-[un]packer", ejecuta el "brstm-wav-[un]packer.bat" y elige la 3ª opción: Pasar audio a *.wav. Sigue las instrucciones en pantalla.
(FALTA IMAGEN)

Modo 2:
Aquí utilizaremos el programa SUPER ©. Seleccionamos en "1. Select the Output Container" la opción "wav (Audio Only)", en "3. Select the Output Audio Codec", la opción "WAV-(pcm 16 little-endian). Seleccionamos la "Sampling Freq" de "32000", en "Channels" la opción "2" y le damos a "Encode (Active Files)".Obtendremos un fichero llamado *.mp3.WAV, borramos el ".mp3" del nombre para evitar confusiones (aunque en principio no debería dar problemas xD).
Imagen


3º. Tratar el *.wav
Vamos a utilizar el Audacity, un editor y grabador de audio libre. Abrimos el Audacity, le damos a "Archivo -> Abrir..." y elegimos el *.wav que nos ha generado anteriormente el SUPER ©. En donde aparece nuestra pista de audio, hacemos clic sobre su nombre (al lado de la X para cerrarla) y se nos desplegará una serie de opciones. Antes de nada, le damos a "Dividir pista estéreo" y veremos como nos aparecen 2 pistas (o canales) de audio. Marcamos en cada una la opción "Mono", "Establecer formato de Muestreo -> 16-bit" y comprobamos que la frecuecia sea de 32000hz. En la parte de abajo del programa, donde pone "Frecuencia" haz clic sobre la frecuencia por defecto, selecciona "Otro..." e introduce "32000".
Imagen

4º. Guardar cada canal de audio en un archivo diferente.
Una vez elegidas las ocpiones correctas, procedemos a extraer en formato *.wav cada una de ellas. Para ello, le damos a "Archivo -> Exportar múltiple...". Elegimos formato "WAV" y recomiendo activar en "Archivos nombrados" la opción "Numerando consecutivamente" y elegimos un nombre. Le damos a exportar y listo, el programa generará 2 archivos XXX-1 y XXX-2.
Imagen

5º. Empaquetar los *.wav en un *.brstm
Colocamos los 2 archivos de audio que hemos generado en la carpeta del Brstm-Wav (Un)Packer v2.1 (NOTA: Faltan archivos para su correcto funcionamiento, el *.zip solo incluye dos *.bat para automatizar el proceso). Ejecutamos el "brstm-wav-[un]packer.bat" y esribimos en pantalla el nombre de los *.wav generados sin el -1, ni -2, ni la extensión. El *bat nos devolverá 2 números (que en teoría han de ser idénticos), los introducimos y et voilà!, ya tenemos listo nuestro *.brstm para sustituir con el WiiScrubber 1.4.
Imagen


Proceso para el audio en mono
Este modo es mucho más sencillo que el anterior y, además, ocupa menos espacio en la *.ISO del juego. La única pega es que no es recomendable para los amantes del sonido con calidad :p
1º. Pasar de *.mp3 a *.wav
Llevar a cabo los pasos 1 y 2 del tuto en estéreo modificando en el segundo paso la opción Channels poniéndola a 1 (en caso de usar SUPER ©) o eligiendo Mono en el brstm-wav-[un]packer.bat.

2º. Empaquetar el *.wav en un *.brstm
Metemos el archivo *.wav resultante en la carpeta del Brstm-Wav (Un)Packer v2.1. Ejecutamos el "brstm-wav-[un]packer.bat" y seguimos las instrucciones que aparecen en pantalla.



Sustituyendo los archivos de audio del juego por los creados.
Para ello usaremos el WiiScrubber 1.4.
1º. Localizar los archivos de audio en nuestra *.ISO
Cada juego tiene una distribución de los archivos dentro de la *.ISO, hay que ir buscando con el WiiScrubber hasta dar con archivos *.brstm.
(FALTA IMAGEN)

2º. Comprobar los archivos *.brstm del juego.
Este es un paso importante. No solo hemos de preocuparnos de encontrar la carpeta que contiene los archivos de audio en un juego de Wii, también debemos encontrar qué archivo de audio vamos a sustituir, no sea que sustituyamos alguno que nos guste o alguno que no nos interese xP. Abrimos la *.ISO con el WiiScruber 1.4 y desplegamos la carpeta que contiene los archivos de audio. Le damos a extraer y los metemos en la carpeta del BRSTM-WAV (Un)Packer (Podemos incluso poner más de uno, ya que el *.bat nos los descomprimirá todos). Ejecutamos el "brstm-wav-[un]packer.bat" y seguimos las instrucciones que aparecen en pantalla para extraer el *.wav.
(FALTA IMAGEN)

3º. Sustituir los *.brstm del juego
Escuchamos los *.wav en nuestro reproductor de audio favorito hasta dar con las canciones que vamos a sustituir. Tomamos nota de los nombres de éstas y las sustituimos con el WiiScruber 1.4 por las que hemos generado (recomiendo hacer una backup de la *.ISO antes de meterle algo, para seguir teniendo una copia limpia de la misma). Grabamos el juego o lo probamos en el Dolphin para testear que todo esté correcto (recomiendo el uso del emulador [o de FlatMii] para evitar el gasto compulsivo de DVDs xP).
(FALTA IMAGEN)


Aunque recomiendo el proceso en Estéreo para lograr una buena calidad de sonido, el proceso en Mono es sencillísimo y mucho más rápido (he estado testeando y en Mono el audio se escucha más flojo).

Saludos! [bye]
Has hecho bien, maestro. [oki] A mí me gusta mucho más así, producto de alguien de aquí, y encima en estéreo y mucho más claro. XD

Voy a pedirle a Jamonazo2000 que cierre mi tema, que éste está mucho mejor. xD
No le he dedicado mucho tiempo al tuto porque he estado intentado conseguir un proceso automático para "Archivo de audio -> *.brstm" y lo he conseguido :p. Para ello, se hace uso del "FFmpeg" (en el post del tutorial cito la página en donde lo podéis obtener). El *.brstm puede o no tener loop y, si lo tiene, éste será por defecto el máximo sample de la canción (no hace falta escribirlo [aunque también se puede hacer que pregunte si quieres ponerlo por defecto o a mano, quizá para la próxima xD]). Además, he estado probando con el SSBB sustituyendo los archivos de audio por los generados con el script y funciona perfectamente con audio en *.mp3, *.wma y *.ogg (que coinciden con los que he probado), aunque supongo que estos dos últimos serán menos utilizados xD.

Se aceptan opiniones, sugerencias y críticas XD

Saludos! [bye]

PD: Ahora sí, a ir acabando de poner imágenes en el tuto >_<
Bueno, pues venía a plantear una dudilla.

Veréis, he usado el programa de Androu para modificar las canciones (hablo de una versión anterior), y los archivos de sonido, una vez incluídos, se reproducían casi sin problemas, con la salvedad de que la música llegaba al final y empezaba a reproducirse nuevamente desde el principio.

Lo que me gustaría saber es si hay alguna forma de que las canciones modificadas se empiecen a reproducir, y una vez llegado al final, se vuelva a reproducir desde un determinado momento de la canción, sin que haya ninguna interrupción (vamos, que se reproduzca de forma contínua, como las canciones originales del Brawl). Es que estar luchando en Columna Lanza mientras se escucha el tema de batalla de Giratina (sacado de Pokémon Platinum), que esa canción termine y se reinicie desde el principio tras un momento de absoluto silencio en la música de fondo resulta un pelín molesto.
No he probado el programa de androu y no se como funciona, lo que probe fue el bat que publico kaitos en el post de jolti135 y bueno, haciendo una pequeña modificacion que inclui como codigo en uno de los ultimos mensajes de ese tema, en teoria se puede, aunque nunca lo he llegado a comprobar ya que en el winamp se me desacompasaban los dos canales

Basicamente tendrias que partir de los dos canales convertidos ya a formato dsp y hacer algo como esto para cada uno de ellos:

dspadpcm -e canal1.wav canal1.dsp -l(aqui iria la muestra de inicio)-(aqui la muestra final) -ccanal1.txt
dspadpcm -e canal2.wav canal2.dsp -l(muestra de inicio)-(muestra final) -ccanal2.txt
revb --cancion.brstm canal1.dsp canal2.dsp


Lo que no he probado, y deberia haberlo hecho, es si funciona bien el tema para canciones mono ^^U
buen tuto que ando buscando los 2 dll`s y no los encuentro me lo podria pasar por mp por favor, gracias [ayay]
Gracias a este tutorial esta hecho mas de la mitad del trabajo de un custom DDR (en mi firma)

Muchas gracias
Muchas gracias! me ha servido de mucho :p
Listo me va perfecto y 100 veces mas facil que con el tuto anterior! [qmparto]
[toctoc] no se si esto vaya en contra de las reglas pero nuestro amigos de elite smash ya tiene unos cuantos archivos de canciones de otro videojuegos listas para el wiiscrubber (El menu de kirby air ride suena muy adecuado en lugar del original del melee [sonrisa] )
http://elitesmashhackers.wordpress.com/music/
Como creador de ese otro tema, yo mismo te digo que este método es mucho más sencillo, rápido y efectivo. XD La de canciones que he podido meter de forma perfecta gracias a Kaitos... [oki]
jaja si me va perfecto, pero haora deja de escucharse, despues de un tiempo se cogela o aparece "la imagen verde del error y que saque el disco" debo añadir que uso el USB loader de Waninkoko, pero tambien cambie muchas texturas. seguro fue un erro mio por algun lado.
bueno, soy un usuario random de esos k solo mira y no postea pero... weno me he mirado el hilo antiguo y este entero y no se como puedo saber el sample en el que empieza el loop T_T si alguien me ayuda mejor

EDIT: mas bien me gustaria que hicieran un tuto de loopear la musica o algo pk yo no me empano de nada
Miquel0123 escribió:bueno, soy un usuario random de esos k solo mira y no postea pero... weno me he mirado el hilo antiguo y este entero y no se como puedo saber el sample en el que empieza el loop T_T si alguien me ayuda mejor

EDIT: mas bien me gustaria que hicieran un tuto de loopear la musica o algo pk yo no me empano de nada


Es "bastante" fácil sacar el sample para hacer el loop, solo necesitas una calculadora para agilizar el proceso [+risas]:

Hay que tener en cuenta que el audio está a una frecuencia de 32000Hz, que a su vez son 32KHz. Este numerito (el de los KHz), nos indica que cada milisegundo (ms) equivale a 32 samples. Pues bien, cogemos el tiempo desde el que iniciará el loop (5:33, por ejemplo) y lo pasamos todo a segundos (5*60+33=333 s). Luego pasamos los segundos a milisegundos (333*1000=333000 ms) y multiplicamos por los 32 samples que hay en cada ms (333000*32=10656000 <- nuestro tiempo de inicio pasado a samples XD)
Un vez dicho esto... podemos ahorrarnos pasos y multiplicar directamente el número de segundos por 32000 xD (333*32000=10656000 )

Saludos! [toctoc]

PD: Otro truquito, aunque algo menos ortodoxo, es cortar la canción por el punto en el que quieras que inicie el loop, guardar en un archivo aparte el audio que va desde el principio a ese punto y realizar el proceso con ese cacho de audio. Como el programa nos devuelve el máximo número de samples para realizar un loop al 100%, tendrás tu cantidad de samples en ese segundo exacto xP.
PD2: A ver si ahora que me aburro mucho por las mañanas arreglo un poco el código del *.bat y añado alguna que otra cosilla xD
pero entonces si la frecuencia es de 32KHz cambio el 4,1 por 3,2¿?¿?

PD: te he mandado un mp para que me agregues al msn y me pases archivos etc

PD2: en el programa no he de poner el punto de inicio del loop? tu me has dicho el final...

agregame al msn anda, k yo no tengo mucha idea, pero en cuanto lo pille ya esta :3
Miquel0123 escribió:pero entonces si la frecuencia es de 32KHz cambio el 4,1 por 3,2¿?¿?


Perdón, perdón, lapsus [+risas]. La frecuencia es de 32000Hz (ahora edito el post anterior), pero el proceso es el mismo.

Miquel0123 escribió:PD: te he mandado un mp para que me agregues al msn y me pases archivos etc


He visto el PM, y de hecho te he respondido ._." . Y no, no agrego a msn para consultas que puedan hacerse a través del foro, lo siento >_<.
pero aparte del msn para hablar tambien para archivos T_T

no es solo por la duda, sino para hablar tambien T_T
Como veo que ya os animais con los loops y demas, desvelare algo que no se si alguien aparte de mi sabra, y que he decidido que si se sabe, mas divertido sera editar las canciones propias

Hace un tiempo dije por aqui que habia intentado hacer loops con el bat antiguo de kaitos modificandolo un poco, y que el winamp hacia cosas raras con los dos canales de audio, se desincronizaban, y como no me fijaba en el tema de los samples y demas, lo hacia por tanteo, pero al fallar el winamp tenia el problema de no poder escuchar lo que realmente luego se escucharia en el juego

Luego use para mi tecnica del tanteo el emulador dolphin y el smash bros, modificando la cancion de ciudad delfino, pero era un latazo tener que entrar en el juego y buscar el sound test cada vez, sobre todo en mi ordenador que no es muy bueno

Y un dia mirando el log de la estraccion de un brstm cai en la cuenta de que los samples van en grupos de 14336... Que significa esto? Que si el loop lo haces a un sample MULTIPLO DE 14336, el winamp lo reproducira perfecto, al igual que cualquier original, y el winamp no hara tonterias

Asi que teniendo en cuenta esto, para hacer un loop correcto solo hay que adaptar el sample de salto del loop a un numero de estas caracteristicas

Normalmente lo hago asi:

-Busco en el audacity el punto donde hacer el loop mas facil
-Luego miro y me guardo la diferencia entre los dos numeros que tengo para el loop (diferencia de tiempos x 32000)
-A continuacion divido el mas pequeño entre 14336
-Cojo la parte entera del resultado y la multiplico por 14336 (aunque mas aconsejable es coger el siguiente entero, si el sample del final no es el ultimo de la muestra de audio)
-Sumo a este numero la diferencia que antes me he guardado

Ya tengo el sample final y el sample inicial que necesito para hacer un loop BIEN HECHO

PD: Si, si no usamos el winamp, cualquier loop bien contado funcionara bien en el juego y no se necesita mas, pero yo soy muy perfeccionista y prefiero hacerlas bien hechas xD

Kaitos escribió:A ver si ahora que me aburro mucho por las mañanas arreglo un poco el código del *.bat y añado alguna que otra cosilla xD

Te mandare por privado una modificacion que hice yo de tu bat, para que la mires si quieres incluir alguna de las modificaciones que le hice y tal ein?

Si te aburres por las mañanas no creo que te importe echarle un vistacillo xD
No me acabo de enterar mucho... Y me lo he releido como 15 veces y sigo sin entenderlo
Ejemplo practico: Una cancion tiene dos puntos iguales en los instantes 0:34 (34 segundos) y 2:21 (2x60+21=141 segundos)

34x32000=1088000
141x32000=4512000
4512000-1088000=3424000

1088000/14336=75,892
75x14336=1075200
1075200+3424000=4499200

brstm[un]packer: opcion 1 (wav to brstm), inicio del loop=1075200, fin del loop=4499200

Todo esto suponiendo que tenemos la pista de audio (sea un canal o dos) correctamente en formato(s) wav mono, frecuencia de muestreo a 32000Hz y formato de muestreo de 16 bits, opciones a seleccionar en audacity o equivalentes :-|

Creo que con el tutorial del hilo y este ejemplo practico, pocas dudas pueden quedar ^^U
yo lo hago todo con el de andro1 pk asi tengo las carpetas de canciones mas ordenadas, ahora entiendo el ejemplo, entonces lo k he de hacer es namas cortar la cancion donde acabe el loop y ponerle el eincio de loop en ese momento y ya esta no?

hago lo mismo solo k no poner el final de loop XD

otra duda

la info que te viene cuando desempaquetas la cancion dice donde hace el inicio de loop? porque si ya lo tienen de antes volverselo a poner, pk asi les puedo subir de volumen o algo, que algunas como la de boss 1 del subemissario estan muy flojas >_>
Si, exactamente

Si, te sale un monton de cosas relacionadas con el archivo, incluido el inicio del loop, asi que puedes subirle el volumen al wav resultante y luego usar el mismo numero de inicio de loop para volverlo a convertir a brstm
Ale, traigo la versión 2.0 del Brstm-Wav-(Un)Packer. He tardado un poco porque al final he reescrito mucha parte del código que, aunque "cumpliera su cometido", era muy fea y bastante sucia y no se ni cómo conseguí que funcionase XD. (Es lo que tiene estar acostumbrado al Bash de GNU/Linux :-| )

He añadido bastantes partes del código relacionadas con el loop de las canciones, espero que os guste y que no de problemas xD. Como mucha parte del código ha sido reescrita... quizá me haya dejado algo en el tintero, pero de todas las pruebas que he hecho (que no han sido pocas) por ahora no ha fallado. Si véis que da algún tipo de "bugazo" o algo, PM o usad este post [+risas].

También agradecer a Mewtwo2000 su ayuda con el tema del Loop de las canciones :)

Saludos! [bye]
kaitos podrias hacer una cosa que iria muy bien?

que leyera una carpeta como la de androu1 que se dijera OriginalSongs y se guardara en una k se llamara Edited songs: Por tenerlo ordenado mas que nada

porcierto la nueva version no me da error de momento XD
Ya está puesto lo de las carpetas :) -> Brstm-Wav (Un)Packer v2.1

Es bastante sencillo: la carpeta audio ha de tener en su interior todos los audios en *.wav, *.mp3, *.ogg y *.wma (aunque es compatible con muchos otros formatos, he puesto esos por ser los más comunes xP) y en ella irán a parar los *.wav extraidos de los *.brstm. Así mismo, en la carpeta brstm hemos de meter los *.brstm extraídos de los juegos de Wii y a la misma carpeta irán a parar los *.brstm generados.

No descarto que haya algún pequeño problema con archivos *.txt o *.dsp que aparecen en la carpeta del script y no se borran o que el script lance algún error de "archivo X no se encuentra". He probado todas las opciones (o al menos eso creo xD) y ninguna me ha dado fallos, así que si encontráis alguno comunicadlo por el foro y se arregla en un momentín [+risas].

Saludos! [bye] y gracias a todos por ayudar en que el script mejore [ayay].
podrias añadirle un cambio?

cuando empaquetes los wav a brstm wue se borren los archivos de audio porque sino tengo tantos que no me aclaro >.< o almenos que te de la possibilidad de borrarlos

si lo ves bien hazlo, ah y otra cosa, podrias poner lo de que cuando se empaqueten las musicas en brstm se extraiga el lenght automaticamente en el mismo directorio del bat? y no en el de sounds? y que quando se acabe el empaquetamiento se borre junto a las musicas editadas en sounds?

yo creo que asi seria mejor aunque mequeña mejora estara mejor
Pues eso, que logre hacer que funcionara sustituyendo las voces y efectos de sonido con wiiscribber, el archivo era un tal Smashbros_sound.btrm y quedo algo asi (lo siento por la calidad) pero esto da la posibilada de tambien sustituir los SFX, imagina, poder cambiar la palabra "sonic" por "shadow" sacada de "mario y sonic en los juegos olimpicos" [oki] y cambiando la textura por la de shadow junto con su nombre en la parte inferior ediatando la con GIMP/Photoshop. [rtfm]

http://www.youtube.com/watch?v=PKifp9vB ... annel_page copiar y pegar ratataaaa

ah claro y tambien logre poner la cancion de Gorillaz "feel good inc" con un loop perfecto y tal vez lo suba para compartirlo, si es que se puede claro. [angelito] [beer]
si que se puede subir eso, lo ilegal es el programario de nintendo XD
ElAnticristo2007 escribió:Pues eso, que logre hacer que funcionara sustituyendo las voces y efectos de sonido con wiiscribber, el archivo era un tal Smashbros_sound.btrm y quedo algo asi (lo siento por la calidad) pero esto da la posibilada de tambien sustituir los SFX, imagina, poder cambiar la palabra "sonic" por "shadow" sacada de "mario y sonic en los juegos olimpicos" [oki] y cambiando la textura por la de shadow junto con su nombre en la parte inferior ediatando la con GIMP/Photoshop. [rtfm]

http://www.youtube.com/watch?v=PKifp9vB ... annel_page copiar y pegar ratataaaa

ah claro y tambien logre poner la cancion de Gorillaz "feel good inc" con un loop perfecto y tal vez lo suba para compartirlo, si es que se puede claro. [angelito] [beer]

Depende de si la canción de Gorillaz tiene o no copyright. Si tienes copyright no podrás subirlo porque se estaría "pirateando" la canción y va contra las normas de EOL, si no tiene copyright no creo que haya problema alguno.
27 respuestas