¿Este proyecto Homebrew sería viable?

Buenas Foreros:

Hace tiempo que sigo las andanzas de este foro, pero nunca me habia decidido a postear, asi que como es mi primer post, pues aprovecho para presentarme, Me llamo Pook Sombradanzarina (Esto, obviamente es mentira cochina... xD) y soy programador amateur desde hace casi 10 años (sin haber programado nada que merezca la pena ni/o de provecho, ya que me pasaba el tiepo soñando con hacer jueguecitos, que por falta de grafista/sonido/ganas, nunca acababa... xD), y "pofesioná" desde hace 1~3 (Tecnico Superior en Desarrollo de Aplicaciones Informáticas y de Gestión... forma rimbombante de decir "Pogramador"...) tengo conocimiento y/o experiencia en C, Delphi (Pascal), DIV2 (sí, ese de hacer jueguecitos que salió poco antes de que la empresa creadora quebrara... xD), HTML, PHP, SQL (MySQL y Oracle), y ahora quiero hacer mis pinitos en mi querida y flasheada DS ^^

La Cuestión "The Query" :

Mi novia, amigos, familiares y demás parafernalia que me rodea, estamos bastante enganchados a el maldito SingStar de PS2, pero siempre que jugamos surge la tipica sensación de... Me molaría cantar X canción, pero no está en ninguno de los "Cedeses"... y esto no es como el Guitar Hero II que tiene un hack con el que poder meter tus canciones.

Presa de este sentimiento me surgió una duda... ¿Sería viable un clonico de SingStar para la DS?

Si se pudiese hacer un (¿pequeño?) juego homebrew en el cual poder insertar tus canciones favoritas con los videos (originales, AMV's que lleven esa canción, etc...) correspondientes, sería la "leshe"...

Me surgieron unas cuantas dudas, como el por ejemplo, como comprobar el nivel de afinidad de tu voz con el de la canción original, y casi sin querer, se me ocurrió una forma.

Soy usuario de el programa Guitar Pro (programa para ver tablaturas de guitarra y poder tocar tú tus canciones favoritas) y descubrí que puedes dejar solo la pista de la "voz" (entre comillas, ya que no es voz, son las notas que canta la voz) y guardarlo como un archivo MIDI monofónico, a partir de ese MIDI (o a partir de la partitura que te viene con el programa) se podria hacer un archivo de configuración que la DS leyera mientras reproduce la canción y el video, y que después, en función de las notas que se vayan acertando sumasen puntos... Vamos, no se si me he explicado bien (de sonido no tengo ni papa...), como el juego de SingStar para PS2.

Solo quiero saber de momento si este proyecto pudiese ser viable, y si lo fuese, con qué librerías me recomendaríais hacer mis pinitos, ya que por ejemplo, para las PaLib, aun no he encontrado funciones que contolen el microfono.

Salud!

Imagen
Prueba con el ultrastar, funciona muy bien para pc, podrias intentar un port, es doft libre
Si lo consigues te pongo una estatua. Prueba con el ultrastar NG, que es libre, en la web te dan el codigo fuente. Adios!!!!!!!!!!!!
Has pensado en usar el método que usan los afinadores de guitarra homebrew??? si no te sirve/gusta el del midi, puedes intentar este^^
a lo mejor si pillas alguno open source, puedas pillar alguna idea pa codificar tu propio sistema ;)
Casi que ya te digo que no se puede.

Signstar usa una transformada de fourier rapida para cuantificar la voz y saber si el tono es el de la cancion( por eso puedes tararear y puntuar igual que uno que cante bien), y esa funcion consume bastante cpu :S

Por otro lado, si solo detectases si entra sonido o si no entra, si se podria, pero no se podria ver el tono.

