Autor Tema: Presentacion y nuevo programa para C64  (Leído 20452 veces)

pastbytes

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 535
  • SYS 0
    • Ver Perfil
Re:Presentacion y nuevo programa para C64
« Respuesta #30 en: Marzo 18, 2013, 10:23:10 »
Citar
(v30n20r06)
tambie+n pode+mos konta+r.
(v26n20r06)
/1;die+s;nue+be;o+cho;sie+te;se+is;si+nko;kua+tro;tre+s;do+s;u+no;se+r2o-;/0.
(v30n20r06)
o-emiti+r u-nsoni+do- de- ero+r./2/2.
o-usa+r la-sboka+les pa+r2a-ase+r  melodi+as.
(v30)
(N12R04)O(N17R08)O,
(N15R04)O(N1AR09)O,
(N17R04)O(N20R23)O   

(N12R04)O(N17R08)O,
(N15R04)O(N1AR09)O,
(N18R04)O(N21R09)O
(N17R04)O(N20R23)O.
(v26)
(N19R06)O'(N17R04)O'(N14R0A)O',(R0A)O, O, ;
(R04)O'(R0A)O'(R0A)O'(N17R0B)O'(N14R04)O'(N19R0B)O;,  '
(N19R06)O'(N17R04)O'(N14R0A)O',(R0A)O, O, ;
(R04)O'(R0A)O'(R0A)O'(N17R0B)O'(N14R04)O'(N19R0B)O;,  '
(v30)
(N39R18)O(N38)O(N39)O(N38)O(N39)O(N38)O(N34)O(N2B)OO,
(N34R10)O'(N34)O  (N34)O'(N34)O  (N34)O'(N34)O  (N34)O'(N34)O  (N34)OO(N3B)OOOO,
.
(v30n20r06)
o-usa+r la-skonsona+ntes pa+r2a-ase+r  efe+kto-s.

P TS  P TS  P TS  P TS  P TS  P TS  P TS  P TS  P TS  P TS  P TS  P TS  P TS  P TS  P TS 
R   R   R   R   R   R   R   R   R   R   R  R  R  R  R  R  R  R  R R R R R R R R R R R RR RR RR RR RR RR RR RR RR RR RR RR RRR RRR RRR RRR RRR RRR RRR RRR RRR RRRRRRRRRRRRRRRRRRRRRRRRRRR
F   F   F   F   F   F   F   F   F   F   F  F  F  F  F  F  F  F  F F F F F F F F F F F FFFFFFFFFFFFFFFFFFFFFFFF
P   P   P   P   P   P   P   P   P   P   P  P  P  P  P  P  P  P  P P P P P P P P P P P PPPPPPPPPPPPPPPPPPPPPPPP
.
(v36)
fin de la demostrasion

Lo puse en dos partes porque parece que es demasiado largo para el foro y no dejaba publicarlo.

rajahtavaa_energiaa

  • Inactivos
  • Sinver
  • *
  • Mensajes: 19
  • SYS 0
    • Ver Perfil
Re:Presentacion y nuevo programa para C64
« Respuesta #31 en: Marzo 18, 2013, 23:19:24 »
Tienes que hacer escribir foneticamente como "say" de workbench 1.3?

Solo soportaba ingles y las letras como ö ä å no las hacia caso.
Amiga!

pastbytes

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 535
  • SYS 0
    • Ver Perfil
