Bennu Game Development

Foros en Español => Extensiones => Topic started by: josebita on September 15, 2009, 05:14:28 PM

Title: FMOD Ex
Post by: josebita on September 15, 2009, 05:14:28 PM
Binding extremadamente simple para FMOD Ex:

Linux: http://www.bennugd.org/descargas/bennugd-module-fmodex_0.1_i386.deb
Source: http://www.bennugd.org/descargas/bennugd-module-fmodex_0.1.tar.gz
Title: Re: FMOD Ex
Post by: osk on September 15, 2009, 06:43:01 PM
Oh, guay!!
Unas preguntas...si no te importa...

¿No habías hecho una librería para usar Gstreamer -al menos la parte de audio-? ¿La has desechado?
¿Sería posible retirar la dependencia de SDL_Mixer y añadir la de FMODEx para Bennu, si se viera que esta última librería es mucho mejor?
¿Has visto los tipos de licencia que tiene FMOD?...porque yo no me termino de aclarar. Lo que es seguro que GPL no es.

Venga, gracias!!
Title: Re: FMOD Ex
Post by: josebita on September 15, 2009, 10:36:42 PM
La verdad es que GStreamer está muy bien, pero se me complica hacer algunas cosas muy simples y se estaba convirtiendo en algo demasiado complicado de portar a windows (ando intentando echar a andar el karaoke en windows y quizás es que no entiendo bien los tutoriales o soy un poco torpe, pero en comparación ayer escribí el mini-binding en cerca de 2 horas, basándome en un ejemplo que proporcionan y sin conocer el nuevo API de FMOD 4). Sinceramente lo que me hace falta es el sistema de audio de Bennu pero que pueda reproducir MP3, porque no puedo controlar el formato en el que el usuario se descarga las canciones del karaoke. Además, de momento no tengo intención de mejorar el soporte de vídeos para el karaoke.

La librería es tremendamente sencilla de portar a windows (de hecho, la escribí en un windows 2008) y para hacer el tipo de cosas que me hacen falta para el karaoke me viene mucho mejor.

Además, ya conocía FMOD (hace muuuuchos años hice otro binding para FMOD 3 para Fenix) y sé que funciona muy bien.

Y no, yo no reemplazaría -en general- el sistema de audio de Bennu por éste. En un proyecto "normal" el programador puede convertir las músicas a OGG si hace falta y en ese caso el sistema de audio actual basado en SDL_mixer me parece cojonudo.

Y en cuanto a las licencias: si el proyecto es gratuito y sin ánimo de lucro te permiten usar FMOD Ex -que es comercial a más no poder- de forma gratuita. Para un proyecto comercial o incluso shareware te cobran.
Title: Re: FMOD Ex
Post by: josebita on January 10, 2010, 10:13:36 PM
Bueno, me he puesto a trabajar en esto por programar un poquillo algo que no sea el port a la Wii.

