Qué pasa con los canales de la música tracker?

Started by KeiDash, June 16, 2018, 03:11:17 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

KeiDash

Buenas a todos,

A ver si hay algún experto en el sector porque yo desconozco que está pasando.

Dispongo de un gran número de canciones de tipo tracker (.mod, .it. xm, etc) que según la documentación de bennu se pueden usar. Después de hacer varias pruebas me he percatado de que, en ninguna canción, se escuchan todas las notas musicales, solo algunas.

Así que me he puesto a hacer pruebas y he identificado que sólo se están reproduciendo los canales 1 y 2 de cualquier canción de tipo tracker, el resto por algún motivo que desconozco no se escuchan.

He intentado averiguar si tiene que ver con la función SET_CHANNEL_VOLUME y establecer el volumen para todos los posibles canales, pero como la documentación no especifica nada, tampoco he resuelto el problema por aquí.

[]¿Alguien me puede decir qué está pasando?[/b]

Gracias de antemano

panreyes

Nunca me ha pasado esto. Siempre he tenido la sensación de que la mezcla era peor que con Modplug Tracker, pero nada más allá de eso.
¿Tienes algún módulo para comprobarlo?

KeiDash

Quote from: panreyes on June 16, 2018, 04:01:04 PM
Nunca me ha pasado esto. Siempre he tenido la sensación de que la mezcla era peor que con Modplug Tracker, pero nada más allá de eso.
¿Tienes algún módulo para comprobarlo?

Si claro, tengo muchos pero te dejo estos dos que se nota claramente. Tienes este y este.

Gracias por tu interés

panreyes

Lo he probado con Bennu, Fénix, PixTudio y OpenMPT y me suenan todos los canales. La única diferencia es que en OpenMPT se hace mejor mezcla y con algo de eco por defecto.

Creo que será alguna configuración en tu equipo, posiblemente que tengas configurado en Windows 4 altavoces o algo así.

KeiDash

Pues no entiendo, en OpenMPT se me escucha perfectamente, es en Bennu donde no. Cómo lo has cargado en bennugd? Quizás tenga yo algo diferente.

panreyes


KeiDash

Quote from: panreyes on June 17, 2018, 04:35:27 PM
play_song(load_song("test.mod"),1);

Pero no has hecho ninguna configuración previa de audio o algo? Simplemente eso y ya está? Es que me resulta extraño que OpenMPT o el reproductor de audio que tengo instalado los ejecute perfecto y Bennu sea el único que no

panreyes

Tal cual, ya te digo que me suena sin problema.

KeiDash

Vale pues ya se cuál es el problema, lo que no se es porqué se genera.

Cuando cargas más de una canción de tipo tracker en memoria, no se escucha bien ninguna canción, pero, si solo cargas una si escucha correctamente...

Con este ejemplo se escuchan las dos canciones mal:


Process Main()
int sid1 = 0;
int sid2 = 0;
Begin


sid1 = LOAD_SONG("files/audio/test1.it");
sid2 = LOAD_SONG("files/audio/test2.xm");

PLAY_SONG(sid1);

repeat
frame;
until(key(_A))

PLAY_SONG(sid2);

Loop
frame;
End

End


Con este ejemplo se escucha perfectamente la canción:


Process Main()
int sid1 = 0;
Begin


sid1 = LOAD_SONG("files/audio/test1.it");

PLAY_SONG(sid1);

Loop
frame;
End

End


¿panreyes, podrías probarlo así a ver si a ti te pasa lo mismo?

Gracias,

panreyes

Con tus archivos y con este código, me funciona sin problema.

include "..\..\common-src\fenix.h";

Begin
y=load_song("test.mod");
from x=1 to 10;
load_song("test.it");
end
play_song(y,1);
while(!key(_esc)) frame; end
End

FreeYourMind

Donde lo estais probando ? Yo tuve problemas con alguns mods en xbox creo recordar

KeiDash

#11
ACTUALIZACIÓN:
Acabo de darme cuenta de otra cosa, y es que dependiendo del la cantidad de ficheros que cargues, se escuchan bien unos y otros no. Si selecciono 2 o más ficheros de 1Mb aproximado, o uno de 1Mb y otro de 32kb por ejemplo, empieza a darme fallo, pero si elijo dos o más temas de poco tamaño (entre 13 o 30kb), no me da problema, así que tiene que ver algo con el tamaño del fchero. Otra cosa es que si cargo por ejemplo, 3 ficheros de poco tamaño nada más emepzar el Main() y los reproduzco, se escuchan bien, pero, si cargo todos los procesos del juego y reproduzco las canciones posteriormente en otros procesos, empieza el mismo fallo ¿Hay limitación de tamaño en la SPU?

Quote from: panreyes on June 17, 2018, 09:45:26 PM
Con tus archivos y con este código, me funciona sin problema.

include "..\..\common-src\fenix.h";

Begin
y=load_song("test.mod");
from x=1 to 10;
load_song("test.it");
end
play_song(y,1);
while(!key(_esc)) frame; end
End


Bueno tu código es diferente en cuanto a lo que comento, ahí solo estás reproduciendo una canción, la primera, que es la que se escucha bien. Prueba a reproducir la segunda cargada. De todas maneras, yo implementando tu código, me sigue dando el mismo problema, así que algo raro pasa y mi código es el que copie y pegué aquí, no hay nada más.


include "..\..\common-src\fenix.h";

Begin
y=load_song("test.mod");
from x=1 to 10;
s2 = load_song("test.it");
end
play_song(y,1);
while(!key(_esc)) frame; end

        play_song(s2,1);
End


Quote from: FreeYourMind on June 18, 2018, 06:54:16 AM
Donde lo estais probando ? Yo tuve problemas con alguns mods en xbox creo recordar

Pues lo estoy probando en PC y en Dreamcast y en los dos casos me falla.

Drumpi

O yo me he quedado desfasado o Bennu NUNCA ha podido cargar más de una canción a la vez.

Es más, el problema de las canciones es que, precisamente las modulares, reservan tantos canales de audio como canales tiene la canción. A eso se le suman dos problemas: las canciones tienen un comportamiento diferente a los sonidos y no se cargan en memoria, sino que se van leyendo a medida que se reproducen (con un pequeño buffer, claro), y que el número de canales está limitado, no recuerdo si a 16, 32 o dependía de la tarjeta de sonido.

Sí que es posible reproducir más de una canción usando load_wav o cualquier otra función de carga de sonidos, y esas sí que las guarda por entero en memoria, pero tenemos el problema de los canales.
Aparte, que no tenemos control de los canales que se usan. Se creó una función de reserva de canales, pero no recuerdo si fue para songs o para sounds, pero fue interesante porque con un poco de experimentación se podrían bajar el volumen de los canales de los mod que quisiéramos.

Si la calidad no es buena, seguramente habeis dejado la calidad de sonido por la de defecto, que creo que era 22050, en lugar de los 44100 que se pueden setear. Y yo he reproducido IT en la GP2X con muy buena calidad, pero con un problema de rendimiento bestial. Allí me di cuenta que las song no consumían apenas memoria, porque gracias a ellas, podía cargar animaciones de más de 15MB de espacio en los apenas 30MB de la negrita.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)