Programação Criativa Musical

berin | Bernardo Fontes

25 de Fevereiro de 2021

Olar!


berinfontes.com

berinfontes.com/talks

Documento no Google Drive

Sketches

berinhard.github.io/sketches

pyp5js

Colabore com o projeto no Github | Live demo

Pietro Bapthysthe

Spotify | Bandcamp | Internet Archive

### Minha proposta - Visão geral de **ferramentas**, **comunidades** e **artistas-programadores** - Mão**S** na massa com **FoxDot** - Quem quiser, pode adiantar a **[instalação](https://foxdot.org/installation/)** (opcional)
### Programação Criativa para Som - Muita **diversidade** tecnológica - Cada ferramenta/biblioteca tem **influência na estética** final - Pedra fundamental: **SuperCollider**
  • Plataforma para síntese de som e composição algorítmica
  • Software livre
  • scsynth: servidor para processar o som em tempo real
  • sclang: linguagem interpretada para operar o servidor
  • scide: IDE com vários facilitadores
  • sc3-plugins: repositório colaborativo de UGens (unit generator) criados pela comunidade
  • Utilizado por várias outras tecnologias para a prática de live coding
### Exemplo de código ``` // modulate a sine frequency and a noise amplitude with another sine // whose frequency depends on the horizontal mouse pointer position // and pink noise depends on the vertical { var x = SinOsc.ar(MouseX.kr(1, 100)); var y = SinOsc.ar(MouseY.kr(1, 100)); SinOsc.ar(300 * x + 800, 0, 0.1) + PinkNoise.ar(0.1 * y + 0.1) }.play; ```
### Experimentando um piano ``` ( { MdaPiano.ar( LFNoise0.kr(1).range(20, 60).round.midicps, // random note stereo: 0.5, vel: LFPar.kr(0.1).range(10, 100), // varying velocity mul: 0.2 ) }.play ) ```
### Definindo o som do nosso piano ``` ( SynthDef(\help_mdapiano, { |out=0, freq=440, gate=1| var son = MdaPiano.ar(freq, gate, release: 0.9, stereo: 0.3, sustain: .5); DetectSilence.ar(son, 0.01, doneAction:2); Out.ar(out, son * 0.1); }).add; ) ```
### Criando nossa peça ``` ( TempoClock.default.tempo = 1.2; Ppar([ Pbind( \instrument, \help_mdapiano, \degree, Pseq([ 0, 7, -5, 7, 0, 5, -7, 5, -2, 5, -7, 5, -2, 3, -9, 3, 0, 7, -5, 7, 0, 5, -7, 5, -2, 5, -7, 5, -2, -3, -4, -5 ], inf), \dur, 1.5, \octave, 3, \root, 3, \vel, Prand([Pseq([100, 30, 50, 10]), Pseq([100, 30, 10, 10, 5, 10, 20, 30])], inf), \legato, 2 ), Pbind( \instrument, \help_mdapiano, \degree, Pseq([ \, 0, -1, 7, 2, 0, \, \, \, 0, -2, \, \, -2, -4, \, \ ], inf), \dur, 0.5, \octave, 6, \root, 3, \vel, Pwhite(50, 100, inf) ) ], inf).play ) ```

Opiniões e visões

  • Muito verstátil e poderoso
  • Comunidade ativa
  • Excelente para se explorar timbres únicos
  • Linguagem de programação que utiliza muito símbolos e isso pode ser confuso
  • Operacional relativamente complexo para prática de live coding
  • Artistas-programadores: Gil Fuser (São Paulo), bgola (Brasil/Berlim)
### Em cima do SuperCollider - SonicPi - TidalCycles - **FoxDot**
  • Instalação e experimentação são bem fáceis
  • Muito material e tutoriais de qualidade (mehackit!!!)
  • Fácil adaptação de notações da teoria da música para o código
  • Artistas-programadores: Sam Aaron (criador) e Bitkids

Exemplo de código


  • Comunidade muito ativa e com excelente fórum (Tidal Club)
  • Linguagem minimalista favorece muito a prática de live coding
  • Bastante fundamentado no uso de samples
  • Escrito em Haskel, mas bem mais simplificado e acessível
  • Artistas-programadores: yaxu | Alex McLean (criador), djalgoritmo, Ghales e beise.
### Exemplo de código ``` d1 $ sound "bd sd:1" d2 $ sound "hh hh hh hh" d3 $ sound "arpy" ```
  • Escrito em Python ❤️
  • Meio campo entre minimalismo experimental e notação musical "clássica"
  • Já vem com um amplo conjunto de sintetizadores e samples próprios
  • Fácil extensão e, por conta disso, existem vários forks do projeto
  • Artistas-programadores: Qirky | Ryan Kirkbride (criador), CrashServer e Pietro Bapthysthe
  • É o que vamos experimentar!
### Comunidades e Eventos - [TOPLAP](https://toplap.org/) - organização de 2004 para promover o Live Coding - Movimento das [Algoraves](https://algorave.com/) - [Algorave Brasil](https://algoravebrasil.ml/) - [CLiC](https://colectivo-de-livecoders.gitlab.io/) - Colectivo de Live Coders (Argentina) - [flok.click.cf](https://flok.clic.cf/) - nó criado pelo CLiC utilizando o projeto [flok](https://github.com/munshkr/flok)
## **Bora fazer um som!!!**

Obrigado!

berin | Bernardo Fontes

berinfontes.com