Re:Presentacion y nuevo programa para C64
« Respuesta #32 en: Marzo 19, 2013, 06:45:14 »
Si, se escribe foneticamente porque la forma de pronunciar varia segun el pais o incluso la region, por eso no quise atarlo a ninguna pronunciacion particular. Le falta algun sonido, como la Z, aqui donde estoy se pronuncia como S y por eso no esta implementada, pero la tengo que agregar, tambien solamente esta implementado el sonido B y no V, que diferencia hay no se porque aqui tampoco la hay. Son detalles que deje para resolver para cuando tuviera algo casi final como la version actual.
Los fonemas soportados son A E I O U B CH D F G J K L M N P R R2 S T SH, la G solo funciona como en "gato", no como en "general", para esa ultima tiene que usarse J. La RR se escribe R porque es el sonido mas comun, para la R suave se usa R2, podria haber usado RR y R, pero ya que RR es tan comun se terminaria escribiendo demasiado. Tambien se soporta entonacion con dos comandos, los acentos se hacen agregando un + despues de las vocales, y en la ultima silaba de una oracion se puede usar un - despues de una vocal para bajarle el tono, ya que eso hace uno cuando habla, sino suena como frase sin terminar. Para hacer voz robotica justamente no se pone nada de eso y suena siempre en el mismo tono.
« última modificación: Marzo 19, 2013, 07:03:04 por pastbytes »

pastbytes

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 535
  • SYS 0
    • Ver Perfil
Re:Presentacion y nuevo programa para C64
« Respuesta #33 en: Octubre 03, 2013, 08:01:58 »
Para no abrir un nuevo tema, y como por el momento no tiene mucho que ver con Commodore, actualizo aca el estado del proyecto del sintetizador por hard. En estos meses hubo bastantes avances, lo primero es que complete el sintetizador de voz, agregue jumpers de configuracion para que pueda conectarse por RS232 a 4 velocidades distintas: 1200, 9600, 19200 y 57600 bps. Tambien ahora el eco de lo recibido se puede deshabilitar con un jumper, ya que es util solamente en el caso de controlar el chip desde una terminal, y agregue otro jumper para poder deshabilitar el mensaje de arranque, tanto hablado como de texto, lo que hace que se pueda integrar dentro de otros proyectos.
El cambio mas importante en estos meses fue que pude agregar tanto un generador de ruido como uno de sonido, con varios instrumentos incluidos. El sonido sigue siendo monofonico, pero se puede generar tanto voz como sonido en las octavas 0 a 5, aunque para la voz no tiene mucho sentido fuera de las octavas 1 a 3. Las ondas que se pueden usar para generar sonido son: bajo, organo, guitarra electrica, y una cuarta onda que es definible por el usuario, pero viene precargada con la definicion de una onda cuadrada. Ese ultimo instrumento se reproduce desde la RAM del chip, y se puede definir con una secuencia de 66 bytes que representan la tabla de ondas del sonido, que se puede enviar en cualquier momento mediante un comando.
Ademas de los instrumentos se dispone de un generador de ruido, que igual que el generador de sonido permite controlar la frecuencia por notas musicales, en el caso del ruido se puede ajustar en 3 octavas, en el caso del sonido en 6. Tanto al ruido como al sonido se le puede asignar envolventes, tambien de duracion/frecuencia programable, con 4 formas de onda distintas (triangular, diente de sierra descendente, diente de sierra ascendente, y onda definida por el usuario) y en dos modos posibles: envolvente ciclica (se repite continuamente mientras dure el sonido), o envolvente unica (se reproduce una unica vez).
Todavia no hice una prueba en Commodore 64, ya que como siempre probaba todo primero ahi, esta vez decidi empezar por otras plataformas. La primera prueba la hice en mi CZ Spectrum con Interface 1, que incorpora RS232. Este es el video, donde se puede ver tambien un par de fotos de la placa conectada:

Demo de sintetizador HR4 en CZ Spectrum 48K


