Karoshi MSX Community
06 de Julio de 2021, 12:14:30 am *
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]
  Imprimir  
Autor Tema: Musica en 6 voces para PSG.  (Leído 5438 veces)
0 Usuarios y 1 Visitante están viendo este tema.
toniman
Visitante
« : 26 de Julio de 2011, 02:05:21 pm »

Hola chicos,

Hace poco que Arturo Ragozini me paso una prueba que habia hecho para reproducir 6 voces en un PSG, la verdad es que suena muy bien, y ademas es gratis, vamos, que no hace falta hardware adicional Smiley

Supongo que la habreis oido, pero por si acaso no lo habeis hecho aqui esta el enlace:
http://www.msx.org/modules.php?op=modload&name=Downloads&file=index&req=visit&lid=732

Segun me conto Shapphire eso se hace cambiando la nota cuando la interrupcion esta a mitad de la pantalla, en un MSX2 es mas factible. Esta claro que esto consumira ciertos ciclos de proceso, por eso a mi modo de ver es interesante en presentaciones y otras partes del juego en donde haya poco movimiento. Seria parecido a lo que hacen en el spectrum pero no parece que gaste tanta CPU.

Y pensando ademas que detras de este truco no hay sofware se me ha ocurrido que se podrian hacer dos cosas:

1- Usas dos modulos de PT3 a la vez (es un poco locura pero se puede componer musica en 6 voces cuando el primer modulo esta acabado, se borra todo y se deja la bateria solo, o algun otro instrumento de referencia que nos permita hacer las otras voces).

2- Usar un modulo de PT3 y usar las otras 3 voces como efecto de eco o reverb.

En fin, para mi proyecto me interesaria, ¿Que opinais vosotros del tema?
« Última modificación: 26 de Julio de 2011, 02:12:10 pm por toniman » En línea
MsxKun
Karoshi Forum's Guru
*******
Mensajes: 1554


Kimochi-ii


WWW Email
« Respuesta #1 : 26 de Julio de 2011, 07:29:58 pm »

1- Pregunta a Sapphire, que esta en el meollo Cheesy

En línea

--

Cindy Lauper She Bops!
Konamito
Karoshi Excellent Member
******
Mensajes: 1446



WWW Email
« Respuesta #2 : 26 de Julio de 2011, 09:16:27 pm »

Suena bien aunque para mi gusto un poco recargado... Aunque como dices, es una prueba.
En línea

SapphiRe_MSX
Visitante
« Respuesta #3 : 26 de Julio de 2011, 11:49:04 pm »

El Vortex Tracker permite componer módulos de 6 canales linkando dos módulos PT3 "normales".

Se puede aprovechar, por ejemplo, el PSG adicional del MegaFlash ROM SCC+, de momento... (dadme algo de tiempo para aprovechar otras cosas).
En línea
toniman
Visitante
« Respuesta #4 : 27 de Julio de 2011, 08:22:43 am »

Bueno, me gustaria evitar usar el PSG del MegaFlash SCC+ puesto que eso encareceria el cartucho, mi idea es hacerlo en un MSX pelao y mondao Smiley

Se que Aorante y MSXKUN estan haciendo programas de sonido y experimentando, me gustaria que, si tienen tiempo y se interesan por esto, que hicieran alguna prueba o integraran en sus programas esta caracteristica.

A mi me gustaria incluirlo en mi proyecto, al que todavia puede que quede 2 o 3 años para que salga.

Sapphire, si quieres hacerlo con un solo PSG, esperare el tiempo que necesites.


En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #5 : 27 de Julio de 2011, 09:05:09 am »

Si no recuerdo mal, el tema de usar 6 canales en MSX con un único PSG supone un uso intensivo de la CPU, por lo que en principio, no sería compatible con el desarrollo de videojuegos.

Por otra parte, toniman, ¿tienes ya programador para tu proyecto?
En línea
toniman
Visitante
« Respuesta #6 : 27 de Julio de 2011, 09:26:01 am »

Si, ya tengo el scroll, los sprites funcionando, es un proyecto para MSX2, ahora estamos haciendo las colisiones.

Os doy algunas pistas, es isometrico pero no como Gunfright, es un angulo diferente, tiene scroll hecho con setadjust.

Me gustaria usar musica de 6 voces en PSG para la intro, menu, cinematicas y el ending. Para el resto del juego PSG normal.
En línea
SapphiRe_MSX
Visitante
« Respuesta #7 : 27 de Julio de 2011, 01:08:59 pm »

Sapphire, si quieres hacerlo con un solo PSG, esperare el tiempo que necesites.

Lo que tengo en mente se puede adaptar perfectamente a cualquier configuración compatible... y hasta aquí puedo leer.

Espero poder avanzar pronto, lo cierto es que sólo me falta el código para separar la lógica que ahora es conjunta... Grin Grin

Pero mi prioridad ahora es KNT Cheesy
En línea
Konamito
Karoshi Excellent Member
******
Mensajes: 1446



WWW Email
« Respuesta #8 : 27 de Julio de 2011, 04:14:51 pm »

Pero mi prioridad ahora es KNT Cheesy

¡Viva!
En línea

MsxKun
Karoshi Forum's Guru
*******
Mensajes: 1554


Kimochi-ii


WWW Email
« Respuesta #9 : 27 de Julio de 2011, 07:15:14 pm »

Pero mi prioridad ahora es KNT Cheesy

KeNoTe distraigas con otras cosas!!

Por mi parte, usar 6 canales (asi virtuales) no seria una buena opcion. El MSX Synth necesita tener la CPU lo mas libre posible para que no se pierdan o atasquen los datos MIDI entrantes. En todo caso, no seria lo ideal para juegos, esta mas orientado a tocar tal cual.

En línea

--

