Ruby como ferramenta de composição: Sonic Pi
(bhmt.dev)-
Sonic Pi: usando Ruby como ferramenta de composição
-
Contexto
- O autor originalmente estudou música
- Ao trabalhar como desenvolvedor web, acabou se envolvendo profundamente com trabalho técnico
- Teve dificuldade para dominar vários instrumentos e tentou música eletrônica, mas sem sucesso
- Recentemente, voltou a unir música e código por meio do Sonic Pi
-
Introdução ao Sonic Pi
- Sonic Pi, criado por Sam Aaron, é um sintetizador de software controlado por código
- Ele usa uma linguagem específica de domínio (DSL) que estende Ruby para mapear conceitos musicais e de áudio
- Por exemplo, representa notas com símbolos como
:c4e usa construtores de acordes comochord(:d3, :maj7)
-
Objetivo do projeto
- O objetivo era compor uma demo usando apenas o Sonic Pi
- A composição foi feita puramente com código, sem usar MIDI nem samples externos
-
Exemplo básico de código
- Define o BPM com
use_bpm 70e o sintetizador comuse_synth :pulse - Reproduz notas e define intervalos de tempo com código como
play :c2,sleep 0.25 - Reproduz padrões com
play_pattern_timed [ :c3, :d3, :e3, :g3 ], 0.25
- Define o BPM com
-
Otimização do código
- Define funções para reduzir código repetido
- A função
def arpeggiate(root, is_minor = false)gera padrões de arpejo - Usa blocos
in_thread dopara executar código em paralelo
-
Execução paralela
- Blocos
in_thread dopermitem executar dois "instrumentos" em paralelo - Por exemplo, um thread executa o arpejo e outro executa a melodia
- Blocos
-
Implementação de coro
- Usa
ringpara combinar várias notas em uma única lista - Reproduz notas e define sua duração com algo como
play_pattern_timed [ring(:c5, :e5)], 4, sustain: 3.8 - Define a função
def choral_rings(notes, sus)para simplificar padrões de coro
- Usa
-
Live loops
- Usa
live_looppara criar loops que se repetem infinitamente - Define loops como
live_loop :harp doe escreve o código dentro deles
- Usa
-
Conclusão
- Programação não é apenas ciência, mas também arte
- Escrever código é um ato criativo e uma forma de se comunicar com outras pessoas
- O Sonic Pi permite combinar música e programação para criar trabalhos criativos
Resumo do GN⁺
- Sonic Pi é uma ferramenta para compor música com código e usa uma DSL que estende Ruby
- Este projeto tem como objetivo compor uma demo usando apenas o Sonic Pi
- Programação tem não só um lado científico, mas também artístico, e o Sonic Pi mostra isso muito bem
- É um bom exemplo de como combinar música e código para realizar trabalho criativo
- Ferramentas com funcionalidades semelhantes incluem TidalCycles e SuperCollider
1 comentários
Comentários do Hacker News