Fred Lopes

deliberadamente tosco

Síntese de som

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:

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.