Cómo componer música con una sola línea de código

Descubriendo las poderosas capacidades de los programas C de una sola línea

En esencia, un programa bytebeat es un pequeño programa en C que consta de un bucle infinito, que envía al terminal una cadena interminable de caracteres ASCII. Estos caracteres se pueden canalizar a otro programa e interpretar como salida de audio sin procesar.

Al influir en una variable t mediante operaciones bit a bit en cada iteración del bucle, nos aseguramos de que la salida de la fórmula siempre será de un carácter diferente, por lo que se escucharán diferentes combinaciones de sonidos.

La belleza de un programa bytebeat proviene de su simplicidad. Con una línea de código, el programador tiene la capacidad de crear piezas de audio complejas solo manipulando una sola variable.

Al leer los primeros artículos de Viznut sobre el tema, es interesante notar su propio sentimiento de desconcierto al descubrir que algo tan simple nunca pareció haber llamado la atención de nadie antes.

“Una fórmula de Bytebeat es un arreglo simple de operaciones aritméticas digitales que han sido elementales para las computadoras desde el principio. Aparentemente es algo que debería haberse descubierto hace décadas, pero no fue así.

Es alucinante pensar que el espacio de los programas muy cortos permanece tan inexplorado que las excursiones aleatorias allí pueden producir nuevas estructuras interesantes incluso después de setenta años ". - Viznut, devolviendo la magia a la tecnología

Recuperando un sentido de "magia" en el acelerado mundo tecnológico actual “Una definición de magia es que rompe las ideas preconcebidas de la gente sobre lo que es posible. Para desafiar y ridiculizar la hinchazón tecnológica actual, debemos apuntar particularmente a descubrimientos que son demasiado simples y aleatorios para funcionar, pero que aún funcionan ", Viznut, Devolviendo la magia a la tecnología

En la infancia de la historia de la computación, el término "magia" se usaba a menudo para describir un programa que funciona pero con una oscura razón de por qué. Los ingenieros estaban constantemente incursionando en territorios inexplorados y cada nuevo descubrimiento tenía el potencial de crear magia, un proceso tan inteligente y fascinante que su mecanismo es difícil de comprender.

Los informáticos del Laboratorio de IA del MIT comenzaron a escribir y compartir sus notas personales sobre los hallazgos con los que se tropezarían y recopilaron, en palabras de Guy L. Steele, "un popurrí extraño y ecléctico de trivialidades técnicas".

Estas notas ahora se conocen como HACKMEM (abreviatura de hack memos) y, aunque no se las menciona tanto hoy en día,son un registro increíble de conocimientos sobre las mentes de ingenieros influyentes de ese período.

El Laboratorio de IA del MIT también participó en la creación del Jargon File, un glosario de palabras y expresiones de jerga utilizados por programadores de computadoras.

Al mirar la definición de "magia" y en los archivos de jerga, esto es lo que encontramos: magia

1. adj. Aún inexplicable o demasiado complicado de explicar; compare automágicamente y la Tercera Ley de (Arthur C.) Clarke: "Cualquier tecnología lo suficientemente avanzada es indistinguible de la magia". "El eco de TTY está controladopor una gran cantidad de bits mágicos". "Esta rutina calcula mágicamente la paridad de un byte de 8 bits en tres instrucciones".

2. adj. Característica de algo que funciona aunque nadie realmente entiende por qué (esto se llama especialmente magia negra).

3. [Stanford] Una característica que generalmente no se publicita y que permite algo de otra manera imposible, o una característica que anteriormente estaba en esa categoría pero ahora se reveló.

4. El objetivo final de toda la ingeniería y el desarrollo, la elegancia al extremo; del primer corolario de la Tercera Ley de Clarke: "Cualquier tecnología que se distinga de la magia no está suficientemente avanzada"

Definición de magia, The Jargon File

En relación al bytebeat, se destaca otro término que se encuentra en el Jargon File: hack value: n.

A menudo se aduce como la razón o la motivación para dedicar un esfuerzo hacia un objetivo aparentemente inútil, el punto es que el objetivo logrado es un truco. Por ejemplo, MacLISP tenía funciones para leer e imprimir números romanos, que se instalaron únicamente por su valor de pirateo. […] Esto realmente no se puede explicar, solo se experimenta. Como dijo una vez Louis Armstrong cuando se le pidió que explicara el jazz: "Hombre, si tienes que preguntar, nunca lo sabrás".

- Definición de valor de pirateo, The Jargon File

Posiblemente una de las razones por las que bytebeat tomó por asalto a la comunidad de hackers y Demoscene es su alto valor de pirateo.

En la demostración, los artistas y los programadores se unen para crear programas a veces extremadamente pequeños que producen un resultado artístico. Luego, las demostraciones se presentan en varios concursos y los ganadores se eligen de acuerdo con el valor de pirateo de su demostración: un equilibrio entre un código extremadamente eficiente, resultados artísticos impresionantes y la simplicidad y elegancia del programa.

Ojos hacia el futuro Aunque bytebeat es un movimiento clandestino, todavía está vivo en 2020. Algunos programadores e investigadores han estado invirtiendo energía en el desarrollo de varios programas en torno a la teoría de bytebeat.

Una de esas aplicaciones modernas de bytebeat que vale la pena mencionar es Rampcode: un sistema de codificación en vivo construido sobre PureData, creado por el profesor de filosofía, músico y codificador creativo argentino Gabriel Vinazza (también conocido como GEDE).

Pensamientos finales Tal vez el hecho de que tan pocas personas tengan todavía que experimentar con bytebeat signifique que todavía quedan muchos descubrimientos interesantes por hacer sobre el tema. Después de todo, su concepto sirve como recordatorio de que, no importa lo lejos que llegue la tecnología, hay belleza y, sí, magia, que se encuentra en las cosas más simples.