Karoshi MSX Community
05 de Julio de 2021, 08:06:17 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1] 2
  Imprimir  
Autor Tema: Volumen de envolventes en AY-3-8910  (Leído 7966 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Dioniso
Visitante
« : 24 de Octubre de 2011, 11:57:39 pm »

   Holas!  Griel

   Como hacía muuuuucho que no andaba por aquí y he decidido volver por estos lares, me dije a mí mismo: "Pues un binario y un hola no quedarían nada mal".

   Así que me he puesto un ratillo a programar un pequeño binario que controla el volumen de las envolventes (envelopes) de nuestro AY-3-8910. Era un tema que comenté hace muchísimo tiempo pero nunca lo enseñé.

   Se trata de encender y apagar la envolvente, controlando los t-states. Cuanto más pase entre apagado y encendido, más baja se escuchará la envolvente. No he puesto el modo IM2 ni he hecho nada raro.

   Suena una envolvente con tono en su máximo volumen y a lo largo de 45 segundos le voy bajando el volumen en 10 pasos. Creo que se "ve" lo que quiero decir.

   Por cierto, el BlueMSX no emula el efecto; sobre los otros emuladores ... no sé. Probadlo en un MSX real  Wink

   Hola!
En línea
MsxKun
Karoshi Forum's Guru
*******
Mensajes: 1554


Kimochi-ii


WWW Email
« Respuesta #1 : 25 de Octubre de 2011, 08:44:27 am »

   Se trata de encender y apagar la envolvente, controlando los t-states. Cuanto más pase entre apagado y encendido, más baja se escuchará la envolvente. No he puesto el modo IM2 ni he hecho nada raro.

Querras decir nada mas raro de lo habitual Wink
Este finde lo pruebo!
En línea

--

Cindy Lauper She Bops!
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #2 : 25 de Octubre de 2011, 10:51:59 am »

Ese Dioniso! Bienvenido de nuevo por estos lares, me encanta tenerte por aquí y que además nos saludes con envolventes con volumen modificable. No lo he podido probar aún en un MSX de verdad - estoy en la oficina -, así que tengo que preguntarlo directamente: ¿una vez más código síncrono?

Y puestos a preguntar, ¿algún jueguecillo a la vista? Por mi parte poco va a haber, salvo alguna colaboración puntual para algún juego de la Dev, pero sin presiones. Vamos, salir en los créditos pero de relleno Grin
En línea
Dioniso
Visitante
« Respuesta #3 : 25 de Octubre de 2011, 11:10:22 am »

Hola, hola. Pues sí, claro; síncrono. Pero tampoco me he metido en plan serio con este programa; es IM1, no he tocado los ganchos ni nada. De hecho, se hace largo el fade out de la envolvente y no lo llego a apagar; sería de un 100% a un 50% creo. Si alguien tiene interés lo puedo hacer modificable por teclado de 100% a 0% en 15 niveles; lo que correspondería al volumen de los tonos "normales" (volumen de 0 a 15).

Bueno, vuelvo con ganas, que es lo que importa. Con la intención de no entrar al trapo de nada, leyendoos y programando.

A ver qué sale a medio plazo.
En línea
Dioniso
Visitante
« Respuesta #4 : 25 de Octubre de 2011, 11:13:46 am »

... eh, lo he vuelto a escuchar y no hay una bajada de volumen tan brutal. A ver si lo optimizo un poco ... Esperad.
En línea
Dioniso
Visitante
« Respuesta #5 : 25 de Octubre de 2011, 11:57:34 am »

Vale, ahora se oye con más claridad. Bajo el volumen progresivamente de 100% a un ... 20%? Pero, al calcular a "ojo" y rápidamente, se produce ruido al llegar a casi desaparecer la envolvente. Habría que calcular bien las pausas entre encendido y apagado y viceversa; esto es muy importante para que el sonido sea limpio.

Esta vez he optado por una envolvente sin frecuencia (tono). Así se aprecia mejor.

Obviamente, esto no tiene aplicación alguna en un juego si no se hace el juego con código síncrono ... Para alguna demo o intro, sí.
En línea
MsxKun
Karoshi Forum's Guru
*******
Mensajes: 1554


Kimochi-ii


WWW Email
« Respuesta #6 : 31 de Octubre de 2011, 02:56:57 pm »

Curioso!
No notaba gran cosa, y claro, resulta que en el TR con el modo R800 pues... adios codigo sincrono Tongue
En modo Z80 ya es mas sutil. De todas formas haria falta mas demo, con una sola nota apenas me hago cargo.

En línea

--

Cindy Lauper She Bops!
Dioniso
Visitante
« Respuesta #7 : 31 de Octubre de 2011, 03:24:45 pm »

Estoy jugando a ratos con el tema. Es muy curioso: cuando dejas una cantidad considerable de espacio (t-states) entre apagado y encendido y comienzas a reducirlo entre encendido y apagado, llega un punto en el que se produce un "ruido" que hace que suenen dos canales por el mismo canal; por un lado la envolvente se mantiene (si le das los suficientes t-states después de encenderlo para que suene a volumen total) y por otro, en el mismo canal, se produce una especie de sample curioso que se puede manejar (crear notas) variando lo rápido o lento que apagas en canal. No sé si me explico ...

Ya pondré algo cuando llegue a ser algo decente. No voy a subir archivos pequeños cada vez que veo algo ... Sería aburrido.

Que sea con código síncrono no quiere decir que sea una cagada. Igual no se puede utilizar en un juego (o sería muy difícil de implementar) pero se pueden hacer cosas muy curiosas.

Ea! Siestazo! Buenas noches!
En línea
Dioniso
Visitante
« Respuesta #8 : 01 de Noviembre de 2011, 01:43:59 am »

Bueno, he hecho un programita en BASIC que modifica (el POKE de toda la vida) los registros del AY-3-8910; modifica un binario que se ejecutará con los cambios que introduzcamos. Así se pueden hacer efectos diferentes.

Los valores a introducir son 5:
-Registros 0 y 1: forman un número de 12 bits para el tono. El primer valor va de 0 a 255 y el segundo (que serían los 4 bits más altos) de 0 a 15.
-Registros 11 y 12: forman un número de 12 bits para la envolvente. Igual que arriba.
-Registro 13: tipo de envolvente. Número de 4 bits; de 0 a 15.

Por defecto sonará una envolvente que se apaga con los valores 0,5,16,0,8. Se puede variar el efecto probando valores, como: 0,15,68,0,10.

Aquí podéis ver el tema de los registros y tipos de envolventes (para el que no lo sepa, claro).

[Edit] Me he dado cuenta de que he escrito dos veces 0-31 en vez de 0-15 en el programa en BASIC. Ains ...
« Última modificación: 01 de Noviembre de 2011, 10:34:33 am por Dioniso » En línea
Dioniso
Visitante
« Respuesta #9 : 01 de Noviembre de 2011, 10:45:25 pm »

Ya me parecía a mí que algo no me sonaba bien ... Es lo que tiene subir un archivo a las 2:30 de la mañana.

He corregido el programa. Había parámetros que no se actualizaban, lo que hacía que mucho sonara casi igual.

Ahora está requetecomprobado: funciona. La envolvente que suena como ejemplo tiene los valores 0,0,6,0,8.

Siento los errores y que hayáis probado ese mojón. Probad ahora, plis.
En línea
toniman
Visitante
« Respuesta #10 : 10 de Noviembre de 2011, 06:43:56 pm »

Dioniso, me gusta mucho los experimentos que haces con el sonido, ¿Piensas seguir adelante con ello?
En línea
Dioniso
Visitante
« Respuesta #11 : 10 de Noviembre de 2011, 08:33:08 pm »

Gracias. Sí, pienso seguir con ello. Esto ha sido lo primero que me he encontrado. Hasta después de Navidad no tendré nada de tiempo. Espero hacer un replayer para un juego y algún creador/editor de sonidos donde se pueda jugar con más variables, como la longitud, por ejemplo, o donde podamos tocar notas en un teclado. Por ahora los experimentos se limitan a modificaciones del código, que sólo hago yo, y esto no sería cómodo para nadie. Ya iré poniendo algo más por aquí; pero cuando tenga algo más ... "sólido".
En línea
toniman
Visitante
« Respuesta #12 : 10 de Noviembre de 2011, 11:00:21 pm »

Si me permites una apreciacion, si haces un editor de musica, intenta que se pueda hacer sonido FX, si se puede, porque yo uso el AYFX y me encanta el editor que tiene, pero tambien me valdria como un tracker.

El problema del AYFX(es maravilloso el programa) es que solo se puede hacer efectos para un canal de sonido, yo echo de menos usar los 3 canales, daria mucha mas profundidad y mas versatilidad.

En fin, mucho animo y si necesitas ayuda, yo puedo hacerte los iconos y ayudarte con el diseño del interfaz del programa, ya que llevo 20 años con trackers y demas(seguro que tu tambien llevas muchos), asi que si el programa es para MSX o para PC o lo que sea, te ayudare. Eso si, me gustaria que si el programa fuera para MSX que usaras toda la memoria que necesites, ¿128kb quizas?

Te mando saludos.
En línea
toniman
Visitante
« Respuesta #13 : 10 de Noviembre de 2011, 11:39:01 pm »

Otra cosilla, en un tracker normalmente la velocidad de los patrones en los canales siempre es la misma, ¿Podria ser diferente la velocidad del canal 1 y el 2? suponiendo que la velocidad del canal 1 es 1x y la del canal 2 es 2x, o 4x, siempre en base de 2, entonces se pueden hacer musicas de tempo rapido pero no necesariamente tienen que consumir tanta CPU como si van todos los canales a 4x a la vez.

Espero haberte sido de ayuda.
En línea
Dioniso
Visitante
« Respuesta #14 : 11 de Noviembre de 2011, 12:01:00 am »

 Smiley Gracias.

Claro, la velocidad se mide en los trackers como el Vortex Tracker II (VTII) por los rasters o barridos de pantalla; 50 por segundo en PAL, 60 en NTSC. Si en el canal 1 tienes un instrumento que varía sus valores en cada raster y en el canal 2 un intrumento que varía cada dos rasters, el segundo cambiará la mitad de rápido, claro.

Eso no quiere decir que el "trabajo" del replayer para el segundo instrumento sea la mitad, sino que el replayer enviará la misma información cada dos rasters; quizá ahorre algo si prevé que la información será la misma y simplemente la calcula una vez y se ahorra el cálculo para la segunda vez -pero no lo creo.

De todos modos, lo que estoy programando hará cambios en cada canal no una vez cada raster sino varias veces en cada raster, creando instrumentos más "ricos". Se podría incluso tocar algún sample.

El problema es que el cálculo del valor de los registros del AY-3-8910 será más simple que en el VTII, por ejemplo, y no se podrán hacer muchas cosas que con el VTII sí.

Como digo, ésta es la idea. Pero esto va para largo. Algo sacaré sí o sí. Que sea lo que yo esperaba ... es otra cuestión.
En línea
Páginas: [1] 2
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!