PDA

Ver la versión completa : Programar con Visual Studio



(_=*ZaXeR*=_)
06/05/2004, 23:41
Hola:

Bueno resulta que tengo una duda encuanto a la programacion para la GP32 en este entorno, tenia entendido que se podia programar sin problemas para la GP32, pero que la unica limitacion existente era que el audio no se escuchaba, cosa que los que programan con otras herramientas tambien tenian como problema puesto que tenian que probar su codigo en el geepee.

Pues bien hoy se me ha ocurrido probar las funciones del SDK solo para ver que tal iban, por curiosidad, y mira por donde resulta que la GP32 virtual que se usa al programar en el Visual C++ si reproduce el audio PCM.

Entonces mi duda es, porque se ha dicho que no se puede escuchar el audio si se usa este entorno cuando no es cierto, se estan refiriendo a otro formato de audio?

Un saludo

saharoo
07/05/2004, 07:35
Donde has escuchado eso? Yo tenía entendido lo contrario; que era la mejor forma de probar el sonido sin utilizar la GP32. Yo únicamente no utilizo el Visual Studio porque es de Microsoft...

:p

mortimor
07/05/2004, 08:24
Joer Zaxer, no se quien te lo habra dicho, pero lo del sonido se escucha bien (bueno, con el petardeo tipico del SDK).

enkonsierto
07/05/2004, 08:51
Donde no se escuchará el sonido será en el geepee :D :D :D :D :D

(_=*ZaXeR*=_)
08/05/2004, 01:23
Pos la verdad es que no recuerdo donde lo lei, pero bueno era una pagina en ingles, asi que quizas lo confundi, no he probado ni una vez las funciones de audio por este motivo, y a ahora me encuentro que he hecho el gamba, lo que si es cierto es que el audio pasado a .h ocupa un huevo, conoceis alguna forma de que ocupen menos? o de que se vaya leyedo de la SMC progresivamente llenando un buffer y despues reproduciendolo? es porque se me quedan los fxe de unos 7Mb asi por las buenas, y si ademas me paso de 8 ya no se que podria pasar, supongo que se jode ra todo.

Ayudaaaa!!!
PD:el petardeo lo he conseguido reducir, pero solo en parte, de todas formas sigue siendo una put adilla.

