• Bueno, despues de muchos contratiempos, llego el dia en que pude finalizar el analizador/conversor de ASCII a fonemas y luego a secuencia interna de sonidos, costo un monton de trabajo, mucho mas de lo que esperaba, y el codigo es enorme considerando que es nada mas que una interfaz. La version actual ocupa 2850 de las 4096 posiciones de memoria de programa del micro, eso contando algunas rutinas de acceso directo al sintetizador que pasaron a ser obsoletas y van a ser eliminadas.
    La idea desde el principio era que se pudiera manejar desde un programa terminal RS232, y eso funciona perfectamente, pero antes habia pensado en no usar mas que las lineas RX y TX, por lo cual si se llenaba el buffer del chip iba a devolver un caracter indicador para que el host supiera que tenia que reenviar. Sin embargo, esto hacia que el host tuviera que ser inteligente, esto es, un programa enviando datos desde un microcontrolador, una computadora con un programa en BASIC, etc., ya que tenia que chequear el eco para saber el estado del buffer. Si queriamos enviar un archivo de texto continuo de forma automatica no lo ibamos a poder hacer, ya que cuando se llenara el buffer se perderian los datos que siguieran.
    Por esta razon decidi usar RTS/CTS, en realidad solo CTS, que es activada por el chip cuando puede recibir datos, siendo en realidad la misma linea NOT_READY direccionada al chip MAX232 para que salga a CTS del host.
    Tal como esta actualmente el programa, permite el tipeo en tiempo real, aunque es demasiado rapido y habla practicamente a la velocidad maxima que puedo tipear, por lo que tengo que "engañarlo" tipeando previamente puntos o comas, de forma de ganar tiempo para escribir el resto de la frase. Esto es porque al hacer el cambio a recepcion continua, el chip habla apenas recibe los caracteres, si se tipea lento hay silencio entre los fonemas.
    Si se le envia un archivo de texto lo habla, aunque tengo que hacer unos ajustes porque hay perdida de informacion si se excede el tamaño de la lista de reproduccion, esto es un error que hay que corregir.
    Otro detalle es que hay que tipear de una manera a la que no estoy acostumbrado, eliminando letras redundantes, por ejemplo "OLA,KE TAL", lo que hace que cueste tipear rapido pensando en escribir mal, deberia practicar mas SMS. biglaugh.png
    Tengo que ver como hago para filmar porque no tengo tripode para la camara y tengo que filmar a la vez que tipeo rapido, se complica un poco la cosa.
    Hice las pruebas desde un programa terminal en la PC, y desde una terminal simple en BASIC en la Epson HX-20, tengo que conectar la placa a la C64 para ver que tal anda ahi con el VIP Terminal XL. Para armar el sintetizador en la C64 se necesita el conector del puerto del usuario, el PIC, un cristal de 20MHz, 3 capacitores y una resistencia, no hace falta adaptacion de niveles como en otras maquinas. En la PC y Epson se necesita tambien el chip adaptador MAX232 con sus componentes asociados para convertir los niveles TTL a RS232, un conector DB9 (o DB25) y el cable serie correspondiente.
    Cuando encuentre la manera de filmar algo que se vea bien subo algunos videos.
     

  • Recien se termino de subir el video que filme, tuve que tipear con la zurda, cosa complicada siendo derecho, y tratar de no mover la camara mientras tipeaba lo mas rapido posible para "ganarle" al sintetizador, ya que habla apenas recibe los datos.
    Conecte la Epson HX-20 con un programa en BASIC para transmitir lo que tipeo al puerto serie a 300bps.
    Este es el texto que puse en el video:

    Finalmente la primera version alfa del sintetizador basado en PIC16F648A, controlable por RS232 desde cualquier programa terminal a 300bps. Se hicieron algunos cambios a las especificaciones para que sea practico poder enviar textos ininterrumpidamente al chip, ahora se usa CTS para indicar al host cuando el buffer esta lleno, que no es otra que la linea NOT_READY cableada hacia el chip MAX232.
    En este video se ve a la placa controlada desde una Epson HX-20 por medio de un pequeño programa terminal en BASIC a 300bps, 8N1. Otro de los cambios al programa es que ahora reproduce el sonido inmediatamente al recibir datos validos, no se necesita una orden para comenzar la reproduccion, ya que esta en una especie de pausa permanente a la espera de texto.
    El video no esta muy bien filmado porque tenia que tipear con la izquierda siendo derecho, y encima rapidamente, ya que si se tipea lento quedan silencios entre los fonemas al ser rapido el sintetizador. Por eso se ve que tipeo varios puntos al comienzo, que son las pausas mas largas programadas, con lo que gano tiempo para escribir el resto de la frase.
    Se ve un ejemplo de entonacion tambien, las vocales con + son acentos y las vocales con - son de la ultima silaba de una palabra, que tienen un tono menor. Con esto se logra una entonacion menos robotica.
    Quedan varios detalles para corregir, como que se pierden algunos datos al enviar textos largos, algo que no deberia pasar ya que se usa CTS para pausar el envio desde el host, pero ya se pueden hacer una idea de como va a quedar.

    Más información en http://www.pastbytes.com/apps/picsynth/

    Y el video:

     

Moderador (s): homecomputer, Selandari, ArielP, pastbytes, Durandal