Dudas con Bennu para WIZ

Started by blostec, September 17, 2009, 07:09:28 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

FreeYourMind

Muchas gracias Bomber, fijate que busque por el function-list.txt y no lo encontre  ::)

Me falta ver lo del get_sound, ya ni me recuerdo de sus parametros de entrada, lo mirare en la ayuda de DIV a ver si me refresca la memória.

FreeYourMind

Upppss... si incluso lo tenia montado en mi funcion de volumen genérica para Wiz....

Lo bueno es que desconocia lo del parametro -1, fijate que estaba disminuyendo/aumentando el sonido con esto de forma genérica, como no provoca error si el canal no existe lo hacia de esta forma chapuzerá para modificar el volumen general:

set_channel_volume(0, vol);
set_channel_volume(2, vol);          
set_channel_volume(3, vol);
set_channel_volume(4, vol);
set_channel_volume(5, vol);
set_channel_volume(6, vol);
set_channel_volume(7, vol);
set_channel_volume(8, vol);
set_channel_volume(9, vol);


Ahora lo que tendre que hacer es ver el rango de volumen para div y bennu, si no son iguales tendre que calcular el valor equivalente en Bennu para un volumen similar....

FreeYourMind

Buenas.

Me gustaria saber como cambiar la frequencia de un sonido con Bennu, se encuentra entre estas funciones ??:

INT SET_PANNING(INTEGER, INTEGER, INTEGER)
INT SET_POSITION(INTEGER, INTEGER, INTEGER)
INT SET_DISTANCE(INTEGER, INTEGER)
INT REVERSE_STEREO(INTEGER, INTEGER)


Por ejemplo en DIV es com:

sound(<código del sonido>, <volumen>, <frecuencia>)

frequencia = 256: velocidad normal
frequencia < 256: más grave
frequencia > 256: más agudo

Grácias.


Drumpi

Pues no, no se puede desde DIV2. Es una de las funciones que nunca se implementaron en Fenix/Bennu.
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)

FreeYourMind

Joer, tendre que modificar los ficheros audio directamente ;)
Y que hace la SET_PANNING(INTEGER, INTEGER, INTEGER) ??

Drumpi

Creo que modifica el volumen de los canales L y R para que suene más hacia la derecha o a la izquierda.
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)

FreeYourMind

Quote from: FreeYourMind on October 31, 2009, 10:30:18 AM
Buenas.

Me gustaria saber como cambiar la frequencia de un sonido con Bennu, se encuentra entre estas funciones ??:

INT SET_PANNING(INTEGER, INTEGER, INTEGER)
INT SET_POSITION(INTEGER, INTEGER, INTEGER)
INT SET_DISTANCE(INTEGER, INTEGER)
INT REVERSE_STEREO(INTEGER, INTEGER)


Por ejemplo en DIV es com:

sound(<código del sonido>, <volumen>, <frecuencia>)

frequencia = 256: velocidad normal
frequencia < 256: más grave
frequencia > 256: más agudo

Grácias.




Vuelvo a desenterrar el tema.

Splinter necesitaria cambiar la frequencia de un sonido por codigo, algun dia lo tendremos implementado ? (O mas bien lo deseo ya xD)

FreeYourMind

Veo que Bennu la utiliza como Global:

Mix_OpenAudio(int frequency, Uint16 format, int channels, int chunksize); // SDL
               
// Global de 'mod_sound'
sound_freq = 22050;

Lo ideal era que se pudiera definir de forma independiente para cada sonido...

SplinterGU

Quote from: FreeYourMind on March 23, 2011, 03:23:18 PM
Veo que Bennu la utiliza como Global:

Mix_OpenAudio(int frequency, Uint16 format, int channels, int chunksize); // SDL
               
// Global de 'mod_sound'
sound_freq = 22050;

Lo ideal era que se pudiera definir de forma independiente para cada sonido...

deciselo a Mr. SDL_Mixer...

aunque estoy pensando en cambiar de libreria de audio.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Lo ideal es que pongas alguna mas de forma oficial y que la gente pueda incluso hacer el switch

SplinterGU

switch de que?

si cambio algo, sera internamente, no puedo meter una lib a nivel bennugd con un api diferente... asi que a la gente no le tiene porque importar que se usa internamente.

se pueden agregar nuevas funciones, pero no romper compatibilidad.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

¿Es muy difícil acceder al buffer de audio en C y ponerlo a reproducir? nunca he trabajado con sonido en C y para estas cosas siempre he visto que se usan librerías.
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)

SplinterGU

C no tiene funciones de sonido, no hay una solucion generica para lo que preguntas, depende de la lib de sonido que uses o de la tarjeta de sonido, device o lo que sea, si quieres hacer algo mas directo.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

¿Entonces es cierto? ¿mikmod se apoya sobre SDL_mixer?
Es sólo por curiosidad, por saber las posibilidades que existen para generar audio en tiempo real. Ya sabes que tengo en una parte de la lista el tema de efectos de audio, por si alguna década lo puedo sacar :D
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)

SplinterGU

creo que es al reves, sdl_mixer, puede usar mikmod, pero la verdad que no estoy seguro... puede que este diciendo cualquier barbaridad.

creo que en SDL hay algunas funciones que permiten hacer algo de eso, o sea, manipular el buffer del audio antes de tocarlo.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2