Karoshi MSX Community

Desarrollo MSX => Desarrollo (Español/Spanish) => Mensaje iniciado por: Kotai en 26 de Enero de 2012, 10:43:53 am



Título: Generar sonidos
Publicado por: Kotai en 26 de Enero de 2012, 10:43:53 am
Hola.

He retomado mi juego Trail2 para presentarlo a la MSX Dev y ya he llegado al apartado Sonido del que no tengo ni idea.

Como hay 3 canales y el juego es a dobles he pensado un canal para el sonido de motor de un jugador, otra canal para el motor del otro jugador y el tercer canal reservarlo para el sonido del salto y colisión.

Pero no tengo ni idea de como generar esos sonidos y si en el caso del motor puedo ir cambiando la frecuencia del sonido con la velocidad de la moto.

¿ Alguien que me diga que parámetros poner al SOUND para conseguir esto ?

Gracias.  :griel:


Título: Re: Generar sonidos
Publicado por: pitpan en 26 de Enero de 2012, 11:03:16 am
Las malas noticias son que únicamente dispones de una frecuencia para el ruido, que queda vinculada al canal o canales para los que actives el ruido. Por lo tanto, tendrás un único sonido de motor (o dos, pero con la misma frecuencia, por lo que sonará igual pero con volúmenes agregados).

Puedes usar dos frecuencias distintas en formato tonal, hacer que sean muy graves, y poner de fondo un ruido blanco constante. Así conseguirías ajustar la parte de sonido más o menos relacionada con la aceleración.


Título: Re: Generar sonidos
Publicado por: Kotai en 26 de Enero de 2012, 11:20:09 am
 :-[ 
¿ y como se los valores del sonidos que quiero crear ? ¿ tengo que ir probando valores a boleo o hay alguna fórmula o programa que le diga el tipo de sonido que quiero y me devuelva el valor ?

Saludos  :griel:


Título: Re: Generar sonidos
Publicado por: aorante en 26 de Enero de 2012, 11:45:29 am
¿ y como se los valores del sonidos que quiero crear ? ¿ tengo que ir probando valores a boleo o hay alguna fórmula o programa que le diga el tipo de sonido que quiero y me devuelva el valor ?

si lo que quieres es trabajar directamente con los registros del AY (PSG), hice un programita que te puede ayudar:

http://code.google.com/p/psged/downloads/list

Bájate la v0.82b. Es una rom de 32k.

Tiene campos para tocar todos los registros.
Con INS te reproducirá el sonido de todos los registros y con la tecla STOP, lo silencia.
Si pulsas F5 te muestra los valores en decimal, de todos los registros numerados.
F1 te mostrará un texto con la ayuda.

tiene un pequeño secuenciador, pero es muy pobre y para tu caso no te sirve...
y no lee ni guarda a disco. Es una función que tengo pendiente...
En load hay un par de demos...

y te pongo un par de links sobre el AY por si los necesitas:
http://psged.blogspot.com/2010/02/sobre-el-ay-3-8910-psg.html
http://psged.blogspot.com/2010/02/instruccion-sound.html

saludos!



Título: Re: Generar sonidos
Publicado por: Kotai en 26 de Enero de 2012, 02:00:42 pm
Que chulo que está el programa. Lo había visto en la RU del verano pasado.

Me he puesto a tocar, pero no entiendo nada, el sonido no es lo mio. Me resulta más fácil usar la instrucción SOUND e ir probando valores, pero pueden pasar días hasta que por casualidad encuentre un sonido que parezca el motor de una moto, otro para las colisiones y otro para los saltos.

¿ Alguien que controle el SOUND me podría decir uno valores para obtener esos 3 sonidos ?

Gracias.  :griel:


Título: Re: Generar sonidos
Publicado por: j4mk3 en 27 de Enero de 2012, 08:06:21 pm
Aorante ! Aorante ! es tu hombre... Te hace un sound en un plis.
Los del MSXWars que hicimos para el concurso de Basic de Konamito son suyos y le quedaron geniales. ;)