Cindy Lauper She Bops!
SapphiRe_MSX
Visitante
« Respuesta #10 : 27 de Julio de 2011, 09:39:23 pm »

KeNoTe distraigas con otras cosas!!

Muy bueno Grin Grin Grin

Citar
Por mi parte, usar 6 canales (asi virtuales) no seria una buena opcion. El MSX Synth necesita tener la CPU lo mas libre posible para que no se pierdan o atasquen los datos MIDI entrantes. En todo caso, no seria lo ideal para juegos, esta mas orientado a tocar tal cual.

Opino igual, seis canales virtuales consumen demasiada CPU y no los veo para juegos... Habría que cuidar muy mucho la sincronización, aparte de que si ya es difícil encontrar a alguien que te haga un PT3, imagina que pides dos PT3 sincronizados a seis canales...
En línea
toniman
Visitante
« Respuesta #11 : 27 de Julio de 2011, 10:17:49 pm »

Antes

"El Vortex Tracker permite componer módulos de 6 canales linkando dos módulos PT3 "normales".

Se puede aprovechar, por ejemplo, el PSG adicional del MegaFlash ROM SCC+, de momento... (dadme algo de tiempo para aprovechar otras cosas)."

"Lo que tengo en mente se puede adaptar perfectamente a cualquier configuración compatible... y hasta aquí puedo leer.

Espero poder avanzar pronto, lo cierto es que sólo me falta el código para separar la lógica que ahora es conjunta..."

"Opino igual, seis canales virtuales consumen demasiada CPU y no los veo para juegos... Habría que cuidar muy mucho la sincronización, aparte de que si ya es difícil encontrar a alguien que te haga un PT3, imagina que pides dos PT3 sincronizados a seis canales..."

Pero, entonces, antes digiste que lo mirarias, y ahora me parece entender que no piensas que funcione?  Embarrassed

Si no estas convencido de ello, creo que sera mejor que yo tambien vaya pensando en dejar el tema de las 6 voces.
« Última modificación: 27 de Julio de 2011, 10:24:35 pm por toniman » En línea
SapphiRe_MSX
Visitante
« Respuesta #12 : 28 de Julio de 2011, 10:52:50 am »

Pero, entonces, antes digiste que lo mirarias, y ahora me parece entender que no piensas que funcione?  Embarrassed

No, no he dicho eso.

Digo que para juegos, el utilizar seis canales virtuales va a consumir mucha CPU y hace que el juego se vuelva muy muy sensible a la sincronización.

Para entendernos pongamos un ejemplo basado en cómo organizo yo los frames:

-Nada más saltar la interrupción y recuperar el control (si se lo quitas a la BIOS mejor que mejor) lo más urgente es SIEMPRE volcar a VRAM, ya que mientras no te salgas del retrazo vertical puedes volcar a toda velocidad.
-Tras terminar el volcado a VRAM, se pueden volcar los registros del PSG.
-Después viene el cálculo de movimientos, colisiones... etc. Todo lo propio del juego.
-Tras eso, preparo la pantalla para volcarla en el siguiente frame.
-Por último llamo al reproductor de sonido para que genere los nuevos registros del PSG y tras eso se mezclan con los FX.

y volvemos a empezar.

Sin embargo, para hacer seis canales virtuales (en MSX2, porque ya en MSX1 sería un poco locura) habría que activar una interrupción por línea a mitad de pantalla (pero de pantalla completa, no de pantalla visible), de forma que tras saltar la interrupción se volcasen los registros alternativos del PSG.

Esto puede caer perfectamente en mitad de los cálculos del siguiente frame, por lo que hay que tener bastante cuidado a la hora de respetar registros, etc.

Añade, además, que hay que ejecutar DOS VECES el reproductor del PT3, una vez sobre cada uno de los módulos. No he mirado el reproductor multi-módulo, pero me da que o introduce cambios profundos en el código del mono-módulo, o bien se mueven los datos del reproductor en RAM. Eso implica un par de LDIR grandes y un triple buffer para datos musicales. Quizá Kun pueda aportar algo aquí, que se que algo hizo al respecto.

Ahora coge todo eso y mételo en un juego en el que la acción debe calcularse al frame para que todo vaya fluido. O el motor del juego está lo suficientemente optimizado como para que no de problemas o corres el riesgo de perder frames a tutiplen.

El hacerlo con seis canales REALES simplifica algo la tarea, ya que te quitas el problema de la sincronización a mitad de pantalla. Aunque parezca poco ahorro, es muchísimo, ya que sólo en reconocer que tipo de interrupción es se come ni más ni menos que dos líneas completas de pantalla. Si sólo se controla un tipo de interrupción (la de retrazo vertical), el comprobar el tipo de interrupción es muchísimo más inmediato.
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #13 : 28 de Julio de 2011, 11:38:58 am »

Es inviable reproducir PT3 a 6 canales en un PSG. Para conseguir el efecto de 6 canales hay que utilizar el reproductor propio de Arturo, que adaptó desde una dema técnica de Spectrum 128 (mismo PSG que el MSX). O no me he enterado de nada, que también podría ser...

Una versión síncrona del reproductor de PT3 me parece absolutamente irrealizable.
En línea
toniman
Visitante
« Respuesta #14 : 28 de Julio de 2011, 03:50:13 pm »

Hey, pero creo que no habeis leido lo que he puesto mas arriba, quiero usar 6 voces en pantallas de presentacion, intros y cosas asi, en las que apenas hay movimiento o hay poquito, con lo cual quedaria bastante CPU para las 6 voces,

Intro 6 voces

En el juego, psg normal.

pero en fin, creo que esto solo me gusta a mi, mejor dejarlo.



« Última modificación: 28 de Julio de 2011, 04:15:35 pm por toniman » En línea
Páginas: [1]
  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!