Karoshi MSX Community
05 de Julio de 2021, 07:30:19 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 [3] 4 5
  Imprimir  
Autor Tema: Sintetizador de Voz para MSX  (Leído 31328 veces)
0 Usuarios y 1 Visitante están viendo este tema.
pastbytes
Karoshi Fan
**
Mensajes: 66


Email
« Respuesta #30 : 02 de Marzo de 2012, 09:55:31 am »

Sobre un reloj maestro externo, estaría genial, pero mejor que usar el puerto de Joystick en que hay que mirar el estado por polling, supongo que sería mejor hacer algo que se conectara a un slot de cartucho y poder así generar una interrupción al Z80 con la cadencia que nos interese.

Claro, pero mi idea era que cualquiera pudiera armarlo, un cartucho no es para cualquiera, y de usar un cartucho seria mejor incluir uno o mas microcontroladores, lo que eliminaria la necesidad de usar el PSG.
A ver si me explico, en el caso del sintetizador de voz, originalmente era un programa que hice en un PIC que debe costar 3 o 4 dolares, emite sonido de 8 bits y corre a 20MHz.
Aqui se puede ver la placa, esta armada sobre una mas grande con otros proyectos, pero lo unico que pertenece al proyecto es lo que sale indicado en el video:
http://www.youtube.com/watch?v=b_z-iPSDG7g
Eso era solamente una prueba cuando aun no estaba terminado el codigo para procesar RS232, por eso tiene una frase grabada al arrancar y no dice nada mas. Cuando estuvo listo lo probe con una terminal por RS232, que en esa ocasion fue un Epson HX-20 pero lo mismo se podria haber usado cualquier terminal, un PC, un C64, un Spectrum con Interface 1, etc.
Aqui se ve la prueba: http://www.youtube.com/watch?v=Itgr15GTick
Las versiones para micros de 8 bits las renombre TAV, pero estan basadas en ese programa, tomando todos los atajos posibles para lograr un resultado similar con recursos muy inferiores. Inicialmente iba a ser un sintetizador de voz expandible en el futuro a placa de sonido basica, emulando algo similar al PSG o el SID, mi idea era conectarlo a un ZX81 o Spectrum 48K para agregar sonido basico o complementar el existente, de ahi vienen los comandos extendidos /0, /1 y /2 que agregan señalizaciones basicas para usar en algun programa. En el futuro habria otros comandos que generarian sonidos basicos como explosiones, pasos, disparos, etc., aunque todo eso quedo congelado desde el momento en que hice la conversion a micros de 8 bits, y en las versiones de TAVx quedan un poco fuera de lugar esos comandos.
A lo que iba es a que desde el momento en que pase el programa al mundo de los micros de 8 bits, el objetivo fue lograr resultados con el hard existente, si tuviera que incorporar hard adicional, el camino logico seria olvidarme de los tiempos, incorporar un medio de reproduccion de sonido fuera del micro (un chip de sonido, un microcontrolador, etc.), controlarlo por MIDI, y usar el micro solamente como interfaz.
Mas alla de esto, igualmente se podria encontrar una solucion intermedia, tal vez un microcontrolador que se sincronice con eventos externos y genere una interrupcion al Z80, ademas de expandir las capacidades de sonido del PSG, pero por el momento estoy mas en soluciones de software.
El chip que programe se quedo sin conectarse a un MSX porque esta diseñado para RS232, pero se podria llegar a emular usando el puerto paralelo, ya que solo es necesaria una linea de salida a 1200bps, y una linea de entrada con la que el PIC indica que no puede recibir datos (CTS). El chip funciona en tiempo real, es decir habla apenas recibe algo valido, y continua con la recepcion en paralelo, no es necesario enviar una frase y luego darle la orden de procesarla, ya que esta diseñado para un flujo continuo de datos. Se puede ver en el segundo video que tengo que ingresar puntos antes de cada frase, ya que comienza a hablar inmediatamente y hay que ser muy rapido tipeando para que no se interrumpa el sonido. Cada punto equivale a un silencio de 1 segundo, por lo que ingresar varios me da tiempo para tipear el resto de la frase.
En línea
MsxKun
Karoshi Forum's Guru
*******
Mensajes: 1554


