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.