Ahora puede reproducir más de una canción a la vez (INSERTAR INSULTO Y/O MOFA AQUÍ) y puede sacar las etiquetas de los archivos de audio (tipo autor, estilo... lo que haya).
Además, me he puesto a trabajar en el soporte para micrófonos (¡karaoke (http://forum.bennugd.org/index.php?topic=663.0)!) y he visto que es muy fácil de hacer que detecte los tonos de los micros (incluso de más de uno, pa lo que de la CPU).
Aún así, me queda ver cómo hacerlo de forma que se acople bien a Bennu.

También he limpiado y simplificado el número de funciones y su uso.

Aviso por ir poniendo los dientes largos. Cuando lo tenga funcionando os lo dejo por aquí :)
[code language="bash"]Mic section=========================================================
Number of microphones: 1
Mic 0: Linux EsounD Driver
Sound playback section==============================================
Playing on channel 31
[/code]
Title: Re: FMOD Ex
Post by: josebita on September 17, 2010, 11:33:56 PM
Bueno, el soporte para leer la entrada del micro y sacar el espectro (FFT) ya está listo. El API aún no es definitivo, pero por si a alguien le interesa echarle un ojo, la tengo funcionando en Linux, MacOS X y -aunque aún no la he compilado- windows. ¿Alguien quiere echarle un ojo?.

(http://forum.bennugd.org/index.php?action=dlattach;topic=770.0;attach=1486)

PD: Las barras que se ven abajo a la izqda. de la ventana de BennuGD son las barras del espectro de mi voz; como estaba hablando bajito, son pequeñajas. Y como estaba hablando grave (frecuencias bajas), están a la izqda.
Title: Re: FMOD Ex
Post by: FreeYourMind on September 17, 2010, 11:41:38 PM
A la foto que has puesto ya se lo he echado :) si quieres que eche el otro ojo a algo mas dimelo :)
Title: Re: FMOD Ex
Post by: josebita on September 17, 2010, 11:47:04 PM
Es más por si a alguien le resulta útil para algún juego. Lo he hecho para mi karaoke, y por tanto lo primero que le he hecho es que lea la FFT del micro, pero es muy fácil y pronto le haré que pueda sacar la FFT de la música que se está reproduciendo.

Se me ocurre que, por ejemplo, se podría hacer un escenario en plan discoteca, donde las luces se vayan iluminando con la música, o cosas así.

PD: Pero vamos, que si te es útil, dímelo y la subo (win?, linux?) mañana :)
Title: Re: FMOD Ex
Post by: FreeYourMind on September 17, 2010, 11:52:07 PM
Sabes que llevo esperando la version Windows de tu karaoke hace años, o una que funcione en mi linux Mint...
Como me molaria ponerle una musica de baile portuguesa ;)

A ver si pones la prueba esta que estas haciendo para probar.
Title: Re: FMOD Ex
Post by: josebita on September 17, 2010, 11:59:16 PM
Mañana subo los binarios del programilla de ejemplo compilados en Ubuntu, así que casi seguro que funcionarán en Mint.

Y en cuanto al karaoke, el martes acabo mis exámenes, así que le meetré un repaso e intentaré sacar versiones binarias (win/linux/osx) durante septiembre/octubre, con soporte para detección de tonos de voz.
Title: Re: FMOD Ex
Post by: SplinterGU on September 18, 2010, 12:06:22 AM
karma1
Title: Re: FMOD Ex
Post by: FreeYourMind on September 18, 2010, 12:12:17 AM
Ok, entonces mañana desenpolvoro mi portatil linuxero, que tengo que probar tambien los beeps de Splinter.
Title: Re: FMOD Ex
Post by: Drumpi on September 18, 2010, 04:40:55 PM
Mola, la de cosas que se pueden hacer sacando el espectro de la voz... empezando por el reconocimiento de palabras.
¿Qué librería has usado para ello? ¿o te has currado tu la FFT en C?

