Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problemas con ejemplos de "Beginning Game Audio Program

Iniciado por Anderson, 27 de Julio de 2008, 08:44:01 PM

« anterior - próximo »

Anderson

Hola a todos/as.

Estoy aprendiendo algo de progamación de audio y he estado siguiendo el libro "Beginning Game Audio Programming" de Mason McCuskey, pero me están dando problemas algunos de los ejemplos que vienen en el CD. Deseaba saber is alguien había utilizado este libro también y todo le ha ido bien, o tambien ha tenido algunas dificultades. Dichos ejemplos emplean DirectMusic para la reproducción de los audios, y he utilizado Visual Studio.NET 2003 para su compilación.

He llegado hasta el capítulo 6, y ha ido sucediendo lo siguiente:

-Al ejecutar los ejemplos Ch5p1_ConcurrentPlayback o Ch5p2_SoundInstances a veces el audio suena el número de veces establecido... pero otras veces suena una vez menos. Los audios se toman  de ficheros .WAV

-Al ejecutar el ejemplo Ch6p1_MIDIPlayback el tempo no se acelera mediante el uso del método SetGlobalParam del performance y especificando un scale factor mayor de 1. Aparte, se supone que aparecerían una serie de mensajes en pantalla en base a la recepción de mensajes del performance (llamando continuamente a la orden de "dispatching" de dichos mensajes en el bucle del juego o mediante un thread independiente) pero no ninguno de dichos métodos dichos mensajes en pantalla aparecen. El audio se toma de un fichero .MID

He probado dichos ejemplos en dos ordenadores:

-Un Pentium IV con Windows XP Prodessional Service Pack 2 y el DirectX SDK de febrero de 2006.

-Un portátil con Windows XP Home y el DirectX SDK Update Summer 2003.

Lo dicho: deseaba saber si alguien había estado también siguiendo dicho libro y también había tenido problemas y, de ser así, si se puede hacer algo, o si es que los ejemplos están mal o son mis ordenadores, porque digamos que, ahora mismo, no sé muy bien qué hacer. :?

Un saludo.

[EX3]

Para audio con Wavs on DirectX sin duda DirectSound. Ahi vas a tener mas control y segun recuerdo es algo mas sencillo para reproducir y controlar muestras de audio asi como efectos y audio 3D. Para musica te diria que en Windows tirases de DirectShow o alguna API de terceros como puede ser OpenAL o FMod, que tambien te serviran para el audio basico con archivos Wav y efectos.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Anderson

Cita de: "[EX3"]Para audio con Wavs on DirectX sin duda DirectSound. Ahi vas a tener mas control y segun recuerdo es algo mas sencillo para reproducir y controlar muestras de audio asi como efectos y audio 3D. Para musica te diria que en Windows tirases de DirectShow o alguna API de terceros como puede ser OpenAL o FMod, que tambien te serviran para el audio basico con archivos Wav y efectos.

Salu2...

Bueno, en última instancia lo que deseo lograr es implementar un cross-fading, llegué a hacer con DirectSound que, tecuando estuviera a punto a de terminar una canción, sonara la siguiente y luego se terminara la primera (habría cuatro o cinco segundos en los que se escucharían las dos a la vez), pero me fallaba el programa a la hora de implementar el efecto de cross-fading.

Estuve echando un vistazo al ejemplo de cross-fading de la versión del SDK de DirectX "Summer 2003", pero el ejemplo no me servía porque la canción que implementa el fade-out no "retrocede", como si siguiera reproduciéndose en silencio, y cuando le vuelves a dar para que se escuche no empieza por el principio, sino por donde estuviera en dicho momento.

Y en estas... pues llegó a mi poder este libro.  :wink: Lástima que algunos ejemplos no estén funcionando bien y no he logrado aún ver qué pasa, porque el libro está bien como introducción, pero es una puñeta. Por cierto, para más Inri aún, otra persona puso un comment en GameDev sobre otro problema relacionado con los ejemplos de este libro... y ese logré resolverlo  :lol: Este asunto me ha servido, también, como introducción a DirectShow.

http://www.gamedev.net/community/forums/topic.asp?topic_id=364943

Quisiera dejar cosas como FMOD u OpenAL como último recurso (quizás tiraría antes por Audiere), en cualquier caso gracias por la contestación y las recomendaciones. :)

[EX3]

Cita de: "Anderson"Bueno, en última instancia lo que deseo lograr es implementar un cross-fading, llegué a hacer con DirectSound que, tecuando estuviera a punto a de terminar una canción, sonara la siguiente y luego se terminara la primera (habría cuatro o cinco segundos en los que se escucharían las dos a la vez), pero me fallaba el programa a la hora de implementar el efecto de cross-fading.
Si no he entendido mal lo que quieres hacer, dos musicas, reproducir la segunda unos segundos antes de que acabe la primera mezclando final con inicio. Esto lo implemente yo en dx_lib32 con DirectShow sin muchos problemas. Tengo dos canales activos (dos objetos de control de reproduccion, dos objetos que contienen el audio y el resto de controles para volumen y algunas funcionalidades mas de DShow) donde puedo reproducir simultaneamente dos secuencias de musica distintas y simplemente controlo la posicion de reproduccion de la primera con su duracion maxima para lanzar la segunda n segundos antes de acabar. El tema que montarte toda la infrastructura con DirectShow puede ser un pelin coñazo pudiendo usar directamente apis como FMod o similares que te comente ya que te dan todo hecho para empezar a funcionar e incluso portar a otras plataformas.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Anderson

#4
 
Cita de: EX3El tema que montarte toda la infrastructura con DirectShow puede ser un pelin coñazo pudiendo usar directamente apis como FMod o similares que te comente ya que te dan todo hecho para empezar a funcionar e incluso portar a otras plataformas.

Hola, perdona por no contestar antes, pero me tuve que poner con otra cosa más prioritaria y este tema lo tuve que dejar de lado.  ^_^'

Eso es lo que deseo hacer: dos musicas, reproducir la segunda unos segundos antes de que acabe la primera mezclando final con inicio.

Bueno, el aprender a montar dicha infraestructura (empleando DirectShow, DirectMusic, DirectSound, o lo que sea, que ya no sé muy bién ni con qué lo voy a hacer) digamos que es parte de lo que quisiera aprender a hacer y ver, justo por ello decía lo de dejar FMod o similares como último recurso, o en todo caso coger una biblioteca como Audiere, que veo que es de código abierto.  :)

Tomo nota respecto de lo de DirectShow, veamos qué hago al final.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.