Ahora el sintetizador incorpora sonido digitalizado! La historia viene asi:
El otro dia, a pesar de que era 17 de octubre, me decidi a probar un cambio radical en el programa.
Queria saber que tal salian los sonidos digitalizados con el SID, ya que escuche muchas demos y en su gran mayoria no me convencio la calidad del sonido, sabiendo que un minimo de 4 bits, a pesar de lo limitado, tenia que sonar mejor que lo que hay hecho. Se que algunas demos usan sonido digitalizado mientras hacen otras cosas, en cuyo caso es perdonable que la calidad no sea tan buena, pero en muchas demos se anula la pantalla y aun asi el sonido es mediocre.
Empece probando con una onda diente de sierra y vi que variaba por la interrupcion del VIC al procesador, ademas de la interrupcion del teclado, asi que tuve que deshabilitar ambas. Pude luego probar con un sonido de 8 bits tomando solo los 4 bits mas significativos, lo cual efectivamente reduce el sonido a 4 bits ya que divide el volumen por 16, y para mi sorpresa la calidad fue mejor que la esperada. Asi fue que empece a hacer pruebas con distintos metodos, y despues de unas cuantas pruebas me encontre con las diferencias drasticas entre el SID6581 y el SID8580. Yo hice el programa para funcionar en el 8580, y me generaba todo tipo de ruidos no deseados en el 6581, por lo cual tuve que experimentar con distintos tipos de filtros y analizar la salida del emulador donde vi que el 6581 me invierte la señal y por lo tanto arruinaba el metodo usado. Despues de horas de lucha con los SID termine definiendo los parametros necesarios para cada chip, y tuve que agregar una rutina de deteccion para hacer los ajustes iniciales segun el SID que tuviera la maquina. Ese codigo de deteccion no es mio pero no se el nombre del autor como para agregarlo a los creditos.
Para hacer la historia corta, ese mismo dia tuve el sintetizador con 8 sonidos digitalizados, conservando algunas consonantes como sonidos "analogicos". Los sonidos fueron convertidos desde los sonidos fuente del proyecto PIC, que se encuentran en 16 bits y 44KHz, escalados a una cantidad de muestras arbitraria para este sintetizador, y almacenados dentro del programa. Para tener estos 8 sonidos digitalizados se requirio la impresionante cantidad de memoria de 256 bytes! (Para una ZX81 es mucho).
Lo que siguio a eso fue optimizar el programa para eliminar codigo repetido, ya que habia pasado la barrera de los 4K y queria que volviera a ocupar menos de eso, tambien trabaje en la transicion entre sonidos analogicos y digitales, ya que implica cambios drasticos de volumen y de tipo de filtro, lo que genera clicks indeseables en el sonido.
El programa, a pesar de que la interfaz es la misma, pasa a llamarse Synth64 Digi, por lo cual empezo nuevamente por la version alfa 1, y actualmente va por alfa 2.
Si se tiene un 6581 el sonido tiene el doble de volumen que con el 8580, pero los sonidos analogicos siguen saliendo al mismo volumen, lo cual me obligo a aumentarlos al 100% de volumen, cuando algunos se reproducian al 25%, ya que en el 6581 sonaban tan bajos en comparacion a los digitales que no se notaban. El problema es que en el 8580, donde lo digitalizado suena mas bajo, lo analogico sigue sonando igual, por lo cual en el 6581 suena mas normal y en el 8580 los sonidos como S o R se notan mas de lo que deberian. Se puede hacer alguna compensacion de volumen bajandolo en el 8580 pero ya es demasiado detalle y no quiero que vuelva a pasarse de los 4K. Actualmente el programa ocupa 3906 bytes de memoria, tengo igual 190 bytes para usar por si surge algo.
Adjunto el programa para que lo prueben, pero seria util que alguien diga algo.
Como que no tiene mucha gracia publicar versiones intermedias para que nadie haga de alfa o betatester, o que lo hagan pero no comenten los resultados.
El mensaje que habla al inicio es: retrocomputacion.com, Synth64 Digi Alfa 2, sintetizador listo.
En comandos seria: retrokomputasio+n pu+nto ko+m;si+nt sese+ntaikua+tro di+ji,a+lfa do+s.<sintetisado+r li+sto->