Saludos
Mi madre acaba de leer este hilo y me ha dicho algo que me ha abierto los ojos:
Si el caso de estos juegos es divertirte, a mi me da igual que los de la ps2 te lean como cantas (los tiene todos, es una singstar fan xD), si fuera un simple karaoke estaria muy bien.
Yo pienso: es mejor que te de puntuacion, pero si no se puede hacer un singstar por falta de potencia: Porque no hacer un karaoke para ds? Seria la polla. Osea, un reproductor de archivos .kar (para programas de karaoke, hay 500000000 millones de .kar rulando por internet) que te reproduzca la cancion, y te muestre la letra. Creo que asi no seria dificil de hacer, y si alguien lo hace, se acabo el tener que cargar con mi ps2 tocho y los microfonos. Si os parece bien, vamos. Si no, pues nada. Adios!!!!!!!!!!!

EDIT: El logo mola un webo.
yo no sé si la consola podría o no, pero pienso que el método más sencillo y que pille menos memoria, sería comparar con el midi (así no habría que comparar con la canción en cada momento, y chuparía menos memoria, supongo) si los afinadores son capaces de reconocer las notas, y los midis no tienen mucha más info que las notas en las que consisten... podríamos leer desde el mic y comparar con el midi... la cuestión es si podríamos a la vez reproducir vídeo con sonido y calcular puntuaciones...
Buenas, y gracias a todos por los aportes ^^.

He estado mirando el UltraStar (Cuyo código fuente viene en Delphi) y me ha sido totalmente imposible de compilar debido a incompatibilidad entre librerías, así que probaré con el Ultrastar-ng que está codificado en C, a ver si saco algo en claro de ahí.


MHK, yo lo que había pensado es que a partir del MIDI (ya dije anteriormente que de sonido no tengo ni papa...) se podría sacar un archivo, por ejemplo de texto plano, con las indicaciones "segundo a segundo" de lo que "debería" reconocer el micrófono, asi te ahorras tener que leer el midi...

No se si me explico, sería algo asi como crear los subtitulos de un fansub, o incluso, como la gente edita las canciones para el frets on fire (un clónico para PC de Guitar Hero), así que la DS lea el archivo rollo:

[1-00:00/00:05]
*Frecuencia de sonido (o nota musical incluida la duración de la misma)
[2-00:06/00:09]
*Frecuencia de sonido (o nota musical incluida la duración de la misma).

(Los que hayais hecho subtitulos sabreis a que me refiero).


otto_xd escribió:Signstar usa una transformada de fourier rapida para cuantificar la voz


¿Lo cualoooo? xD perdona mi ignorancia pero ya he dicho que de sonido ni papa... ¿te refieres a que usa algun tipo de ecuación para ver si se corresponde tu tono con el de la canción? y ¿eso no se podría hacer "a lo bruto" como yo digo con el archivo? si el microfono lee X y en el archivo indica Y, lo siento macho pero no has atinado, y si pone L en el fichero y tu has dixo la nota L, enhorabuena, toma 10 puntitos... ¿eso sería viable?

MasterManu escribió:Porque no hacer un karaoke para ds? Seria la polla.


Un Karaoke simple y llano para DS ya existe... bueno, mas o menos, solo tienes que pillar un *.AVI, subtitularlo, transformarlo a DPG y cargarlo con el Moonshell... ni microfonos ni ná... a grito pelao... xDDD

Bueno, eso, agradeceros a todos vuestras aportaciones ^^ voy a ver si me aclaro un poco con el UltraStar-NG y si fuese posible me pondría a ello ^^

Zankiu, y Zankiu a MasterManu por lo del Logo, fueron 5 terribles minutos de aburrimiento... xD
jajja! espero ansioso ver los resultados! y xcierto, tb espero ansioso la version rock, XD y espero que con una carátula acorde al estilo, jajaja sería la polla, xq esa está muy bien! si te sale una rockera wapa, no veas ke triunfo, XD
PookSD escribió:¿Lo cualoooo? xD perdona mi ignorancia pero ya he dicho que de sonido ni papa... ¿te refieres a que usa algun tipo de ecuación para ver si se corresponde tu tono con el de la canción? y ¿eso no se podría hacer "a lo bruto" como yo digo con el archivo? si el microfono lee X y en el archivo indica Y, lo siento macho pero no has atinado, y si pone L en el fichero y tu has dixo la nota L, enhorabuena, toma 10 puntitos... ¿eso sería viable?


