Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Alfonsos1 en Marzo 10, 2010, 05:42:38 PM

Título: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Alfonsos1 en Marzo 10, 2010, 05:42:38 PM
 :GM7: :GM8:

hice un "juego" que consistia en un sonido, un objeto, y un room

el objeto tiene en el evento evento step:

if(keyboard_check_pressed(vk_space)) sound_play(sound0);

pero el GM tarda unas desimas de segundo en ejecutar el sonido y quisiera seber si es posible evitar ese retraso.

estoy seguro de que es un retazo y no es el sonido, porque si lo reprodusco con reproductor de windows media, despues de hacer click en el boton play, cuando suelto el click, el sonido suena inmediatamente.

Les adjunto el sonido si quieren probar
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: soccer2008 en Marzo 10, 2010, 07:04:10 PM
Probando sonido  XD XD XD



Prueba ese c?digo en el evento draw, a mi me funciona bien :P :-[

me olvidaba el c?digo es este:

if(keyboard_check_direct(vk_space)){ sound_play(sound0);}
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: kakashigna en Marzo 10, 2010, 10:20:47 PM
prueba usando keyboard_check
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Hackware en Marzo 11, 2010, 03:51:46 AM
Yo creo que el retraso se debe a la capacidad de tu compu y varia dependiendo de cada m?quina. Para prevenir esta falla lo mejor es usar una DLL que mantenga los sonidos en la memoria para que se reproduzcan inmediatamente.

P.D. Mientras se reproduzca el c?digo que utilices es indiferente.
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Alfonsos1 en Marzo 12, 2010, 12:17:59 AM
@soccer2008

CitarPrueba ese c?digo en el evento draw, a mi me funciona bien

la diferencia entre un evento y otro es a lo sumo de 1 step, con un room_speed de 60 solo cambiaria una 1/60 de segundo.

@kakashigna

lo intente, pero es lo mismo, cuando mucho la diferencia es de un step (1/60 de segundo)

@Hackware

eso podria ser

SI ALGUIEN CONOCE ALGUNA DLL PARA MANTENER LOS SONIDOS EN LA MEMORIA QUE ME LO INFORME PORFABOR
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: soccer2008 en Marzo 12, 2010, 12:28:49 AM
y haz aprobado con este codigo?

if(keyboard_check_direct(vk_space)){ sound_play(sound0);}

screen_refresh();


latima q no tengo el gm a la mano  XD XD XD
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Alfonsos1 en Marzo 12, 2010, 12:33:43 AM
tampoco soccer2008...

repito:
SI ALGUIEN CONOCE ALGUNA DLL PARA MANTENER LOS SONIDOS EN LA MEMORIA QUE ME LO INFORME PORFABOR
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: soccer2008 en Marzo 12, 2010, 12:38:12 AM
Haz aprobado con las dll de audio q hay en la secci?n de descarga?????
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: kakashigna en Marzo 12, 2010, 03:23:18 AM
segun yo lo veo siempre va a haber un retraso de por lo menos un step ya que el GM primero cheque las sentencias if y luego las ejecuta por lo cual el sonido vendria ejecutandose un 1 step despues

eso es lo que yo creo corriganme si me equivoco
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: soccer2008 en Marzo 12, 2010, 05:26:33 AM
Aqui te dejo un ejemplo, no us? dll  XD XD XD


sino te funciona es posiblemente q la canci?n tenga un espacio sin sonido al inicio de la misma:-[

http://rapidshare.com/files/362227796/ejem_retard_sonid.gmd.html (http://rapidshare.com/files/362227796/ejem_retard_sonid.gmd.html)
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Killer en Marzo 12, 2010, 06:19:24 AM
El retraso se debe, como menciona Hackware, a que el GM debe pasar todo el sonido a memoria y no puede reproducirlo hasta que dicho procedimiento esta completo, no tiene nada que ver con el evento que se utilice.

Si bien pienso que una DLL siempre es favorable, siempre puedes usar estas dos funciones:

sound_discard(index) Libera la memoria de audio utilizada por el sonido indicado.
sound_restore(index) Restaura el sonido indicado en la memoria de audio para reproduccion inmediata.


En el caso de DLL, hay varias por ah?, Sin Bass, Fmod, XE Audiere, todo es cuestion de buscar.
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Alfonsos1 en Marzo 12, 2010, 05:18:05 PM
@kakashigna

el problema no es que se reprodusca en un step, o el que sigue, ya que un step dura em mi caso 1/60 de segundo.

@Killer

prove con dos sonidos sound0 y sound1 (ambos son el mismo wav que subi), en el evento create puse:

sound_restore(sound0);

luego puse para que cuando se presionen "H" o "J" se reprodusca sound0 o sound1 respectivamente.

pero no hay diferencia, lo estoy haciendo bien?, hay alguna manera de checar si el sonido esta realmente en memoria?

@soccer2008

si no hisiste el ejemplo para el wav que subi, supongo que es porque no pudiste solucionar el problema con el wav que sub?, o porque relmente no percives el peque?o retraso que tiene en GM

Y EN CUANTO A LAS DLL DEL LISTADO LE? SUS DESCRIPCIONES EN EL POST, PERO NO ENCONTRE QUE DIGA TEXTUALMENTE: "SUBE LOS SONIDOS A LA MEMORIA", POR LO QUE NO ESTOY SEGURO SI ALGUNA Y CUAL DE LAS 3 DLL QUE HAY EN EL LISTADO ME SERVIRIA.

-----------------------

si alguien no percive el retraso que menciono en el titulo del post, lo que quiero es que el sonido suene practicamente al mismo tiempo en que suena la tecla cuando le doy un dedaso  XD .
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Twister en Marzo 12, 2010, 05:46:29 PM
usa la DLL SAudio, es la que uso yo para reproducir m?sica y funciona muy bien.
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: soccer2008 en Marzo 12, 2010, 05:48:39 PM
Mira x aqui si hay alguna dll buena: http://www.gmtoolbox.com/ (http://www.gmtoolbox.com/) - http://www.ismavatar.com/dll.php (http://www.ismavatar.com/dll.php)

Mientras tanto intento hacer un ejemplo con el wav q requieres XD XD XD


Aqui te dejo el ejemplo mejorado, a mi parecer no percibo ningun retardo.

http://www.mediafire.com/?ouilgrohyyz (http://www.mediafire.com/?ouilgrohyyz)
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Alfonsos1 en Marzo 12, 2010, 06:23:27 PM
me sale error, no conoce la funcion:

sound_get_loadonuse(sonido1);

parece mal escrita, pero me fije en el listado y no hat ninguna funcion parecida
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: soccer2008 en Marzo 12, 2010, 06:26:44 PM
mmmmm, ser? xq est? hecho el ejemplo en gm5 pero no tengo otra versi?n, s?lo quise ayudarte :( :( :(
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: soccer2008 en Marzo 12, 2010, 06:32:36 PM
Aqui te dejo la versi?n 2, le quite esa funci?n y est? mejorado  XD XD XD


http://www.mediafire.com/?zmm2kd3xgan (http://www.mediafire.com/?zmm2kd3xgan)
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Hackware en Marzo 12, 2010, 07:58:44 PM
Cita de: Killer en Marzo 12, 2010, 06:19:24 AMsound_discard(index) Libera la memoria de audio utilizada por el sonido indicado.
sound_restore(index) Restaura el sonido indicado en la memoria de audio para reproduccion inmediata.

?Estas funciones fueron inclu?das en el GM 8, verdad? No las conoc?a, yo solo trabajo con lo antig?ito. XD
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: soccer2008 en Marzo 12, 2010, 08:17:41 PM
Que yo sepa tbm se encuentran en el gm5 XD XD XD
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Alfonsos1 en Marzo 12, 2010, 08:24:37 PM
no soccer2008, no hay cambio

si cambias el evento a precionar en vez de mantener presionado, y cambias el espasio por una tacla mas peque?a como alguna letra, talves te des cuanta que el sonido tarda un poco en reprodusirce.

si oprimes muy seguido la tecla e intentas cordinar el "teclaso" con el sonido, luego de un rato si dejas de presionar escucharas que el sonido se reproduce una ves mas luego de haber parado.

estimo que el retrazo es de 0.1 o 0.2 segundos, por lo que cambiar la room_speed, o el evento en el que se ejecute el codigo que reproduce el sonido, es insignificante.

si tienes reproductor de windows media te daras cuanta de que no hay ningun retrazo (otro reproductor tambien podria serbir), como menciono al comienzo del post
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: soccer2008 en Marzo 12, 2010, 08:49:49 PM
eso se debe a q el sonido tiene m?s duraci?n q al presionar la tecla...deber?as entonces de probar con un sonido de menos duraci?n si presionas la tecla varias veces, no crees????, o mejo dicho, se tiene q esperar q el sonido termine para volver a reproducirlo, asi q prueba con un sonido m?s corto...
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Alfonsos1 en Marzo 12, 2010, 09:25:01 PM
aunque presiones una sola ves la tecla el sonido tendra el retraso

al reproducirlo rapido muchas veses es lo mismo, ya que no es nesesario que el sonido acabe para que vuelva a reproducirce
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: soccer2008 en Marzo 14, 2010, 05:27:36 PM
Aqui te dejo la versi?n 3, esta creo q si te va a servir  XD XD XD

http://www.megaupload.com/?d=EFGJYDZY (http://www.megaupload.com/?d=EFGJYDZY)
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Alfonsos1 en Marzo 14, 2010, 05:35:41 PM
CitarEl archivo al que est? intentando acceder est? temporalmente desactivado.
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: soccer2008 en Marzo 14, 2010, 06:00:17 PM
Voy a volver a subirlo, mil disculpas  :( :( :( :(

http://www.megaupload.com/?d=4GHLJE42 (http://www.megaupload.com/?d=4GHLJE42)
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Alfonsos1 en Marzo 14, 2010, 06:05:26 PM
lomismo, por que no lo adjuntas al post?
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: soccer2008 en Marzo 14, 2010, 06:09:07 PM
q raro  :( :( :(, yo si puedo descargarlo  :( :( :(, y como lo adjunto al post????
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Alfonsos1 en Marzo 14, 2010, 06:11:36 PM
en el mensaje ase click en el voton de opciones abanzadas, y pone adjuntar
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: soccer2008 en Marzo 14, 2010, 06:13:04 PM
Aqui est? el ejemplo adjuntado  ;)
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Alfonsos1 en Marzo 14, 2010, 06:20:01 PM
el retrazo sigue, igual 1000 gracias por la dedicacion  ;)
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Wadk en Marzo 14, 2010, 09:32:44 PM
Hice algunas pruebas y creo que el problema no se puede arreglar. No es el GM el que reproduce el sonido con un retraso, es la PC. No creo que haya nada que se pueda hacer. ?Por qu? es tan importante que el sonido se reproduzca tan r?pido?

Off topic:
Alfonsos1, sos uruguayo ?no? ?Vas a ir a ver a los Guns N' Roses? XD
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Alfonsos1 en Marzo 14, 2010, 10:46:17 PM
CitarHice algunas pruebas

intentaste como han mencionado, subir el sonido a la memoria, para que cada ves que se lo reprodusca no se tenga que volver a subir?

CitarNo es el GM el que reproduce el sonido con un retraso, es la PC

yo tengo reproductor de windows media y cuando "suelto el click" luego de haber hecho click en el boton play, el sonido suena inmediatamente.

Citar?Por qu? es tan importante que el sonido se reproduzca tan r?pido?

pensaba hacer un juego como guitar hero o frets on fire pero que realmente seas tu el que haga sonar la cancion, aunque no se escuche tan bien. Que no halla retraso es fundamental para las series de notas rapidas.

Citarsos uruguayo ?no?
Si

Citar?Vas a ir a ver a los Guns N' Roses?
no, la verdad es que no me gustan mucho...
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Killer en Marzo 14, 2010, 11:01:13 PM
Hice varias pruebas con las funciones que te deje, la verdad es que con sonidos grandes a?n hay cierto retraso, pero con un sonido tan ligero como el que pones a?n sin su ayuda se reproduce inmediatamente, as? que no se cual pueda ser el problema.

En todo caso, del GM siempre se ha sabido que se queda corto cuando se trata de sonido, por eso es que hay tantas DLLs para ello, por cierto, ?ya probaste alguna?, si Twister te recomendo la SAudio deberias considerar usarla.
Título: Re: el GM ejecuta un sonido con un tiempo de retrazo
Publicado por: Alfonsos1 en Marzo 14, 2010, 11:24:26 PM
WTF!  :o

la razon por la que no probaba dll era porque no estaba familiarizado con ellas, pero recien descargue la que me recomendo Twister y en el ejemplo el cual aun no entiendo nada, reproduce el sonido al instante y se escucha mejor!

como en la descripcion de la dll solo decia que podia reproducir como 30 formatos y que:
CitarPor ultimo incluye funciones para pausar la pista,obtener la posicion y muchisimas cosas mas.

pense que no me serbiria...  :-[

en fin, problema solucionado y gracias a todos!!!