Buenas, contesto por alusiones
Un fichero SID no es más que un programa que se ha compilado en lenguaje máquina.
¿De donde sale la fuente de ese programa?
Puede salir de varios sitios. Hoy en día, lo más común es que salga desde un editor nativo como puede ser el SIDWizard, o desde un editor externo de Windows como es el Goattracker.
En sus primeros años musicales (década de los 80´s y principios de los 90´s), los primeros "SIDs" se creaban directamente en un editor ensamblador, el cual contenía la "routine player" (el motor para la música) y los datos propios de la melodía a componer como son los sonidos o efectos, las notas propias de las melodías (tunes o sub-tunes) y efectos a usar por las melodías (vibrato, filtros, modulaciones de anillo, formas de onda, trémolos, etc).
Por tanto, en nuestro código ensamblador para la música veríamos en primer lugar todas las instrucciones (LDA, STA, BNE, etc..), de la routine player y mas abajo, mogollón de datos (datas), que serviran para dar vida a nuestra melodía.
¿Como se hacía la música desde el editor ensamblador?
Pues era una tarea durísima en la cual a base de prueba y error, ibas alterando los parámetros del SID para lograr crear los sonidos que necesitaba la música (bajos, cajas "snare", bombos, acordes arpegiados, solos "leads", vibes, pics, flautas, violines simulados (Sanxion), etc.
¿Y las melodías?
Pues de igual forma, ibas metiendo datos con la nota que iba a sonar (Do, Re, Mi, Fa.....) y su duración en milisegundos, por ejemplo, éste data: $40,$32 significa que vamos a tocar un DO en la tercera octava del SID durante 2 segundos. Luego claro está, tendremos que meter datas adicionales para decir que sonido del banco disponible va a sonar, si ese sonido va a tener un vibrato, filtro, modulación, forma de onda, etc, y durante cuanto tiempo va a usarse ese efecto en nuestra nota musical, también podemos meter mas datas para controlar el ADSR del sonido:
Ataque = El tiempo que tardará el sonido en alcanzar el volumen máximo que pongamos.
Decaimiento = El tiempo que tardará el sonido en alcanzar el volumen de sostenimiento.
Sostenimiento = El tiempo que el sonido se va a sostener en duración y volumen.
Relajación = El tiempo que tardará el sonido en alcanzar el volumen mínimo que pongamos.
Básicamente para entenderlo un poco mejor, el "Ataque" es el nacimiento del sonido, el "Decaimiento" y "Sostenimiento" es la vida que va a tener el sonido y la "Relajación", corresponde a la muerte del sonido o como éste va a desaparecer y dejarse de oír.
Y ya con todas éstas nociones, pues te ponías a meter datos y mas datos musicales hasta que por fin, compilabas el programa y al ejecutarlo deberías escuchar una hermosa melodía creada para nuestro querido SID.
¿Y hoy en día, como se hacen los SIDs?
Afortunadamente, hoy en día tenemos "editores/trackers" como antes he comentado (SIDWizard, GoatTracker), los cuales nos facilitan mucho la labor de crear música para el SID.
Si bien, en éstos editores, todavía tenemos que crear nuestro sonidos y efectos a base de meter datos (eso apenas ha cambiado), a la hora de componer las notas de nuestras melodías, tendremos la facilidad y claridad que un tracker nos ofrece. Eso si, tu imaginación, destreza y arte para decidir como va a ser la melodía que vas a crear siempre es de la misma forma. Ya sea simplemente tarareando esa melodía (eso hago yo), o improvisando con un piano, flauta, silvando o lo que sea, siempre ha sido y será así.
Bueno, perdonarme el tocho pero creo que ha valido la pena.