La segunda prueba la hice conectando el sintetizador directamente al puerto de joystick en MSX, usando una rutina que simula una transmision RS232 a niveles TTL, por lo cual el circuito se simplifica bastante, al no tener que usar un MAX232 para adaptar los voltajes. La rutina de transmision se llama directamente desde el BASIC pasandole una cadena como parametro, por lo que es facil adaptar un programa para que soporte al sintetizador.
Para la prueba modifique un juego en BASIC y le agregue voz y sonido, no es una prueba muy espectacular pero sirve para darse una idea de como se usaria en un programa mas elaborado. El juego usaba la orden PLAY para emitir el sonido, que en MSX toca una secuencia como "tarea de fondo", y se puede consultar tambien desde BASIC el estado de la reproduccion para saber cuando se completo la secuencia. Para hacer lo mismo con el sintetizador, le tuve que conectar la salida PLAYING del chip a una entrada del puerto de joystick, de forma que con la orden STICK (que chequea el estado del joystick) se puede saber si se termino de reproducir la secuencia enviada. De esta manera, adaptar juegos de MSXBASIC cambiando de PLAY al sintetizador es bastante simple, con la salvedad de que el sintetizador es monofonico y el AY-3-8910 tiene 3 canales de sonido. Tambien probe el comando para detener la secuencia inmediatamente y borrar el buffer, lo que es util por ejemplo al recorrer un menu, como se puede apreciar en el video:

Demo de sintetizador HR4 en MSX


Aca se puede ver la placa conectada:





Los dos videos los hice capturando la salida de video compuesto de cada maquina y la salida de sonido del sintetizador.
En Commodore quiero hacer alguna prueba en C64, otra en Plus/4, y una ultima en C128 en modo 128, en principio usando el puerto del usuario, que para RS232 es compatible en los tres modelos por lo que se usaria la misma placa, pero en Plus/4 se pueden obtener velocidades de hasta 19200 bps, mientras que en C64/128 se usaria 1200 bps.
Ademas de esto ya hice un manual preliminar que ni tiempo tuve de revisar, y se puede descargar aqui: http://www.pastbytes.com/apps/picsynth/ManualHR4.zip
El circuito para MSX es este:



El puerto en MSX es diferente que en Commodore, pero seguramente se puede hacer algo similar, todavia no se si es mejor conectar el chip por un puerto de joystick o usar el puerto del usuario. Lo mas practico seria el puerto del usuario, pero conseguir los conectores no es tan facil, al menos por aca, vi que los venden en ebay a 75 dolares por 100 conectores, lo que es un muy buen precio, pero no creo que la aduana deje entrar 100 conectores sin tomarlo como una importacion comercial. Por esta razon puede convenir mas usar el puerto de joystick, pero tambien es una complicacion tener que andar conectando y desconectando la placa.
Por ultimo, para ayudar a probar en tiempo real las funciones del sintetizador, y para generar secuencias simples, hice un programa para Windows, que tiene esta interfaz:



Aca se puede ver un video de una de las primeras versiones, mucho mas simple, de cuando el chip no tenia generador de ruido y sonido:

Sintetizador de voz HR4 (2013) - Beta 1


Estuve buscando alguna aventura conversacional que no fuera muy complicada de modificar, pero por lo visto no hay nada que sirva, ya que para poder hacer una prueba rapida deberia cumplir demasiadas condiciones, como que deberia estar en BASIC en lo posible y no ser un programa muy largo, porque hay que duplicar la cantidad de texto almacenado (el texto original para pantalla y el texto fonetico para la voz). Me parece que va a ser mas practico hacer o modificar algun juego simple, ya que no pretendo pasarme meses desarrollando un juego si la intencion es solamente probar el chip.
« última modificación: Octubre 03, 2013, 08:15:42 por pastbytes »

Jeff

  • Commodore Master
  • *****
  • Mensajes: 475
  • RUN/STOP + RESTORE
    • Ver Perfil
Re:Presentacion y nuevo programa para C64
« Respuesta #34 en: Octubre 03, 2013, 09:44:01 »
R Tape Loading error
« última modificación: Diciembre 18, 2019, 20:59:22 por Jeff »
Press ANY key (¿Donde esta la tecla ANY???)

marcos64

  • Commodore Master
  • *****
  • Mensajes: 2864
    • Ver Perfil
    • http://marcos64.orgfree.com/
