I’m Late é uma composição assistida por computador que eu entreguei como meu trabalho da cadeira de Computação e Música. Eu também gravei uma versão estendida (a versão original tinha que ter 30 segundos) e com a síntese de um instrumento diferente. Ambas podem ser ouvidas a baixo:

Versão Original

Versão Estendida

 

A idéia inicial era usar alguma biblioteca que conseguisse gerar eventos MIDI baseados numa entrada textual e obter daí uma melodia. Mais ainda, eu pretendia reconhecer palavras, extrair sua intonação característica e construir melodias de maneira pseudo-aleatória. Tudo isto deveria ser passado para um sintetizador bonitão.

No final das contas eu acabei não conseguindo um trabalho tão sofisticado por limitações de tempo e o resultado final não teve nada a ver com o planejado inicialmente. O que acabei fazendo foi uma brincadeira bem simples com threads e atrasos entre notas (daí o nome da composição).

Idéia

A idéia foi pegar uma sequência de arpegios simples (Bm Bm C Em F# F#) e criar várias threads tocando esta mesma sequência, porém começando em tempos diferentes e com pequenos atrasos relativos entre si. O resultado é bem interessante, se confrontado com a facilidade com que isto pode ser feito.

Ferramentas

Gravar esta composição foi um processo bem interessante, pois consegui entender bastante de como o som no ambiente Linux funciona (principalmente o Alsa). Os eventos MIDI foram gerados usando a linguagem Ruby e a biblioteca Midiator e foram sintetizados pelo ZynAddSubFX. A troca de eventos se deu com a ajuda do servidor de som Jack.

Código

Pode ser encontrado aqui juntamente com alguns outros experimentos interessantes

Disclaimer

Mais posts sobre computação e música a caminho. (talvez)