-
Sonic Pi: usar Ruby como herramienta de composición
-
Contexto
- El autor originalmente estudió música
- Mientras trabajaba como desarrollador web, se fue involucrando cada vez más en el trabajo técnico
- Intentó dedicarse a la música electrónica porque le resultaba difícil tocar varios instrumentos, pero fracasó
- Recientemente volvió a combinar música y programación a través de Sonic Pi
-
Introducción a Sonic Pi
- Sonic Pi, creado por Sam Aaron, es un sintetizador de software controlado por código
- Usa un lenguaje específico de dominio (DSL) que extiende Ruby para mapear conceptos de música y audio
- Por ejemplo, representa notas con símbolos como
:c4y usa generadores de acordes comochord(:d3, :maj7)
-
Objetivo del proyecto
- El objetivo era componer un demo usando únicamente Sonic Pi
- La composición se hizo puramente con código, sin usar MIDI ni muestras externas
-
Ejemplos básicos de código
- Se configura el BPM con
use_bpm 70y el sintetizador conuse_synth :pulse - Se reproducen notas y se establecen intervalos de tiempo con código como
play :c2,sleep 0.25 - Se reproduce un patrón con
play_pattern_timed [ :c3, :d3, :e3, :g3 ], 0.25
- Se configura el BPM con
-
Optimización del código
- Se definen funciones para reducir código repetido
- La función
def arpeggiate(root, is_minor = false)genera un patrón de arpegio - Se ejecuta código en paralelo usando bloques
in_thread do
-
Ejecución en paralelo
- Los bloques
in_thread dopermiten ejecutar dos “instrumentos” en paralelo - Por ejemplo, en un hilo se ejecuta un arpegio y en otro una melodía
- Los bloques
-
Implementación del coro
- Se usa
ringpara combinar varias notas en una sola lista - Las notas se reproducen y se configura su duración con algo como
play_pattern_timed [ring(:c5, :e5)], 4, sustain: 3.8 - Se define la función
def choral_rings(notes, sus)para simplificar el patrón coral
- Se usa
-
Live loops
live_loopse usa para crear bucles que se repiten indefinidamente- Se define un bucle como
live_loop :harp doy se escribe el código dentro
-
Conclusión
- Programar no es solo una ciencia, también es arte
- Escribir código es un acto creativo y una forma de comunicarse con otras personas
- Sonic Pi permite combinar música y programación para hacer trabajo creativo
Resumen de GN⁺
- Sonic Pi es una herramienta para componer música con código y usa un DSL que extiende Ruby
- Este proyecto tiene como objetivo componer un demo usando únicamente Sonic Pi
- La programación no solo tiene un lado científico, sino también uno artístico, y Sonic Pi lo demuestra muy bien
- Es un buen ejemplo de cómo se puede combinar música y programación para hacer trabajo creativo
- Herramientas con funciones similares incluyen TidalCycles y SuperCollider
1 comentarios
Opiniones de Hacker News