k++
Title: Re: FMOD Ex
Post by: josebita on September 18, 2010, 05:44:09 PM
La gracia está en que sólo estoy usando FMOD Ex, que es la que se encarga de todo. Si alguien mira el código C de la librería, verá que es tremendamente simple para lo que hace. Ojalá hubiera algo parecido en capacidad y simplicidad de uso a FMOD Ex que fuera libre... :(

En cuanto al ejemplo, intentaré ponerlo esta noche, pero igual tiene que ser mañana por la mañana.

Y en cuanto a las versiones del karaoke... la verdad es que lo abandoné durante algún tiempo. La FMOD Ex se colgaba durante unas buenas cuantas versiones al intentar reproducir un OGG y con otras librerías no tengo soporte para micro. Hace cosa de una semana volví a probar la última versión de la FMOD Ex y resulta que ya no casca; por eso he retomado el karaoke.
Title: Re: FMOD Ex
Post by: josebita on September 19, 2010, 09:11:53 AM
Versiones binarias:

MacOS X: http://www.megaupload.com/?d=WLZ8VRU3
Win32:     http://www.megaupload.com/?d=Z77XXY7U
Linux:      http://www.megaupload.com/?d=5QHIV7WF

Notas:
* Como ya digo, el API está sin terminar, así que algunas funciones/globales puede que cambien de nombre o forma de uso. Aún así, el cambio probablemente no será enorme. De todos modos, agradezco comentarios/sugerencias.

* MacOS X: Descomprimir en ruta sin espacios y doble click en el el programa .app resultante.
* Windows: Descomprimir y ejecutar main.exe.
* Linux: Descomprimir en ruta sin espacios y doble click en runme.sh.

* El paquete para MacOS X lo podeis usar de ejemplo de empaquetado de un juego BennuGD para MacOS X. Siempre y cuando no contenga espacios en el nombre, se comportará como una aplicación más del sistema.
* Las versiones para MacOS X y Windows incluyen la última versión binaria de BennuGD. La versión para Linux asume que está instalado en el sistema bien por el script oficial o por los paquetes de mi PPA.
Title: Re: FMOD Ex
Post by: Danielo515 on November 26, 2010, 12:39:08 PM
Está genial! No me he puesto con el código aún, solo he probado el ejecutable, pero para que veas aquí te pongo una comparación de cómo lo ve el windows media y cómo lo ve tu programa con una canción de Amon Amath.
(http://forum.bennugd.org/index.php?action=dlattach;topic=770.0;attach=1622)
Title: Re: FMOD Ex
Post by: josebita on November 26, 2010, 01:40:16 PM
Gracias :) Yo diría que el WMP y mi ejemplo pintan cosas distintas, al menos el rango que se pinta probablemente sea distinto.
Vamos, ya me cuentas qué tal funciona cuando lo vayas usando.
Title: Re: FMOD Ex
Post by: SplinterGU on November 26, 2010, 01:50:06 PM
Quote from: Danielo515 on November 26, 2010, 12:39:08 PM
Está genial! No me he puesto con el código aún, solo he probado el ejecutable, pero para que veas aquí te pongo una comparación de cómo lo ve el windows media y cómo lo ve tu programa con una canción de Amon Amath.
(http://forum.bennugd.org/index.php?action=dlattach;topic=770.0;attach=1622)


No entiendo mucho de sonido, pero me parece que no teiene por que mostrar lo mismo, ya que pueden estar representando distintos rangos del espectro y/o distintos zooms.

para mi, no tiene que verse igual.
Title: Re: FMOD Ex
Post by: Drumpi on November 27, 2010, 01:14:49 AM
Leí hace tiempo (creo que ya hace casi un año, cómo pasa el tiempo) que existe un fenómeno inexplicable por el que toda señal real convertida a su FFT genera unos picos a frecuencias muy bajas, y cuando digo inexplicable es que aun no han demostrado por qué se da este fenómeno.

También es sabido que las señales graves suenan más fuerte pero no llegan tan lejos como las agudas, de ahí la diferencia de tamaño entre el woofer y el twitter.

Sería una librería muy interesante para FrikiMusic 2, añadirle el micrófono de WIZ/CAANOO en plan minijuego... Decidme que funciona en WIZ, que admite algún formato modular, que se puede silenciar en cualquier momento el canal que se quiera, y que se puede reproducir cualquier sonido a la frecuencia que se quiera, y me pongo a trabajar hoy mismo.
Title: Re: FMOD Ex
Post by: Danielo515 on November 27, 2010, 11:47:10 AM
Quote from: SplinterGU on November 26, 2010, 01:50:06 PM

No entiendo mucho de sonido, pero me parece que no teiene por que mostrar lo mismo, ya que pueden estar representando distintos rangos del espectro y/o distintos zooms.

para mi, no tiene que verse igual.

Ya me di cuenta yo de que no es igual, solo lo puse para demostrar que la he probado  ;D
Title: Re: FMOD Ex
Post by: josebita on November 27, 2010, 04:20:17 PM
Quote from: Drumpi on November 27, 2010, 01:14:49 AM
Leí hace tiempo (creo que ya hace casi un año, cómo pasa el tiempo) que existe un fenómeno inexplicable por el que toda señal real convertida a su FFT genera unos picos a frecuencias muy bajas, y cuando digo inexplicable es que aun no han demostrado por qué se da este fenómeno.

También es sabido que las señales graves suenan más fuerte pero no llegan tan lejos como las agudas, de ahí la diferencia de tamaño entre el woofer y el twitter.

En realidad es un poco al revés: la atenuación de las señales aumenta con la frecuencia, de forma que las señales más agudas (a pesar de ser señales más energéticas) "desaparecen" antes. Esa es la razón de que cuando te alejas de algún sitio con la música alta, sólo se oiga la base rítmica (el chunta-chunta, vamos).

Quote from: Drumpi on November 27, 2010, 01:14:49 AMSería una librería muy interesante para FrikiMusic 2, añadirle el micrófono de WIZ/CAANOO en plan minijuego... Decidme que funciona en WIZ, que admite algún formato modular, que se puede silenciar en cualquier momento el canal que se quiera, y que se puede reproducir cualquier sonido a la frecuencia que se quiera, y me pongo a trabajar hoy mismo.
He estado mirando por los foros de FMOD y he visto que no tienen soporte oficial para plataformas ARM porque la FMOD necesita que el procesador incluya una FPU (http://en.wikipedia.org/wiki/Floating-point_unit) y es común que muchos chips de la familia ARM no la tengan. Me imagino que según vaya popularizándose la plataforma, acabarán saliendo más procesadores con FPU y acabaran sacando versión. De momento no puede ser.

Y sí, veo que se puede cambiar la frecuencia de reproducción del sonido, intentaré añadirlo a la librería. Gracias por la idea :)
Title: Re: FMOD Ex
Post by: Drumpi on November 27, 2010, 05:49:30 PM
Quote from: josebita on November 27, 2010, 04:20:17 PM
En realidad es un poco al revés: la atenuación de las señales aumenta con la frecuencia, de forma que las señales más agudas (a pesar de ser señales más energéticas) "desaparecen" antes. Esa es la razón de que cuando te alejas de algún sitio con la música alta, sólo se oiga la base rítmica (el chunta-chunta, vamos).

Por lo visto ayer estaba sembrado: lo dije justo al revés ^^U

Quote from: josebita on November 27, 2010, 04:20:17 PMHe estado mirando por los foros de FMOD y he visto que no tienen soporte oficial para plataformas ARM porque la FMOD necesita que el procesador incluya una FPU (http://en.wikipedia.org/wiki/Floating-point_unit) y es común que muchos chips de la familia ARM no la tengan. Me imagino que según vaya popularizándose la plataforma, acabarán saliendo más procesadores con FPU y acabaran sacando versión. De momento no puede ser.

Y sí, veo que se puede cambiar la frecuencia de reproducción del sonido, intentaré añadirlo a la librería. Gracias por la idea :)

Mmm, vaya hombre. Supongo que el mayor problema es la FFT, que usa números reales. Es una lástima. Más que nada, me hubiera interesado lo de silenciar canales para no tener que usar varios WAVs cargados en memoria sonando a la vez.
De todas maneras, tengo que mirar cierta librería de FFT, creo que no usa FPU, que es compatible con ARM (oye, no tienen FPU, pero sí DSP, que es más potente para eso).
Title: Re: FMOD Ex
Post by: josebita on November 27, 2010, 06:40:53 PM
Hombre, me imagino que si la mod_sound diera acceso directo al buffer de sonido se podría apañar algo. No lo sé seguro pero yo diría que la SDL_Mixer da soporte para eso.
Luego habría que portar alguna librería que hiciera la FFT por tí o hacerla a mano, pero eso en ppio. no sería el mayor problema. Otra opción que miré es cAudio (http://caudio.deathtouchstudios.com/) que tiene muy buena pinta... No recuerdo por qué, pero al final opté por usar FMOD.
Title: Re:FMOD Ex
Post by: Erkosone on April 09, 2013, 05:24:49 AM
Hola, como anda esta librería Josebita? hay alguna novedad? conseguiste reproducir sonidos con frecuencia variable?
Tengo en mente un proyecto que aunque sencillo va a ser la delicia de todo aquél aficionado a los caraokes jeje.. es un vocoder y esto es justo lo que hace falta, acceso al FFT y poder reproducir sonidos en modo loop con variación de frecuencia y amplitud.
Title: Re:FMOD Ex
Post by: josebita on April 09, 2013, 12:32:06 PM
Quote from: Erkosone on April 09, 2013, 05:24:49 AM
Hola, como anda esta librería Josebita? hay alguna novedad? conseguiste reproducir sonidos con frecuencia variable?
Tengo en mente un proyecto que aunque sencillo va a ser la delicia de todo aquél aficionado a los caraokes jeje.. es un vocoder y esto es justo lo que hace falta, acceso al FFT y poder reproducir sonidos en modo loop con variación de frecuencia y amplitud.
Hola:

Pues la librería la tengo aparcada: la creé mientras jugaba con mi karaoke y me sirvió bien así que no la avancé más pero si la quieres para algo, puedo mapear alguna función más.
He estado revisando el API de FMOD Ex y lo de cambiar la frecuencia debería ser algo trivial. Si te interesa y me dices para qué sistemas la quieres, puedo añadir un par de funciones para eso y recompilar la librería.

Tienes una copia de la última versión del código aquí:
https://code.google.com/p/bennugd-monolithic/source/browse/#svn%2Fbranches%2Fmy_monolithic%2Fmodules%2Fmod_fmodex

Title: Re:FMOD Ex
Post by: Erkosone on April 09, 2013, 02:12:38 PM
Ostras Joseba pues me interesa mucho jeje, por que quiero hacer algo bastante innovador, ya no a nivel de BennuGD o similares si no a nivel global, mientras estaba trabajando se me encendió la bombilla y se me ocurrió una idea bastante buena creo.


Soy aficionado a la composición musical amateur y suelo usar todo tipo de VST y VSTi pero no he logrado encontrar un VST que haga lo que quiero programar, si te tomaras la molestia de recompilar la lib para windows solo con esto te lo agradecería de la única forma que puedo, colgando en la sección recursos el programa que quiero hacer ;)


En un lenguaje como C o C++ sería bastante complejo por que hace falta montar toda la estructura que tienen los lenguajes como bennu para el sonido así que en bennu con todo este trabajo ya hecho debería ser cosa de una tarde el tener listo el programa.




Lo que necesito exactamente es esto:
- Una función que me permita reproducir un sonido en modo LOOP.
- Una función que me permita manipular en tiempo real el volumen del channel por donde se reproduce el sonido. "amplitud".
- Una función que me permita manipular en tiempo real la velocidad de reproducción del sonido "pitch".
- Una función que me permita acceder al espectro de frecuencias del micrófono.


Si me la recompilas y todo funciona bien te aseguro que pasarás un buen rato usando el programa jeje.. si todo funciona como espero va a ser algo bastante interesante ;)
Title: Re:FMOD Ex
Post by: josebita on April 09, 2013, 03:38:24 PM
Ok, lo miraré.
No queda nada complicado en lo que pides, así que no debería ser mucho trabajo.
Title: Re:FMOD Ex
Post by: Erkosone on April 09, 2013, 07:54:42 PM
Muchisimas Gracias Joseba, creo que te molará el invento jeje..
Y así de paso te testeo a fondo la lib por que voy a usar muchos canales de audio ;)
Gracias de nuevo tio.
Title: Re:FMOD Ex
Post by: Erkosone on April 10, 2013, 05:14:39 AM
Dios.. que ganas de pillar esta librería Joseba.. no te haces a la idea jeje..
Title: Re:FMOD Ex
Post by: josebita on April 10, 2013, 10:15:48 AM
Quote from: Erkosone on April 10, 2013, 05:14:39 AM
Dios.. que ganas de pillar esta librería Joseba.. no te haces a la idea jeje..
:D En cuanto saque un rato me monto el entorno de compilación para Bennu en Windows y te la mando.
Title: Re:FMOD Ex
Post by: Erkosone on April 10, 2013, 12:37:35 PM
Estupendo!
Title: Re:FMOD Ex
Post by: JaViS on April 10, 2013, 12:47:58 PM
Publicala asi la bajamos todos :D
Title: Re:FMOD Ex
Post by: Erkosone on April 12, 2013, 06:53:02 PM
Haber si con suerte joseba tiene la lib este find e semana jeje.. no quiero meter demasiada presión hehe..
Title: Re:FMOD Ex
Post by: josebita on April 13, 2013, 10:21:29 PM
Estoy teniendo algunos problemas con el entorno de compilación pero el código ya está escrito. Avisaré en cuanto resuelva los problemas.
Title: Re:FMOD Ex
Post by: Erkosone on April 14, 2013, 05:20:25 AM
Gracias de antemano Joseba, te agradezco el esfuerzo.
Title: Re:FMOD Ex
Post by: josebita on April 15, 2013, 12:09:21 AM
Splinter, estoy tratanto de compilar el código fuente pero siempre obtengo un segmentation fault al hacer un bgdc al ejemplo.
He tratado de compilar contra una versión anterior del código (y de FMOD) y al compilar con BGDC obtengo siempre:
joseba@L2ZCVP4J:~/cvs/bennugd-module-fmodex-0.1$ bgdc main.prg
BGDC 1.0.0 (Feb 27 2013 01:20:40)
Bennu Game Development Compiler