Re:Presentacion y nuevo programa para C64
« Respuesta #35 en: Octubre 05, 2013, 09:09:27 »
Curioso que ultimamente haya varios proyectos de sintetizadores de voz. Y se suelen conectar por el puerto RS232. Por que? Es una pena que no se conecten al puerto de expansion porque supongo que no funcionarar con los juegos que soportan el MAgic Voice.
http://marcos64.orgfree.com/
Actualizacion 22/4/2018: Actualizada Load'N'Run numero 5 con nuevos TAPs y PRGs.

pastbytes

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 535
  • SYS 0
    • Ver Perfil
Re:Presentacion y nuevo programa para C64
« Respuesta #36 en: Octubre 06, 2013, 00:26:23 »
Aca donde estoy no se consiguen conectores para el puerto del usuario, por lo cual mire varias formas de conectarlo, entre ellas el puerto de expansion. El puerto dispone de dos lineas especiales para direccionar un espacio libre de E/S, y este sintetizador usa RS232 porque tiene mas posibilidades de conexion, pero bien podria conectarse a un puerto paralelo o a un bus de procesador. Pero hay varios inconvenientes, el primero es que para conectarse a un bus se necesita un PIC de 40 pines que trae incorporada esa interfaz, el costo no es mucho mayor, pero queda un monton de hard desperdiciado en el PIC, por lo cual es un proyecto mas avanzado que pienso realizar mas adelante, agregando timers, conversor A/D, señales digitales de E/S, y lo que se pueda aprovechar del PIC.
El otro problema, que aqui es muy importante aunque no tanto en Europa, es que por aqui casi todo el que tiene Commodore tiene disketera, y alguna version de Fast Load, esto hace complicado usar el puerto de expansion, porque el uso de ese espacio de E/S (creo que hay 2) depende de cada cartucho, habria que investigar bastante y agregar una continuacion del conector para que pudiera ser transparente para los cartuchos mas comunes.
En cuanto al Magic Voice, no conozco que chip que usa, pero aunque pudiera conectarlo de la misma manera no tendria el mismo sintetizador. Yo no pretendo aprovechar soft existente, ya que debe ser muy poco, lo que quiero hacer es una plataforma de sonido que se programe igual en cualquier ordenador al que se conecte, ya que no es un chip de sonido sino mas como un coprocesador, ejecuta sus propios comandos y controla sus propios tiempos. Mi idea es terminar de pulir un poco el codigo de los sintetizadores por soft, que tienen comandos compatibles con este por hard, y liberar ese codigo, de esa manera se pueden hacer juegos que tengan voz, si tienen un chip conectado tendran mas capacidades, sino pueden cargar la version por soft y tener la voz basica.
Mi desarrollo va mas alla de Commodore o incluso los ordenadores de 8 bits, ademas en algun momento habra una version de 4 canales y con mejores capacidades para cargar tablas de onda en RAM, limitarse a reemplazar un sintetizador de voz de los 80s no me convence, ademas supongo que seria mas apto para el ingles. En algun momento mi sintetizador va a soportar tambien ingles, pero la verdad es que ahora no es mi prioridad, prefiero hacer desarrollos en español.

pastbytes

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 535
  • SYS 0
    • Ver Perfil
Re:Presentacion y nuevo programa para C64
« Respuesta #37 en: Octubre 07, 2013, 19:01:35 »
Despues de poco mas de 2 años volvi a armar una placa para Commodore, esta vez con el circuito y el firmware actualizado, aca hay un par de fotos:





Probe el sintetizador desde BASIC en C64 y anduvo perfecto, luego hice una prueba en Plus/4, y aunque tuve que andar probando distintas configuraciones del comando OPEN, porque no es 100% igual al de C64, al final salio andando.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 11614
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Presentacion y nuevo programa para C64
« Respuesta #38 en: Octubre 07, 2013, 19:21:38 »
Tendrías que hacer un video donde se ve funcionando :)

Para los conectores, si compras minimo mil puedes encontrar algo aqui  http://www.alibaba.com/countrysearch/CN/conectores.html :P

