.

Me sigo considerando un aficionado a los videojuegos aunque últimamente les dedico menos tiempo del que me gustaría. Aún no jugando tanto como antes me siguen llamando la atención casi todos los temas relacionados con esa actividad, que es por lo que acabé leyendo la explicación de un proyecto de Nolan Nicholson que vi en Hacker News:

Programé un script de Python que te permite poner ficheros .mp3 en bucle, sin cortes, contínuamente, basándose en un punto de repetición determinado automáticamente. Esto quiere decir que ahora puedes escuchar tu música de videojuego favorita en repetición, contínuamente, sonando como lo hace en el juego.

Incluso si no lo fuera a utilizar me parecería una idea interesante y es de agradecer que no sólo haya publicado el código, con licencia MIT, sino que también haya descrito el proceso implementado por las 177 líneas de código de su script.

Imagen que acompaña al texto Nolan Nicholson explicando su programa.

Ahora tendré que probarlo con la banda sonora de DOOM.

.

Hace más de once años mencionaba a Melodyne, un software que permitía editar notas individuales dentro de acordes o audio polifónico. Nunca intenté averiguar exáctamente cómo funcionaba, ni siquiera si dicha información ha estado disponible en algún momento. Se trata de software propietario y, por lo tanto, es bastante probable que su funcionamiento esté oculto. Si me equivoco que me corrijan, por favor.

Todo esto viene a cuento de uno de los enlaces que vi este fin de semana en Hacker News, apuntando a repositorio de GitHub de Spleeter. De ahí sale la siguiente descripción:

Spleeter es la biblioteca de Deezer para separación de señales con modelos escritos en Python y [que] usa Tensorflow. Facilita el entrenamiento de modelos de separación de señales (asumiendo que tiene un conjunto de datos de fuentes aisladas) y proporciona un modelo de última generación ya entrenado para realizar varios estilos de separación:

  • Separación de voces (voz cantada) / acompañamiento (2 derivadas).
  • Separación de voces / percusión /bajo / otros (4 derivadas).
  • Separación de voces / percusión / bajo / piano / otros (5 derivadas).

Los modelos de 2 derivadas y 4 derivadas tienen rendimientos de última generación sobre el conjunto de datos musdb. Spleeter también es muy rápido, ya que puede realizar la separación de ficheros de audio 100 veces más rápido que en tiempo real cuando se ejecuta en una GPU.

Logotipo de Spleeter.

Más allá de la utilidad de esta herramienta, es interesante conocer la razón de publicarla según el equipo que la ha desarrollado:

Una de las limitaciones difíciles que se encuentran los investigadores de MIR [N. del T.: siglas en inglés de Recuperación de Información Musical] es la falta de conjuntos de datos a disposición pública, por motivos de derechos de autor. Aquí, en Deezer, tenemos acceso a un catálogo bastante amplio que hemos estado aprovechando para construir Spleeter. Dado que no podemos compartir estos datos, convertirlos en una herramienta accesible es una manera con la que podemos hacer que nuestra investigación sea reproducible por todo el mundo. Desde un punto de vista más ético, creemos que no debería haber una competición injusta entre investigadores basada en el acceso a material con derechos de autor, o la falda de este.

Es muy interesante ver como ya hay gente que ha aprovechado esta herramienta para separar pistas de canciones populares para después utilizarlo en re-mezclas, como las pruebas que ha hecho Andy Baio. Veremos que nuevos mashups salen de todo esto.

.

Aunque una gran parte de mi tiempo la dedico a programar, el resto de mis obligaciones hace que no sea posible hacerlo poniéndome unos cascos con música o sonidos a mi gusto. Es una pena, porque tener que estar atento al entorno mientras debería estar concentrado en una tarea no me aporta más que distracciones.

Esta lamentación viene por los resultados de la encuesta de Stack Overflow de 2019 dirigida a desarrolladores que he visto mencionada en Metal Injection. Una de las secciones recoge las preferencias de los programadores encuestados a la hora de ponerse música para trabajar:

La red muestra las palabras que concurren con mayor frecuencia entre 56643 respuestas [a la encuesta de Stack Overflow de 2019 dirigida a desarrolladores]; las palabras con los puntos más grandes se utilzan más a menudo y las conexiones más pesadas indican palabras que se usan más a menudo en conjunción.

Las respuestas anónimas se pueden descargar bajo licencia ODbL 1.0, para los que tengan interés en analizar los resultados.

El apartado de la encuesta sobre la música me ha recordado algo similar que vi en hypebot el año pasado, los resultados una encuesta de Accountemps a más de 1000 trabajadores estadounidenses sobre sus hábitos de escuchar música en el trabajo y las preferencias de genero musical en ese contexto. Los primeros incluyen además una observación sobre la productividad en el trabajo, donde un 71% de los encuestados se siente más productivo, en mayor o menor medida, escuchando música mientras trabaja.

.

El año pasado hice algunas representaciones minimalistas de escalas sobre un diapasón de guitarra, primero aisladas, como una de blues en La mayor y menor, y luego superpuestas en una especie de mapa de calor. Programé un objeto en JavaScript que, como buen ejercicio de sobre-ingenierización, permite representar en HTML y/o SVG un cordófono definido por un número de cuerdas arbitrario (al igual que la entonación y el número de trastes de cada cuerda) y marcar sobre dicho objeto notas, intervalos o escales de forma idempotente o aditiva.