Copyright (c) 2006-2012 SplinterGU (Fenix/BennuGD)
Copyright (c) 2002-2006 Fenix Team (Fenix)
Copyright (c) 1999-2002 Jos� Luis Cebri�n Pag�e (Fenix)

Error: two token_back in a row


¿Alguna idea?

[Edito] El código de la librería que me da ese error está aquí:
http://bennugd.org/downloads/bennugd-module-fmodex_0.1.tar.gz?q=descargas/bennugd-module-fmodex_0.1.tar.gz (http://bennugd.org/downloads/bennugd-module-fmodex_0.1.tar.gz?q=descargas/bennugd-module-fmodex_0.1.tar.gz)
pkg-config --cflags bennugd-core
-I/usr/include/bennugd
pkg-config --libs bennugd-core
-L/usr/lib/i386-linux-gnu/bennugd -lbgdrtm

El .tar.gz debería tener todo lo necesario para compilar directamente...
Title: Re:FMOD Ex
Post by: Drumpi on June 22, 2013, 11:21:57 AM
Hola de nuevo.
Me vais a permitir que reflote el hilo, pero como estaba pensando retomar mi Frikimusic, quería ver qué podía hacer con esta librería.
Josebita, sé que andas desaparecido, así que si te manifiestas ¿podrías decirme, a groso modo, qué pasó con la librería, qué se consiguió implementar o qué se podría hacer, y qué posibilidades hay de portarlo finalmente a Wiz y Caanoo?

Muchas gracias.
Title: Re:FMOD Ex
Post by: Erkosone on September 15, 2013, 05:10:08 PM
Hola Joseba, tienes pensado sacar un update para la fmod sobre aquello que hablamos del FFT y la velocidad de reproducción variable de los sonidos?


Lo comento por que estoy bastante avanzado en un proyecto que tengo abierto desde hace ya mucho tiempo sobre los vocoders y ahora que por fin tengo todo lo que necesito para poder llevarlo a cabo, sinceramente, me gustaría mucho poder hacer el vocoder nativo para uno de los lenguajes que mas uso, en este caso BennuGD.


Te animas a darle un empujoncito a la lib joseba?