Kimochi-ii


WWW Email
« Respuesta #31 : 02 de Marzo de 2012, 12:30:47 pm »

Este maki liante... Cheesy
En mi caso ultimamente estoy probando de generar notas en el MSX a tempos determinados. El problema de precision y sync con otros chismes que usan el mismo tempo es un rollo, si.
En mi caso aun puedo usar MIDI Sync usando el Music Module, que lo recibe via MIDI. No estoy seguro ahora mismo si el mismo Music Module tambien genera MIDI Clock y tal... Este tema todavia lo he mirado poco, por ahora me limitaba a recibir notas y listo.

Y en cualquier caso sigue siendo hardware externo. Por el MRC creo que alguien hizo pruebas de generar algo asi como las interrupciones por linea, usando sprites y el bit de colision. Era curioso.. No se como quedo el tema.

Saludos

En línea

--

Cindy Lauper She Bops!
pastbytes
Karoshi Fan
**
Mensajes: 66


Email
« Respuesta #32 : 02 de Marzo de 2012, 12:47:25 pm »

Entonces deduzco que los que usan varios equipos para hacer musica tienen que usarlos ya sea como instrumento musical, es decir con un usuario manejandolo, o si se usa como secuenciador, tiene que estar conectado por MIDI. Supongo que no usan equipos que no sea de esas dos formas, es decir no se usarian dos MSX secuenciando por separado, por el tema de la desincronizacion, pero si se usaria alguno para meter efectos cada tanto, como reproducir algun sonido, aunque esto entraria en la categoria de instrumento musical, aunque no sea convencional.
No se usan MSX tocando simultaneamente con otros equipos como gameboy, amiga, etc.?
En línea
MsxKun
Karoshi Forum's Guru
*******
Mensajes: 1554


Kimochi-ii


WWW Email
« Respuesta #33 : 02 de Marzo de 2012, 01:31:22 pm »

Bueno, usarse usarse... Se puede usar sin sincronizar por MIDI, pero es mas complicado. Sincronizar vida MIDI te simplifica las cosas (siempre que el hard y el soft lo soporte). En MSX no se ha usado demasiado el MSX para tocar en directo Cheesy Igual algun Yamaha... que ya tenian MIDI integrado...

Por poder tocar a pelo...  mirate el video del sabado pasado Cheesy http://www.youtube.com/watch?v=dzNbH5da16g
Por cierto tambien usamos el TAVMSX...

Yo intentaba lanzar alguna nota suelta con mi MSX, de oido. Tampoco es que se me de bien, soy un desastre.
Maki estaba con su c64 y Neuroflip con el Amiga. Habia alguna que otra Gameboy y DS... Aorante le daba al VJ.... Estuvo bien Cheesy
No se como sincronizaban, la verdad.... a mi el Commodore me la trae floja y blablabla...Cheesy
En línea

--

Cindy Lauper She Bops!
Mortimer
Karoshi Lover
***
Mensajes: 216


WWW
« Respuesta #34 : 02 de Marzo de 2012, 02:05:10 pm »

Lo de generar las INT en el Z80 lo dije porque es la manera más precisa de sincronizar, pero si se admite un pequeño error, el candidato ideal creo que sería como sugeriste el puerto de joystick: todos los MSX tienen al menos uno (El de impresora por ejemplo no), y además es bidireccional (2 bits sólo, eso sí), así que en vez de utilizar un MSX para que hicera de master del resto, simplificando la circuitería.

Y también, no sé exactamente a qué velocidad puede enviar información, pero en teoría también se podría usar el puerto de joystick como terminal para tu sintetizador.
En línea
pastbytes
Karoshi Fan
**
Mensajes: 66


Email
« Respuesta #35 : 02 de Marzo de 2012, 08:36:51 pm »

Por poder tocar a pelo...  mirate el video del sabado pasado Cheesy http://www.youtube.com/watch?v=dzNbH5da16g
Por cierto tambien usamos el TAVMSX...