pastbytes

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 535
  • SYS 0
    • Ver Perfil
Re:Presentacion y nuevo programa para C64
« Respuesta #39 en: Octubre 07, 2013, 19:29:54 »
Si, ya voy a hacer algun video, pero estuve horas armando eso y peleando con el BASIC, se me acabo la energia para filmar y editar.
Por suerte mi C64 y mi Plus/4 son NTSC, igual que mi filmadora, asi que no va a haber problemas con el parpadeo de la imagen.

pastbytes

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 535
  • SYS 0
    • Ver Perfil
Re:Presentacion y nuevo programa para C64
« Respuesta #40 en: Octubre 08, 2013, 01:49:45 »
Subi un video probando el sintetizador directamente desde el BASIC de Plus/4 usando PRINT#, para C64/128 es igual, los cambios estan en la instruccion OPEN que usa unos parametros ligeramente distintos.

Prueba de sintetizador HR4 en Commodore Plus/4

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 11614
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Presentacion y nuevo programa para C64
« Respuesta #41 en: Diciembre 21, 2014, 17:25:14 »
Le podes enviar esa plaquita al Stephen Hawkings, que creo usa un procesador de voz de los 80s!

pastbytes

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 535
  • SYS 0
    • Ver Perfil
Re:Presentacion y nuevo programa para C64
« Respuesta #42 en: Enero 15, 2015, 02:16:33 »
Despues de las pruebas con el C128 modifique ligeramente el circuito para que el Commodore pueda saber cuando se termina de reproducir el sonido y asi el video se pueda sincronizar con el audio. Tambien habia un error en el esquema de conexion, en la parte del 7404 que se usa para invertir la linea CTS, y agregue una nueva conexion a DSR solo por si acaso el C128 lo usa en lugar de CTS.
Este es el nuevo plano de conexion:



De paso pregunto, ya que puede ser que alguien en España pueda vender estos chips, por mas o menos lo que cuesta cada PIC y el envio, hay alguien que tenga interes en algun chip para armarse alguna placa?
El precio no lo se, dependera de a cuanto consiga los PICs esta persona, yo con esto no gano nada pero no quiero liberar el codigo del programa, por eso tendrian que comprar los PICs grabados. Tampoco tengo confirmado todo esto pero pregunto para saber si realmente hay gente que este interesada en el futuro en comprar alguno.
Lo que no podemos hacer es armar placas, el que tenga un chip de estos tendra que armarse la placa que necesite, RS232, C64-128-Plus/4, MSX.
« última modificación: Enero 15, 2015, 02:26:41 por pastbytes »

pastbytes

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 535
  • SYS 0
    • Ver Perfil
Re:Presentacion y nuevo programa para C64
« Respuesta #43 en: Enero 16, 2015, 07:55:39 »
Estuve mirando los precios de los PIC en Argentina, a mi me costaba hace 2 meses el PIC16F648A en dolares 5,32 por unidad. Segun me dijeron, en Valencia estaba un poco mas caro, pero estimo que se puede llegar a tener un sintetizador de voz/musica/ruido por alrededor de 10 o 15 euros, entre PIC, cristal, 7404 y el resto de componentes que no son caros. Lo unico complicado de conseguir es el conector para el puerto del usuario.
Me queda probar uno de estos dias la conexion compatible con el cable UP9600, que permitiria usar el chip en ensamblador casi sin consumo de procesador, por usar el puerto serie por hard de la CIA en lugar de las rutinas de la ROM que temporizan por software. Lo malo de usar este modo es que el cableado ya no seria compatible con el Plus/4, pero como soy el unico usuario con Plus/4 no se pierde mucho.  ;D

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 11614
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Presentacion y nuevo programa para C64
« Respuesta #44 en: Enero 16, 2015, 12:42:46 »
Quizás el único usuario en Argentina, pero en España y de este foro seguro hay varios!