Título: Re: Generar sonidos
Publicado por: nanochess en 28 de Enero de 2012, 05:52:27 pm
No se si estás en BASIC o ensamblador, pero la instrucción SOUND del BASIC se traslada fácil a WRTPSG del BIOS.
Unas ideas rápidas (sin probar  ;D):
o La moto con movimiento de frecuencia
SOUND 6,31
SOUND 7,&H86   REM Activa ruido en todos los canales, activa el canal 0 para darle forma al tono
SOUND 8,10       REM Volumen canal 0 al 10 (acepta 0-15, no uses 16 si no conoces el PSG)
SOUND 9,10       REM Volumen canal 1 al 10
SOUND 10,10       REM Volumen canal 2 al 10
REM la frecuencia (valores entre 0 y 4095), sugiero 2048 en adelante para darle el bajo adecuado
SOUND 0,FREC AND 255
SOUND 1,FREC DIV 256    ;;; ¡Rayos! se me olvidó si es la barra invertida \ para división entera
o Para explosiones puedes jugar a cambiar el registro 6 con valores de 2 a 31, más un sound 7,&H87 (activa ruido, desactiva tonos 0-2), y correspondiente activación de volumen
o Para tonos simples.
SOUND 7,&HB8   REM Activa canal 0-2
SOUND 8,10       REM Volumen canal 0 al 10
SOUND 9,0       REM Volumen canal 1 a 0
SOUND 10,0      REM Volumen canal 2 a 0
Repite el SOUND 0,FREC y el SOUND 1,FREC
O Para apagar el sonido solo pon todos los volumenes a 0 (SOUND 8,0, SOUND 9,0 SOUND 10,0)



Título: Re: Generar sonidos
Publicado por: nanochess en 28 de Enero de 2012, 05:55:53 pm
Los bits del registro 7:
bit 0 - Activa tono 0 a 0 (1 para desactivar)
bit 1 - Activa tono 1 a 0 (1 para desactivar)
bit 2 - Activa tono 2 a 0 (1 para desactivar)
bit 3 - Mezcla ruido con tono 0
bit 4 - Mezcla ruido con tono 1
bit 5 - Mezcla ruido con tono 2
bit 6 - Deja a 0
bit 7 - Deja a 1
Registro 0 - Byte bajo de frecuencia canal 0
Registro 1 - Byte alto de frecuencia canal 0
Registro 2 - Byte bajo de frecuencia canal 1
Registro 3 - Byte alto de frecuencia canal 1
Registro 4 - Byte bajo de frecuencia canal 2
Registro 5 - Byte alto de frecuencia canal 2
Registro 6 - Frecuencia de ruido (0-31), más alto es frecuencia más baja
Registro 8 - Volumen del canal 0 (0-15)
Registro 9 - Volumen del canal 1 (0-15)
Registro 10 - Volumen del canal 2 (0-15), se puede usar 0 para apagar.
Con esto no vas a tener problemas en meter las tres voces, dos de moto y tu canal de efectos
¡Suerte!  :)


Título: Re: Generar sonidos
Publicado por: aorante en 28 de Enero de 2012, 06:49:01 pm
Mi opinión sobre el tema:
el canal de FX realmente no lo veo necesario, ya que los efectos están relacionados con las motos y creo que lo primero seria apagar el ruido de la moto y luego hacer el fx de explosión (por ejemplo), que se puede generar en el mismo canal o incluso utilizar el sobrante, si es necesario.

Para el ruido de la moto, lo ideal es usar una forma de onda de envolvente (reg 13) de tipo cíclica (como la 13 o la 14) y variar la frecuencia/periodo de esta (regs 11 y 12), según la velocidad, de la misma forma que propone nanochess. El problema es que la envolvente es general a todos los canales y no se puede aplicar de forma diferente a dos, que es lo que interesa para las dos motos. Para hacer esto tendrías que simular las envolventes con soft, mediante los volúmenes. Si lo consigues, la envolvente por hardware la puedes usar para la explosión reg13 = 1, con un valor de periodo alto.

cuando tenga un momento, miro de hacerte un par de ejemplos..

para el salto que tienes pensado?

que lenguaje estas utilizando para el desarrollo de este juego?

Saludos!