No habia visto un video de ese tipo de eventos en vivo, es decir no en detalle, si vi alguno de lejos donde no se ve mucho de los equipos, o algun otro editado donde no esta el sonido de ambiente, por aqui donde estoy ese tipo de eventos no existen. Me habian comentado que usaron el programa, la verdad aun me cuesta imaginar como puede llegar a quedar bien ya que no esta diseñado para ese uso, pero sera que tengo poca imaginacion para esas cosas.
Pensando en esos usos, se me ocurrio que tambien podria agregar en el futuro opciones para distorsionar la voz un poco, no era la idea del programa, claro, porque se hace menos entendible, pero quedaria bien como efecto de sonido.
En línea
pastbytes
Karoshi Fan
**
Mensajes: 66


Email
« Respuesta #36 : 02 de Marzo de 2012, 08:47:22 pm »

Lo de generar las INT en el Z80 lo dije porque es la manera más precisa de sincronizar, pero si se admite un pequeño error, el candidato ideal creo que sería como sugeriste el puerto de joystick: todos los MSX tienen al menos uno (El de impresora por ejemplo no), y además es bidireccional (2 bits sólo, eso sí), así que en vez de utilizar un MSX para que hicera de master del resto, simplificando la circuitería.

Y también, no sé exactamente a qué velocidad puede enviar información, pero en teoría también se podría usar el puerto de joystick como terminal para tu sintetizador.

Interesante lo de que tambien sirva como salida, se que en varios sistemas (no MSX) existe esa posibilidad porque el hard que maneja los joysticks suele ser programable, pero desconocia que en MSX se tuviera lineas de salida, si esto es asi en cualquier modelo de la norma es seguro que para algo lo voy a usar.
Con dos lineas de salida se puede hacer milagros, incluso con una sola, aunque complica un poco mas el codigo.
En cuanto al puerto paralelo, pense que venia en todos los modelos, voy a tener que descartarlo entonces, tambien era un problema conseguir el conector, al menos en esta zona.
En línea
Mortimer
Karoshi Lover
***
Mensajes: 216


WWW
« Respuesta #37 : 02 de Marzo de 2012, 09:53:22 pm »

En realidad, visto desde el MSX, son 4 bits de entrada, 1 de salida, y dos programables para ser de entrada o de salida. Además también incluye una salida de 5V, así que si el sintetizador no necesita mucha corriente hasta se podría alimentar por ahí.

