3 pontos por GN⁺ 2024-08-11 | 1 comentários | Compartilhar no WhatsApp
  • 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 :c4 e usa construtores de acordes como chord(: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 70 e o sintetizador com use_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
  • 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 do para executar código em paralelo
  • Execução paralela

    • Blocos in_thread do permitem executar dois "instrumentos" em paralelo
    • Por exemplo, um thread executa o arpejo e outro executa a melodia
  • Implementação de coro

    • Usa ring para 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
  • Live loops

    • Usa live_loop para criar loops que se repetem infinitamente
    • Define loops como live_loop :harp do e escreve o código dentro deles
  • 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

 
GN⁺ 2024-08-11
Comentários do Hacker News
  • Se você tem interesse em live coding, vale a pena experimentar o Glicol
  • TidalCycles também é recomendável. Elogia a capacidade de Haskell e Ruby de criar DSLs
  • O design da linguagem do Glicol dá ênfase a uma sintaxe inspirada em sintetizadores, à velocidade de composição e à praticidade do sound design
    • O objetivo é projetar uma DSL que reflita hábitos de programação existentes, mas sem ficar presa a linguagens já existentes
  • Ruby é muito útil porque sua sintaxe é quase como inglês
  • Já vi uma apresentação ao vivo de Sam Aaron, criador do Sonic Pi
    • Foi impressionante ver a música evoluir a cada mudança no código
  • Como desenvolvedor Ruby, acho isso muito interessante, porque parece que dá para usar para criar música gerada por algoritmos
    • Por exemplo, parece que daria para usar isso para transformar eventos barulhentos de um repositório git em música algorítmica
  • Como músico, gravar e fazer loop com um teclado MIDI ou instrumento acústico oferece uma UX melhor
    • Dá para inserir qualquer coisa usando uma DSL em Ruby, mas a UX não é boa quando comparada a um teclado de piano
    • Acho que eu não usaria isso para substituir o Logic
  • Como outra abordagem para música programada, recomenda o scamp para Python
    • O autor publicou vários vídeos no YouTube
  • Alguns anos atrás, vi um vídeo no YouTube recriando o THX Deep Note usando Sonic Pi
    • No começo, não explicava o que iria fazer; ia ajustando o som aos poucos e no fim criava o Deep Note
    • É uma pena não conseguir encontrar esse vídeo de novo
  • Recentemente estive pensando no Sonic Pi e assisti a alguns vídeos
    • Cheguei a usá-lo por pouco tempo alguns anos atrás
  • Comentários HTML não estão funcionando direito. O editor converte dois hífens em um travessão
  • Deixa uma mensagem de apoio ao live coder do Sonic Pi alsoknownasrox
  • É uma demo realmente muito legal
    • Mas o layout do site quebra no Safari