Csound

Esta é uma introdução sumária à programação em Csound, uma linguagem de síntese de som e de música muito bem estabelecida e utilizada por compositores e designers de som modernos.

Se você é usuário de Linux, a introdução abaixo será suficiente. Caso seja usuário de Windows, você precisará baixar o ambiente de desenvolvimento no site oficial csound.com, mas poderá utilizar o tutorial a seguir sem alterações.

Instalação

Ubuntu e derivadas

Além do Csound em si, vamos instalar, na Ubuntu e em distribuições derivadas, um programa simples chamado sox para ouvir os sons sintetizados.

Para instalar ambos, digite no terminal:

sudo apt-get install csound sox

Windows

No Windows, vá á página csound.com e baixe o instalador na seção de downloads. Você programará dentro do programa CsoundQT, que vem incluído na instalação, acessível pelo menu do Windows.

Programando, compilando e ouvindo

A síntese de sons com Csound ocorre em três etapas:

  • na primeira, escrevemos um programa com instruções que descrevem os sons a serem sintetizados;
  • na segunda, compilamos esse programa, ou seja, executamos o Csound solicitando que ele transforme as instruções do programa em um arquivo de áudio;
  • na terceira, ouvimos o arquivo de áudio como ouvimos um arquivo de música qualquer.

Vamos detalhar com um exemplo simples e prático esse processo de programação, compilação e audição.

Programando

Todo programa em Csound tem três partes: configurações iniciais, instrumentos e partitura, estruturadas da seguinte maneira:

<CsoundSynthesizer>     ; Início

  <CsOptions>           ; Configurações
                        ; iniciais
  </CsOptions>          ;


  <CsInstruments>       ; Instrumentos
                        ;
  </CsInstruments>      ;


  <CsScore>             ; Partitura
                        ;
  </CsScore>            ;

</CsoundSynthesizer>    ; Fim

Tudo o que é escrito após um ponto-e-vírgula é um comentário. O Csound ignora comentários no processo de compilação, e por isso podemos utilizá-los para nos orientarmos pelo programa

Vamos a um exemplo prático. Abra um editor de texto e salve um arquivo com o nome senoide.csd.

Digite a estrutura global do programa:

<CsoundSynthesizer>

</CsoundSynthesizer>

Acrescente os blocos de instrumento e partitura (o bloco de configurações pode ser ignorado por enquanto):

<CsoundSynthesizer>

  <CsInstruments>             ; Instrumentos
                              ;
  </CsInstruments>            ;


  <CsScore>                   ; Partitura
                              ;
  </CsScore>                  ;

</CsoundSynthesizer>

Crie um instrumento, com as instruções instr 1 e endin:

<CsoundSynthesizer>

  <CsInstruments>             ; Instrumentos
    instr 1                   ; Instrumento 1
                              ;
    endin                     ; Fim instr. 1
  </CsInstruments>

  <CsScore>                   ; Partitura
                              ;
  </CsScore>                  ;

</CsoundSynthesizer>

Defina como será seu instrumento:

<CsoundSynthesizer>

  <CsInstruments>             ; Instrumentos
    instr 1                   ; Instrumento 1
      aSom  oscil 10000, 440  ; Criação do som
      out  aSom               ; Saída do som
    endin                     ; Fim instr. 1

  </CsInstruments>

  <CsScore>                   ; Partitura
                              ;
  </CsScore>                  ;

</CsoundSynthesizer>

A linha que cria o som é

aSom oscil 10000, 440

Isso significa que o som sintetizado, de nome aSom, será gerado pela função oscil, também chamada de opcode, com amplitude 10000 e frequência de 440 Hz.

Depois, o som será encaminhado para a saída out com a linha

out aSom

Criado o instrumento, uma senoide simples de 440 Hz, vamos escrever a partitura, que consistirá apenas de executar o instrumento 1 durante um intervalo de tempo que vai de 0 a 1 segundo:

<CsoundSynthesizer>

  <CsInstruments>             ; Instrumentos
    instr 1                   ; Instrumento 1
      aSom  oscil 10000, 440  ; Criação do som
      out  aSom               ; Saída do som
    endin                     ; Fim instr. 1
  </CsInstruments>

  <CsScore>                   ; Partitura
    i1 0 1                    ; Instr. 1 toca
  </CsScore>                  ; de 0 a 1 seg. 

</CsoundSynthesizer>

Compilando

O programa está escrito. Agora, é preciso compilá-lo, ou seja, fazer com que o Csound transforme essas instruções em um arquivo de som.

Execute o programa com o comando

csound senoide.csd -o senoide

Com isso, o Csound gerou, na mesma pasta em que você gravou o programa senoide.csd, um outro arquivo, chamado senoide, que é um arquivo de som.

Ouvindo

Se tudo deu certo, resta apenas ouvir o som sintetizado. Use, no Linux, o comando

play senoide

ou outro programa qualquer de reprodução de som. No Windows, basta dar dois cliques no arquivo para ouvi-lo.