Que bueno que esta eso! Como le entrabas los datos? con un teclado de PC? Los fonemas son los mismos que las letras (menos la H) o era como el SAM que tenias que escribir de una forma rara? Usabas una eprom para la tabla de sonidos?No, sintetizador de voz, como el SAM de la C64 o el sintetizador de la Amiga, genera fonemas grabados, analice voces grabadas y capture las partes caracteristicas y repetitivas, despues se van combinando ondas digitalizadas, una detras de otra, en algunos casos dos sonidos mezclados tocandose a la vez, y tuve que hacer un generador de ruido para mezclarlo con algunas ondas, por ejemplo para letras como S o F. Las ondas digitalizadas estan dentro del mismo PIC, como tablas de valores.
en una pagina vi los dos jueguitos en PIC. Nada mas que a estos se les podía conectar uno o dos chostins analogico, de los que son compatible con atari, commodore y msx.
Iba a armar uno, pero me hacía falta el programador de PIC, acto seguido, compré los componentes para armar uno, pero nunca lo terminé. Soy malisimo con la soldadura, y por qué?, porque me di cuenta de que mi soldador ya tiene la punta hecha mierda y sin punta... .
Asi que un día de estos me tengo que comprar la punta seramica: Alguno tiene idea de cuanto está??.
Que bueno que esta eso! Como le entrabas los datos? con un teclado de PC? Los fonemas son los mismos que las letras (menos la H) o era como el SAM que tenias que escribir de una forma rara? Usabas una eprom para la tabla de sonidos?
Me acuerdo de un chabon que fue al Agujerito Sin Fin con una C64 y un guante conectado al port de expansion paralelo, que por cada dedo tenia un contacto (o algo asi), entonces con el guante le enviada letras por codigo (no se si binario, porque no todas las 32 combinaciones son faciles) a un programa basic, y el SAM hablaba. Era una maquina para mudos!
Aca va una foto de mi reloj. La carpinteria no fue facil (ni quedo muy linda) tiene un acrilico rojizo, y abajo una cartulina negra con un agujero por cada led, para mejorar el contraste. Hablando del Agujerito sin fin, esos 300 agujeritos en la cartulina fueron una tortura. Yo en otro vida creo que fui un chino en una planta de produccion, me meto a hacer cada cosa!!
claro! sino como andaba el SAM con la poca RAM de la C64. No pense
Como dije, las tablas de ondas estan dentro del PIC como tablas de saltos, eso fue lo que mas costo, compactarlo lo mas posible, el programa anda cerca de los 4K (en palabras de PIC, no en bytes), que incluye las tablas (los "wavs" por decirlo de una manera mas entendible).
Queres que el PIC cante? me vuelvo loco si lo haces!
Lo que me queda pendiente es un algoritmo de escalado para hacer la transposicion de las ondas a otras notas dentro de 4 octavas.
Y asi es la calentura, yo tambien me meti a hacer cosas de las que quedo un prototipo, bastante desastroso esteticamente por supuesto, pero funcional, y lleno de parches de modificaciones posteriores, pero son cosas que haces una vez por la curiosidad y que no volverias a repetir. Igual se ve muy bien, la logica de los numeros es de 7 segmentos? Digo no creo que controles cada led en particular desde el PIC, seguramente hay varios leds que estan cableados juntos.
claro! sino como andaba el SAM con la poca RAM de la C64. No pense
en eso. Que guardas, frecuencias y duraciones?
Desconosco casi todo sobre digitalizacion de voces, pero todo lo relacionado con sonido esta bueno, es uno de mis siguientes pasos para meterme en electronica, por lo menos hacer una musiquita con el pic con una onda no cuadrada.
Bueno, la idea era que el programa sirva tambien para tocar ondas basicas, senoidal, triangular, etc., y que se pudiera hacer transposiciones para tocarlas en distintas notas y octavas, pero tambien se me ocurrio que tocando las vocales en distintas notas se podria hacer cantar al programa, aunque eso no es algo que tenga prioridad por el momento, algun dia lo voy a hacer solo para darme el gusto.Queres que el PIC cante? me vuelvo loco si lo haces!
Claro que controlo cada led! Los caracteres estan dibujados en una tabla dentro del PIC punto x punto. Lo complicado de tener semejante matriz es el laburo de soldarla con wirewrap, alambrecitos y cables planos, pero me gusto hacerlo, no me arrepiento, es mas, unos meses despues hice con la misma tecnica un tetris de 20*10, que todavia le estoy debiendo la parte del sonido que la patee para mas adelante.
No sabia de esas salidas, y no es la primera vez que me pasa: Me hice una rutinas re jodidas para enviar y recibir datos por puerto serial a 56Kb, todas con la interrupcion de timer en la 16F877, y a esa velocidad no andaban del todo bien, entraba basura cada tanto, ademas que me quitaba tiempo de ejecucion con otro periferico que estaba controlando a la vez (una impresora de tickets). Un dia buscando otra cosa en el datasheet, veo que tiene viene con UART interna!! >:( Que bronca que me dio ese dia!!
Si te interesa investigar, lo que uso es la salida PWM que tienen los PICs mas nuevos (el 16F877 tiene 2 salidas de esas), eso es modulacion de ancho de pulso, poniendole un filtro RC a la salida tenes un conversor digital/analogico...
Calculo que no usa las voces del SID, sino que genera ondas cambiando el volumen, como esa rutina que reproducia el audio de los casetes desde el datassete. No se porque pienso esto, pero siempre me dio esa impresion.
El SAM no se bien que tecnica usa, pero creo que no aprovecha al 100% el SID, ya que el programa salio para Apple II (requeria una placa con conversor D/A), Apple Lisa, Atari 8 bits y C64, y el sonido en todas esas maquinas es bastante diferente entre si, por lo que supongo que el algoritmo era en gran parte portable y generico. Igual puede que me equivoque y en cada plataforma hayan hecho un algoritmo optimizado para esa maquina.
Bueno, la idea era que el programa sirva tambien para tocar ondas basicas, senoidal, triangular, etc., y que se pudiera hacer transposiciones para tocarlas en distintas notas y octavas, pero tambien se me ocurrio que tocando las vocales en distintas notas se ...
Es una locura ese reloj, todo un presupuesto en leds, supongo que vas barriendo permanentemente, una fila o columna a la vez, y un digito a la vez. La base de tiempo la sacas del reloj de 4MHz usando uno de los timers con prescaler?