el problema está en que para comparar la X con la Y, tienen que ser de la misma naturaleza... es decir, Y será la nota del archivo midi, y X será una grabación del microfono de cierta duración, es decir un chorro de bytes... la transformada rápida de fourier lo que hace precisamente es dada una grabación de voz, la analiza y te dice a qué nota corresponde, con lo que obtendríamos la "nota" a la que corresponde X y eso sí se podría comparar con Y.

Así es como funcionan los afinadores, y el ultrastar y todo eso, pero precisamente la transformada de fourier es lo que sería difícil (o imposible?) de hacer en tiempo real en la ds. por eso estoy con otto_xd y no le veo mucha salida a esto [noop]

en cambio lo del karaoke ese de las canciones .kar quizás si que seria factible, aunque a mi personalmente no me atrae mucho la idea de un karaoke en una portátil...
Woo!! esta idea me parece de fabula! ^^ si necessitas ayuda ya sabes eh! [poraki]
PookSD escribió:¿Lo cualoooo? xD perdona mi ignorancia pero ya he dicho que de sonido ni papa... ¿te refieres a que usa algun tipo de ecuación para ver si se corresponde tu tono con el de la canción? y ¿eso no se podría hacer "a lo bruto" como yo digo con el archivo? si el microfono lee X y en el archivo indica Y, lo siento macho pero no has atinado, y si pone L en el fichero y tu has dixo la nota L, enhorabuena, toma 10 puntitos... ¿eso sería viable?

Busca transformada rapida de fourier en la wikipedia y tendras mas informacion, pero en resumidas cuentas es que si tu cantas, puedes variar el tono de un nivel a otro.

Lo que hace esta funcion es cuantificarlo, de forma que un todo de Do tiene un valor, uno de Mi otro y asi con todos los tonos.

En el juego habria que meter las canciones en midi o en lo que sea, un archivo con los tiempos como en los subs y el tono que corresponde en ese intervalo y el codigo de la transformada, que creo recordar que tiraba de bastante cpu.

Saludos
otto_xd escribió:Casi que ya te digo que no se puede.

Signstar usa una transformada de fourier rapida para cuantificar la voz y saber si el tono es el de la cancion( por eso puedes tararear y puntuar igual que uno que cante bien), y esa funcion consume bastante cpu :S

Por otro lado, si solo detectases si entra sonido o si no entra, si se podria, pero no se podria ver el tono.

Saludos



Si sirve de ayuda, el Daigaso! band of Brothers trae la opción de tararear una canción para que el juego te pase tus tarareos a midi, con tonos y duración de las notas incluído. Yo creo que esta puede ser la base para crear un sistema de karaoke. En resumen, la DS se la puede, porque en este juego funciona muy bien. Te recomiendo probarlo para que veas como funciona.
Pues a mi si que me interesa tu idea, no algo tan bestia xD por eso. Mi idea es más simple, a mi me gustaria hacer un proyecto de comandos simples de voz, nada de IA ni eso... simplemente que reconozca a traves e unos patrones que si lo que le entra por el microfono a que patrón se ajusta más (rollo al reconocmiento de letras por visión por ordenador), no se si me he explicao, y vosotros que estais más con el tema (yo me he puesto a programar la ds ayer... jeje). La idea seria por ejemplo tener dos patrones de sonido ROJO y AZUL, enonces si te dicen AZUL pues es muy probable q tenga un alto porcentaje en el patrón de AZUL, también acepto PIJO y que se empatrone con ROJO xD pero mientras que palabras basicas las pueda comaprar me contento.

Alguien tendria alguna idea de hacer esto?
13 respuestas