LTK666
08/05/2004, 01:26
Originalmente anunciado por mortimor
(bueno, con el petardeo tipico del SDK.

El petardeo es lo peor :mad:

(_=*ZaXeR*=_)
08/05/2004, 01:29
Conoces alguna forma para que ocupen poco los archivos de audio? o algun metodo de lectura desde la SMC para una reproduccion progresiva a medida que se lleva un buffer? algun sistema que me permita almacenar el Audio de forma externa al FXE para que no me ocupe un huevo.

(_=*ZaXeR*=_)
11/05/2004, 23:45
Alguien me ayuda? porque no me creo que nadie sepa como se hace esto.

enkonsierto
12/05/2004, 09:00
No puedes usar mod xm s3m par las musicas?

Prueba tambien con wav comprimidos a 8 bits 22khz mono, a ver si así...

mortimor
12/05/2004, 09:20
El petardeo se soluciona cambiando la libreria de sonido, usa una de las que vienen con el GCC al compilar para GP32 (no lo he probado con el seudo emulador ese), que no petardea.

Para el sonido lo que se suele usar es un anillo que carga la musica progresivamente de la SMC. Es un tema de listas enlazadas, tu haces un par de funciones CargarEnLista() y ReproducirDeLista() por ejemplo.

Calculas el tamaño de buffer en funcion del tiempo que quieras reproducir en cada ventana (trozo cargado en la lista), ten en cuenta que si el tamaño es grande el retardo de la SMC puede hacer que la funcion CargarEnLista() no te devolverá el control a tiempo y acabaras encontrandote con una lista vacia que no podra reproducirse.

Como sabes cuanto dura cada trozo (la musica en si misma, en funcion del muestreo y demas) tienes que tener en cuenta el tiempo que tarda tu codigo en cargar los nuevos trozos y reproducirlos, ademas del resto de cosas que hagas en el programa. Cuando leas que ya se ha reproducido el trozo, cargas el siguiente. Esto no se como se hace en la GP, yo no lo he hecho, pero sera cuestion de leer un registro o una variable o con una funcion callback o sabe dios.

Creo que no sere de gran ayuda, supongo que ya sabrias esto, pero creo que alguien podra ser mas especifico y podra ponerte codigo. Yo no tengo tiempo ahora para experimentar y lo de utilizar sonido en la GP no es mi prioridad ahora.

(_=*ZaXeR*=_)
13/05/2004, 08:59
Pues la verdad es que tampoco sabia muy bien como enfocarlo, bueno tenia pensado algo como leer toda la musica que se fuera a usar en cada fase del juego desde la SMC, cargarlo en una lista, luego usar un puntero para encontrar el audio que queria reproducir copiarlo hasta el final en una estrucctura, pero esto haria que llenara la RAM con el audio y no me cabrian mas cosas.
De todas formas no tengo ni idea de como se haria esto con el SDK, ni esto ni lo que tu me dices, la verdad es que el mejor metodo seria usando SDL, pero entonces... bueno que paso basicamente, para mi la verdad es que tampoco tiene preferencia el audio, pero como la gente sin sonido no le ven chicha a los juegos.. pos que se lo queria meter.

Bueno muchas gracias por la ayuda, ab si alguien me puede poner algo de codigo, espero que wave se pase por aqui o alguien.

Enkonsierto, uso wav de 8 bits 11khz estereo, porque el otros formatos no me los transforma el Gpconverter.

PD: Por si alguien me puede solucionar el problema, tambien me gustaria saber como reproduzco el midi, porque las funciones estan en el SDK, pero no se de que forma pasarselo al programa.

Aiken
19/05/2004, 01:43
Hola

pues ya le gustaria al sdk reproducir midi.
pusieron las funciones pero segun rumores no estan implementadas por debajo.

creo que fue chui hace mucho tiempo saco un reproductor de midi para la gp32, para midis pequeños que usen un juego de samples pequeño ... pero era un fxe vamos que creo que no habia codigo ....

en cuanto a la musica el archivo .h te ocupa 7Mb, pero en memoria ocupa menos, ten encuenta que en el archivo es un array con valores escrito en hexadecimal ...

ABRE EL ARCHIVO .h de la musica, mira el array que te habra creado ... pues el tamaño de ese array (lo pone entre corchetes) sera lo que ocupe tu musica en memoria.

como ejemplo yo tengo un .h de 3Mb que son 400K en memoria, woh !!! no esta mal verdad, aun asi la mala noticia es que creo recordar que la musica duraba 10-15seg y se repetia. :( :(

Vamos que meter la musica con .h no es la mejor idea.
Habria que mirar ficheros externos ... de estos que general la aplicacion de conversion del sdk, creo que son .gpg y .gps o algo asi.

YO VOY A INTENTAR, grabarlos en raw, es decir los contenidos del array de la musica, lo grabo a un archivo en binario, y luego lo comprimo con zip (vereis que se comprime mucho), luego solo queda cargarlo con la libreria zlib que es muy facil, y de nuevo al array.

Aun asi las canciones wav en memoria seguiran ocupando un huevo ...

Aiken

Aiken
19/05/2004, 01:52
NECESITAMOS UNA LIBRERIA QUE REPRODUZCA AUDIO COMPRIMIDO

ME REFIERO A UNA LIBRERIA QUE TENGA EL AUDIO EN MEMORIA COMPRIMIDO Y LO VAYA DESCOMPRIMIENTO SEGUN LO VA REPRODUCCIENDO, o similar.

COMPRESION MP3 YO CREO QUE SERIA DEMASIADO, PUES DESCOMPRIMIR MP3 DEBE CHUPAR BASTANTE y nos dejaria sin recursos para lo demas ... pero algun algoritmo de compresion de audio mas sencillo ... eso si en streaming ... desde memoria o desde la smc.

porque la scene no hay libreria mp3 para poder usarla en nuestros programitas ??? existir existe pues hay un par de reproductores de mp3 free por ahi ... pero parece que los programadores no sueltan la libreria ... o si?? y no me he enterado ??

Aiken

mortimor
19/05/2004, 08:39
Pues yo creo que un mp3 a 32 kbps o 64 como mucho podria servir, podria ejecutarse el sonido con 33Mhz (quizas algo mas). Pero si ponemos la GP a 133 podremos hacer cosas interesantes y poner sonido de relativa calidad.

Tenemos que hacer pruebas. Chui deberia de implementar el mp3 en el SDL de GP32 :p

Wave
19/05/2004, 09:12
Yo es que de sonido poco se....

(_=*ZaXeR*=_)
20/05/2004, 08:20
Aiken lo del sonido te ocupa poco puede ser porque como dices se repite, pero si es entero todo distinto sin repeticion, supongo que si ocupara un huevo no? bueno no tengo ni idea, yo lo que se es que cuando compilo se tira en el linkeado un huevo. De todas formas da igual me parece que me dejare de audio, aunque por lo menos si me podeis poner un trozo de codigo para leer un archivo de musica desde la smc lo guarde en una lista y que se ponga a reproducirlo molaria.

Un saludo