Programar vs componer música

No es lo mismo programar que componer música. De lo primero algo sé (tampoco mucho 🙂 ); de lo segundo no sé nada.

Pero sí recuerdo algunas cosas de mis clases de solfeo de la EGB: los pentagramas, la clave de Sol, las octavas, las diferentes notas (do, re, mi, fa, sol, la, si, do), sus duraciones (redonda, blanca, negra, corchea, semicorchea, fusa y semifusa), los silencios, etc.

Adonde quiero llegar, está claro que un músico no compone canciones en términos de frecuencias, envolventes ADSR, formas de onda, y valores para registros. Más bien, al componer una melodía lo que hace el músico es registrar las notas (con sus octavas), sus duraciones, y, si acaso, podrá jugar con el volumen. Y esto para una o varias melodías o voces.

Por tanto, para separar claramente lo que es programación del SID y lo que es música o composición, una cosa que se puede hacer es llevar la información de notas / octavas, duraciones y volúmenes a unas tablas de información en memoria. De este modo, las tablas se cargarán con el trabajo del músico (la melodía o melodías), y el programador se limitará a leer esas tablas e interpretarlas en términos de programación del SID.

Por supuesto, no es obligatorio trabajar así, pero es un enfoque muy interesante, porque delimita muy bien lo que es el trabajo del músico (componer la melodía) y lo que es el trabajo del programador (programar el SID para reproducir la/s melodía/s).

Se trata de una idea que aparece descrita en el libro “Assembly Language Programming with the Commodore 64”. La forma de conseguirlo se verá detalladamente en las entradas que siguen.

Un comentario en «Programar vs componer música»

  1. Hola.

    En el capítulo 11 del libro «Retro Game Dev» hay otra idea interesante relacionada con la programación del SID. En realidad, es una extensión de la idea expuesta en esta entrada (llevar a una tabla de memoria la información de las octavas y notas).

    La idea consiste en llevar a esa tabla no sólo la información de las octavas y notas (es decir, los datos que describen la música), sino también los «comandos» del SID.

    De este modo, en esa tabla grabaríamos «comandos» para configurar la forma de onda, configurar el ADSR, configurar la frecuencia, activar el gating, meter un retardo / duración, desactivar el gating, etc. Una rutina leería esa tabla e iría ejecutando los «comandos» contra el SID.

    Cuando hablamos de «comandos» nos referimos a valores codificados (bytes) que la rutina reconoce y sabe interpretar, ejecutando los sta’s correspondientes contra el SID.

    A esta idea el libro la llama «execute buffer», y por lo visto es bastante habitual en la programación de gráficos (no gráficos del C64, sino programación gráfica en general).

    Es una idea útil y cómoda aunque, por buscarle alguna pega, mezcla más o separa peor lo que es música y lo que es programación.

    Un saludo.

    Me gusta

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s