mod_notes

Started by DCelso, February 23, 2010, 04:13:05 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

DCelso

:D, es porque el mío toca por la tarjeta de sonido, sintetiza un seno para cada frecuencia de cada nota y lo discretiza a 22khz, mono,16 bits, por eso suena como más límpio, no tan speaker :D.
Quizás si lo pongo a 8khz y 8 bits se escuche peor, pero más retro :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

DCelso

En cuanto a lo de multithread, es tan simple como poner la música a sonar en un "process" a parte.
¿Has visto el prg avanzado?
tiene un formato de texto propio que he llamado ".notes", que es más facil de usar para componer.

Lo de los float no tiene mucho que ver, creo. Yo he probado con ints el mío y se escucha más o menos igual, quizás un poquitín más limpio, pero no tengo oído de músico y para mí suenan prácticamente igual por no decir igual del todo :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

FreeYourMind

Estoy como loco para saber como hacerlo, puedes poner un ejemplo ?, yo creo que todos estos modulos de sonido lo tienen que tener obligatoriamente, no vas a parar la ejecución de los gráficos para escuchar la musica antes....

DCelso

me refiero en código benno a:

begin
 set_mode(320,200,32);
  coche(200,100);
 loop
    frame;
 end
end

process coche(x,y)
begin
 graph = load_png("mi_coche.png");
 loop
    if (key(_left) )x--;end
    if (key(_right) )x++;end
    if (key(_space)) toca_clapson();end
    frame;
 end
 unload_map(0,graph);
end

process toca_clapson()
begin
  play_note(65,200);
  play_note(650,100);
  play_note(65,100);
  play_note(650,200);
end

por un decir.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Drumpi

Tened en cuenta que el midi usa un instrumento pre-grabado en memoria para hacer música, por lo que genera señales sinusoidales (según el instrumento puede ser un único seno, dos, tres... veinte) y que incluso varían con el tiempo.
El altavoz del PC usa una señal cuadrada para generar sonido. No se si se filtrará para obtener un seno, o si ya lo hacen las capacidades parásitas, pero es lo que había antes para generar música: un oscilador digital al cual se le podía modificar la frecuencia, conectado a un altavoz.

Probad a usar el instrumento "square wave" del midi y lo notaréis... o si no, se parecerá mucho a los viejos sonidos de PC de cintas o consolas portátiles :P
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

DCelso

Nueva versión.
he añadido las canciones que free puso en el post de mod_beep en formato ".notes" en el ejemplo avanzado. He modificado el ejemplo avanzado para que soporte inserción de frecuencias en hercios , silencios y duraciones en milisegundos en el formato ".notes"
he añadido una función para saber si sigue la música sonando.
y he dado soporte para configurar la frecuencia de muestreo y el  número de bits de muestreo. Son dos variables globales y para que surgan efecto hay que reiniciar el módulo notes con la funcion notes_init después de cambiar el valor de las variables.
He probado 8000,11025,22100 y 44100 y todas se escuchan mas o menos igual, he probado a cambiar los bits de muestreo a 8 y se escucha un ruido horripilante de fondo, no se si es que estoy haciendo algo mal al calcular la frecuencia.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Prg

excelente idea la de tener todas las direcciones de las librerias extraoficiales en un solo lugar.
karma++
de esta forma el buscar un módulo será tan fácil como visitar este tema :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)