No llegué a publicar el código, que además está comentado con JSDoc, porque sólo se trataba de un divertimento personal. En algún momento me plantee si me serviría como impulso para replantear el mezclador de escalas que programé hace más de una década.

Evidentemente, no es una idea especialmente original y por eso no me sorprendió encontrarme en Hacker News con Scaler, una herramienta para crear esquemas de escalas en una guitarra.

Esquema de un blues en La, según Scaler.

Estoy de acuerdo con algunos de los comentarios sobre el exceso de información visual inicial pero estoy seguro que se le puede sacar partido.

.

Publicaban ayer por la tarde un artículo en IEEE Spectrum sobre los usos musicales de las primeras computadoras. En él se postula que el primer texto donde se indica cómo generar sonido con una máquina computadora se encuentra en la página 24 del Programmers’ Handbook de Turing que se puede ver dentro de los documentos sobre las máquinas de Manchester. Según el artículo, Turing preparó dicho manual con antelación al despliegue en 1951 de la Manchester Mark II basándose en su trabajo de diseño de programación de la Manchester Mark I, desarrollada entre 1947 y 1948.

El manual toca brevemente sobre la capacidad de la máquina de Manchester de generar un tono gracias a una instrucción que enviaba un impulso al diafragma del altavoz, al que denomina «Hooter». El impulso producía, según el manual, sonidos que se podían percibir como «algo entre un toque, un chasquido y un golpe». Sugería que el programador podía aprovecharse de esto ya que, «introduciendo instrucciones de hoot en puntos adecuados[,] uno puede «escuchar» el progreso de la rutina. Un cierto indicio de lo que está ocurriendo es dado por el ritmo de los chasquidos que se oyen».

Turing también indica en su texto que enviando impulsos «de forma repetida y rítmica[,] una nota, rica en armónicos, se puede producir» y, de nuevo, confiere a esta capacidad una función puramente pragmática: para indicar al operario el estado de la ejecución de un programa. Esto se podía hacer repitiendo un ciclo de instrucciones que tuvieran una de hoot. El bucle más sencillo tenía una instrucción de hoot y otra de repetición. Como se esboza en el manual y describen en el artículo:

El tiempo que una computadora usa en ejecutar una instrucción se mide […] en ciclos de reloj: para mantener la sincronía de sus circuitos, una computadora tiene un reloj maestro, y sólo a cada paso de este reloj los resultados de un conjunto de circuitos son aceptados por el siguiente.

[N. del T.: El artículo señala que la Manchester Mark II tenía un reloj de algo más de 4 KHz, es decir, cuatro mil ciclos por segundo. En el apartado del manual dedicado al Hooter se indica que ocho ciclos equivalen a 1.92 ms con lo que la frecuencia del reloj sería de 4.16 Hz.]

La instrucción de hoot necesitaba cuatro ciclos, enviando un pulso de un ciclo de duración al altavoz en el cuarto ciclo. La instrucción de bucle o repetición también requería cuatro ciclos así que, al hacer un bucle, el pulso se enviaba una vez cada ocho ciclos, o a una frecuencia de unos 521 hercios, que es muy cercana a la de la nota Do5. [N. del T.: el manual de Turing dice que el tono es cercano a un Do central (Do4) pero en afinación La 440 la frecuencia más cercana es la del Do5, de 523,25Hz.] Turing se dio cuenta que utilizando múltiples instrucciones de hoot dentro del bucle y/o instrucciones «de pega» [denominadas «dummy» en inglés] en las que la computadora «desperdiciase» ciclos ejecutándolas, podía variar el tiempo entre pulsos, creando notas con distintas frecuencias. Por ejemplo, dos hoot consecutivos seguidos de la instrucción de bucle producirían un Fa4.

Esta función de la máquina sería la que Christopher Strachey para añadir por cuenta propia «God Save the King» al programa que Turing le encargó —quizás como novatada— para que la máquina comprobase su propio estado. Strachey había visitado por primera vez los laboratorios de Manchester en julio de 1951 y la tarea le llevó unos meses.

Sin embargo, esta no fue la primera instancia de música generada por máquina computadora. En la Australian Conference on Automatic Computing Machines de agosto de 1951 en Sydney, la máquina CSIRAC ya estaba generando melodías. Y existe un caso todavía anterior.

En agosto de 1949 la Eckert-Mauchly Computer Corporation completó BINAC. El equipo lo celebró con una fiesta que tuvo una aportación musical de la propia máquina. El artículo de IEEE Spectrum identifica a Frances Elizabeth «Betty» Snyder Holberton, una de las seis programadoras originales de la ENIAC, como la autora de la rutina musical, que desarrolló trabajando por la noche. Rememorando sus tiempos de programación para la BINAC contó que «estaba con la máquina 16 horas [con] 8 horas de descanso y dormía en el aseo de señoras». La programadora recordó también que, en la fiesta inaugural, su programa reprodujo la congratulatoria «Es un muchacho excelente» dado que sólo podía generar notas dentro de una octava. Curiosamente, en el vídeo que acompaña al artículo señala la conveniencia de añadir un altavoz a la máquina para poder saber lo que se estaba ejecutando por el sonido, tal y como sugirió Turing en su manual.

Betty Holberton programando la ENIAC, según lo descrito en la Wikipedia.