Bájate si no lo tienes ya el MSX Technical Data Book ( http://www.msxarchive.nl/pub/msx/docs/manuals/msxtech.pdf ) y mira en las páginas 25 y 26 (En la 25 hay una errata porque TRG2 también es input/output).
En línea
MsxKun
Karoshi Forum's Guru
*******
Mensajes: 1554


Kimochi-ii


WWW Email
« Respuesta #38 : 03 de Marzo de 2012, 11:34:41 am »

Para el tema del joystick creo que seria util mirar la informacion existente sobre JOYNET. Lo que hacia Joynet era conectar 2 MSX mediante el puerto de joystick. Esto se uso en el F1-Spirit 3D de Konami.

Lo de la impresora... todos los MSX tienen puerto. No se si habra alguna oveja perdida por ahi, porque hay de todo, pero seria un caso excepcional.  El que si es caso excepcional, es el 1chipMSX, que claro, para algunos no es MSX, sino emulador Cheesy
Pero es el unico caso que yo conozca...
En línea

--

Cindy Lauper She Bops!
Mortimer
Karoshi Lover
***
Mensajes: 216


WWW
« Respuesta #39 : 03 de Marzo de 2012, 11:56:48 pm »

Si no me equivoco al menos el Casio PV7 y el Philips VG-8000 no llevan puerto de impresora (La norma no lo exige).

La norma en cambio si exige al menos un Joystick, pero no sé si hay algún modelo que sólo lleve uno  Huh
« Última modificación: 03 de Marzo de 2012, 11:58:19 pm por Mortimer » En línea
pastbytes
Karoshi Fan
**
Mensajes: 66


Email
« Respuesta #40 : 04 de Marzo de 2012, 02:57:08 am »

Ya baje el manual ese, no lo tenia.
Si se uso ya el joystick para algo comercial entonces habra que mirar de que forma lo hacia para que sea algo seguro, ya que si algunas lineas son de entrada y salida hay que tener cuidado de dejar todo como estaba antes de retornar el control al sistema. Lo ideal seria usar lo minimo y que no se haga ningun corto si hay un joystick enchufado en el puerto, es decir usar solamente lo que esta fijo como entrada o salida.
El puerto paralelo habia pensado usarlo originalmente para conectar con el chip, por eso la placa tiene unos pines para conexion paralela, de esta forma el chip podria emular una impresora y se podria usar comandos estandar en el BASIC. Pero despues no se por que lo descarte y me parecio mejor armar un cartucho que utilizara dos puertos de E/S del Z80, esta solucion ademas seria adaptable a Spectrum o ZX81, pero la desventaja es que ya es un poco mas trabajoso el tema del software.
En línea
pastbytes
Karoshi Fan
**
Mensajes: 66


Email
« Respuesta #41 : 04 de Marzo de 2012, 02:09:52 pm »

Encontre esto en WOS: http://www.worldofspectrum.org/infoseekid.cgi?id=0021299
Es mas o menos lo que queria hacer con el tema de edicion de sonido, algo asi deberia haber para MSX, incluso se puede usar con raton.
El programa tiene algunos samples para cargar y probar, pero tuve que adivinar que en el DOS hay que poner CAT para ver el directorio, y LOAD "boot" para arrancar el programa.
En línea
MsxKun
Karoshi Forum's Guru
*******
Mensajes: 1554


Kimochi-ii


WWW Email
« Respuesta #42 : 04 de Marzo de 2012, 05:38:37 pm »

Curioso Smiley Soporta AY y Covox, asi que seria bastante portable, si estuviera el codigo fuente...
En línea

--

Cindy Lauper She Bops!
pastbytes
Karoshi Fan
**
Mensajes: 66


Email
« Respuesta #43 : 05 de Marzo de 2012, 01:51:24 pm »

Estuve haciendo pruebas simuladas con audio del programa, aplicandole modulacion en amplitud, o ring modulation en chips como el SID, me di cuenta que cambiando la onda utilizada y aplicandole una frecuencia se puede lograr ese efecto por hard. Lo que hace es distorsionar la voz, haciendola menos entendible, pero tiene su utilidad musical. El efecto ideal se lograr con una onda triangular, por lo que el SID lo haria mejor, y por lo que vi la frecuencia funciona bien entre 100 y 1000Hz segun el texto usado y el efecto que se quiera lograr. Con onda cuadrada, que es lo que puede ofrecer el PSG, las frecuencias altas parecen funcionar mejor.
Tambien estuve pensando que podria rehacer los samples y rutinas de fonemas del programa para adaptarse directamente al volumen no lineal del PSG, actualmente uso los 3 canales para linealizar el volumen, cada vez que se emite una muestra de 4 bits se toca el volumen de los 3 canales en un orden determinado para que el volumen de mas peso cambie primero y el "ruido" ocasionado por no poder cambiar los 3 a la vez se minimice.
Pero si el sonido digital se adapta a la mejor aproximacion del volumen exponencial que tiene el PSG, me quedarian 2 canales libres, tambien me queda pendiente hacer una herramienta que pueda convertir el audio lineal normal a audio apto para el volumen del PSG.
Esto ya es un delirio, pero seria interesante tener un tracker que en los canales permita sonido normal del PSG, sonido digitalizado, o sintesis de voz. Quien sabe, tal vez algun dia...
En línea
MsxKun
Karoshi Forum's Guru
*******
Mensajes: 1554


Kimochi-ii


WWW Email
« Respuesta #44 : 05 de Marzo de 2012, 09:05:40 pm »

Estuve haciendo pruebas simuladas con audio del programa, aplicandole modulacion en amplitud, o ring modulation en chips como el SID.

Jeje, aplicando Ring Modulation, sonara como un Dalek!

Citar
Esto ya es un delirio, pero seria interesante tener un tracker que en los canales permita sonido normal del PSG, sonido digitalizado, o sintesis de voz. Quien sabe, tal vez algun dia...

Seria genial, aunque mucho lio veo. Pero que no decaiga.

En línea

--

Cindy Lauper She Bops!
Páginas: 1 2 [3] 4 5
  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!