Título: Re: Generar sonidos
Publicado por: nanochess en 28 de Enero de 2012, 10:43:37 pm
Como lo comenta aorante, es una lástima que el AY-3-8910 no tenga envolventes separadas para cada canal.
La sugerencia de mi mensaje anterior es que el ruido de las motos use una frecuencia intermedia a baja en el canal de ruido y después se mezcla con el tono 0 (para el ruido de la moto 1) y el tono 1 (para el ruido de la moto 2) en frecuencias también relativamente bajas.
En el momento de la explosión se usa el canal de ruido exclusivamente para esto y a un volumen más alto (entonces si se puede usar la envolvente muy bien), el oído humano no nota el cambio; después se restaura todo otra vez para el ruido de las motos.
Es un truco que usé por primera vez en Zombie Near para Matra, los zombies arrastrándose hacen un gisssss y en ese momento no hay tambores, pero ¡no se nota!.
Para el salto se puede usar una frecuencia que va de bajo (valor 200) a alto (valor 20) por ejemplo.


Título: Re: Generar sonidos
Publicado por: Kotai en 01 de Febrero de 2012, 10:45:17 am
Muchas gracias.
No he visto el mensaje hasta ahora, no se que ha pasado que no me ha enviado los emails con nuevas respuestas (solo me mandó el primero) y no he pasado a verlo.

El juego está en BASIC, pero en el bucle principal del juego uso el compilador XBASIC que no me permite usar PLAY para poner música pero si SOUND para los sonidos.

Los sonidos que me faltan son el del semáforo (2 veces un tono para las luces rojas y un tono más agundo para la verde), los del salto y me gustaría poner uno para el público al cruzar la meta, como si fuese el de Hyper Sports de Konami cuando acabas cada prueba o el del Boxing.

Al final estuve anoche buscando y probando un montón desonidos de juegos en Basic pero no encontré ninguno que me gustará y al final mandé el juego a la MSXDev 45 minutos tarde (por culpa de probar sonidos) y no me han dejado participar. Me dicen que para el año que viene  :'(

Voy a probar estos sonidos y os subiré la ROM por si alguien lo quiere probar.

Os adjunto unas capturas del juego:

(http://www.remakesonline.com/images/foros/trail2/1.png)

(http://www.remakesonline.com/images/foros/trail2/2.png)

(http://www.remakesonline.com/images/foros/trail2/3.png)

(http://www.remakesonline.com/images/foros/trail2/4.png)

(http://www.remakesonline.com/images/foros/trail2/5.png)

(http://www.remakesonline.com/images/foros/trail2/6.png)

(http://www.remakesonline.com/images/foros/trail2/7.png)

(http://www.remakesonline.com/images/foros/trail2/8.png)

(http://www.remakesonline.com/images/foros/trail2/9.png)

No pongo las imágenes de cuando ganáis 3 o 4 carreras de las 5 que hay ni la de si ganáis las 5 carreras para que tengáis un aliciente a la hora de jugarlo cuando lo suba.

Saludos.


Título: Re: Generar sonidos
Publicado por: aorante en 01 de Febrero de 2012, 10:49:58 am
Muy chulos los gráficos!  :o

tiene muy buena pinta.  :D




Título: Re: Generar sonidos
Publicado por: Jon_Cortazar en 01 de Febrero de 2012, 10:51:10 am
AWWWWWWWW, pintaca!!!

Kotai, preséntalo al próximo!!! :D :D :D :D :D :D :D :D


Título: Re: Generar sonidos
Publicado por: MsxKun en 01 de Febrero de 2012, 10:54:59 am
Que coño al proximo. Presentalo cuando te de la gana, lo subes y punto.
No hay que esperarse a un DEV o algo para hacer un juego no? :D Para el proximo dev haces OTRO juego, si quieres ;D

Que no me da la gana esperarme, vaya!  :joe:


Título: Re: Generar sonidos
Publicado por: Kotai en 01 de Febrero de 2012, 11:01:30 am
Wow cuanto mensaje nuevo mientras modificaba mi entrada anterior.
Volver a leerla para ver las nuevas cosas que he puesto.

Saludos  :griel:


Título: Re: Generar sonidos
Publicado por: Kotai en 01 de Febrero de 2012, 11:05:49 am
Si, no me voy a esperar un año.
A ver si acabo de poner los sonidos, que sin ellos el juego se queda cojo, y subo el juego a mi web para que lo podáis descargar.

Jon ¿ que ha pasado con tu juego para la MSXDev ? con la pinta que tiene, ¿ vamos a tener que esperar otro año ?

Saludos.  :griel:


Título: Re: Generar sonidos
Publicado por: Jon_Cortazar en 01 de Febrero de 2012, 11:22:15 am
Jon ¿ que ha pasado con tu juego para la MSXDev ? con la pinta que tiene, ¿ vamos a tener que esperar otro año ?

Otro año, no. Ahora, esperar, si...  :-\


Título: Re: Generar sonidos
Publicado por: Kotai en 05 de Febrero de 2012, 02:24:24 pm
Ya tengo los sonidos del motor, que han quedado bastante parecidos al Hyper Rally de Konami usando los siguientes valores:

antes del bucle:
  SOUND 6,25:   ' canal de ruido (0-31) 0=frecuencia alta;  31=frecuancia baja
  SOUND 7,&H9C: ' activamos ruido en los canales 0 y 1
  SOUND 8,13:   ' volumen canal 0 (moto 1)
  SOUND 9,13:   ' volumen canal 1 (moto 2)
  SOUND 10,15:  ' volumen canal 2 (otros sonidos)

y ya dentro del bucle:


  @I=4095-@Velocidad(@Jugador)*400:   ' velocidad jugador va de 0 a 8
  @J=@Jugador*2:                                  ' jugador tiene los valores 0 o 1   
  SOUND @J,@I AND 255:
  SOUND @J+1,@I\256:

Pero no se como hacer el sonido del salto ni de los semáforos  que ha de sonar en un solo canal.

¿ Alguna ayuda ?

Gracias.  :griel:


Título: Re: Generar sonidos
Publicado por: MsxKun en 05 de Febrero de 2012, 03:49:21 pm
Has probado el AYFX?
Es un editor de sonidos para el PSG.

Tienes informacion detallada en el blog de SapphiRe: http://z80st.auic.es/blog.php?page=2008/06/reproductor-de-sonidos-ayfx.html

Saludos!

Edito: Ah, que si estas usando BASIC no servira tal cual.. aunque emplear la rutina en ASM y usarla con DEFUSR no es tan complicado... Tambien se podria adaptar al BASIC y tal, pero bueno... ya es liarse un poco mas.


Título: Re: Generar sonidos
Publicado por: nanochess en 21 de Febrero de 2012, 08:32:46 pm
Ya tengo los sonidos del motor, que han quedado bastante parecidos al Hyper Rally de Konami usando los siguientes valores:

antes del bucle:
  SOUND 6,25:   ' canal de ruido (0-31) 0=frecuencia alta;  31=frecuancia baja
  SOUND 7,&H9C: ' activamos ruido en los canales 0 y 1
  SOUND 8,13:   ' volumen canal 0 (moto 1)
  SOUND 9,13:   ' volumen canal 1 (moto 2)
  SOUND 10,15:  ' volumen canal 2 (otros sonidos)

y ya dentro del bucle:


  @I=4095-@Velocidad(@Jugador)*400:   ' velocidad jugador va de 0 a 8
  @J=@Jugador*2:                                  ' jugador tiene los valores 0 o 1   
  SOUND @J,@I AND 255:
  SOUND @J+1,@I\256:

Pero no se como hacer el sonido del salto ni de los semáforos  que ha de sonar en un solo canal.

¿ Alguna ayuda ?

Gracias.  :griel:
Pues lo tienes todo bien, solo tienes que hacer esto para activar el tercer canal:
  SOUND 7,&H98: ' activa canal 2 al tiempo que el 0 y el 1
Y poner la frecuencia con SOUND 4,x y SOUND 5,x
De hecho para evitar pops en el audio, es mejor mantener fijo el SOUND 7 y desactivar el canal usando el volumen (o sea sound 10,0)
¡Suerte!