Neste semestre estou me dedicando a um trabalho na faculdade, um pouco por obrigação e um pouco por diversão. É um projeto que envolve um música, matemática e computação e eu espero que consiga mostrar para vocês alguns resultados legais, porém é provável que até o final do semestre eu só tenha acabado a parte chata D:

De qualquer forma, remexendo um pouco pelos canos da internet eu encontrei essa linguagem chamada ChucK e devo dizer que ela faz juz ao nome que carrega.

chuck logo

A idéia dela é ser uma linguagem de script, voltada para geração sons, com enfâse na corretude do tempo (strongely-timed como descrito na página do projeto) e suporte para programação on-the-fly (enquanto o programa está em execução). A linguagem possui construções interessantes para representar o tempo e fazer uns sons básicos é uma barbada.

Exemplo

Este programa, que fiz seguindo o tutorial, fica tocando em loop alguns blips e bloops randômicos (me lembra um pouco da música dos jogos Metroid :)

SinOsc s => dac;

while (true) {
    300::ms => now;
    Std.rand2f(30.0,1000.0) => s.freq;
}

Problemas com x64

Use sistemas operacionais 64 bits eles disseram, você não terá problemas eles disseram…

A arquitetura 64 bits contra ataca e eu tive problemas rodando ele num Linux x64. A solução é compilar o ChucK num pc 32 bits e pegar o executável… eu sei, eu sei… pelo menos funciona.

Sintaxe Colorida :)

No embalo de aprender algo novo eu fiz a definição da sintaxe do ChucK para o editor gedit (que eu curto muito) e ela pode ser encontrada aqui, com instruções de instalação. É possível também que funcione com outros editores baseados em GTk.

Sintam-se livres para contribuir com o projeto.

Enfim…

aproves

Chuck Norris aprova a linguagem ChucK.

Por enquanto é isso… não percam a esperança nesse blog e,  como eu sei que vocês gostam do que eu posto, me incentivem nos comentários que eu tento voltar mais seguido.