Categorias
Csound Síntese Som

Iniciação à síntese de som com Csound

Esta é uma introdução sumária ao uso da 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.

Antes de continuar a ler, vire seu celular de lado, caso você esteja lendo em um. A parte em que aparece o código-fonte é melhor lida em modo paisagem. Em verdade, só assim os comandos deixarão de “pular” para a linha seguinte, tornando tudo muito confuso.

Mas se você estiver lendo em um computador, é só continuar.

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.

Por Frederico Lopes

Frederico Andries Lopes é doutor em Educação Matemática pela UNESP/Rio Claro e professor associado do Instituto de Ciências Exatas da Universidade Federal de Mato Grosso, em Cuiabá.

É tradutor de textos antigos de matemática escritos principalmente em latim. Já publicou livros sobre o uso educativo de linguagens de programação, sobre gramática latina e história da matemática.

É pai orgulhoso dos trigêmeos Henrique, Ricardo e Valquíria e das gêmeas Laura e Leonora. Cuidar dessa turma é sua principal atividade. Tudo o mais são distrações e difficiles nugae.