O Raspbian contém uma aplicação fabulosa: o Sonic Pi. Desenvolvido com apoio da Raspberry Pi Foundation, o Sonic Pi permite gerar sons e músicas escrevendo código. Você pode inclusive alterar o código enquanto ele está sendo executado, o que facilita experimentações.
Se você tem dúvidas de como instalar o sistema operacional Raspbian na Raspberry Pi, você pode acessar nosso post sobre o assunto.
Ouvindo o Som Gerado pelo Raspberry Pi
A forma mais simples de saída do som (e o padrão do Raspbian) é através do HDMI. Se você ligar a uma TV, o som sairá pelos alto-falantes dela (se ela tiver conectores de saída de áudio, você poderá ligar a um amplificador). Alguns monitores HDMI possuem também alto falantes ou conectores de saída de áudio.
Se o seu monitor não tratar o som recebido via HDMI (e você não estiver usando um Raspberry Pi Zero) podemos usar o conector de áudio e vídeo. Vou assumir aqui que você tem um Raspberry “moderno” (B+, 2 ou 3), com o conector de 3.5mm de áudio e vídeo com quatro polos. Você pode conectar nele sem problemas um cabo ou fone de ouvido com três polos. Você pode também conectar um cabo estéreo com conectores RCA na outra ponta, porém atenção que existem padrões diferentes:
Os cabos que eu encontrei à venda correspondem ao “Camcoders” da tabela acima. Para usá-lo com o Raspberry, inverta na ligação os conectores RCA de vídeo e audio direito (normalmente amarelo e branco).
O áudio gerado pelo conector tem qualidade inferior ao do HDMI e você precisará mudar a configuração de áudio. No desktop do Raspbian, clique com o botão direito o ícone de alto-falante no topo da tela:
Executando o Sonic Pi
O Sonic Pi está no menu do desktop do Raspbian:
A tela principal do Sonic Pi tem quatro áreas de interesse inicial:
- Botões de controle. Play inicia a execução do programa no buffer atual (ou atualiza a execução após uma alteração). Stop para a execução. Load e Save permitem carregar e salvar programas.
- Esta é a área de edição do programa.
- Você pode ter até 10 programas carregados no Sonic Pi. Os botões de controle utilizam o buzzer que estiver selecionado (na tela acima, o Buffer 3).
- Na parte de baixo temos a ajuda, que inclui um tutorial e exemplos
Tocando notas no Sonic Pi
Vamos começar do mais simples (daqui para frente fica mais interessante se você acompanhar no Raspberry Pi). O comando play dispara uma nota e o comando sleep suspende o programa por um tempo (mantendo a execução da nota):
play 60 sleep 0.5 play 62 sleep 0.5 play 64 sleep 0.5 play 65 sleep 1 play 65 sleep 0.5 play 65 sleep 0.5
O número após o play indica a nota a tocar (60 = Dó, 62 = Ré, etc). O tempo para o sleep é em segundos.
O comando play_pattern toca uma série de notas com a velocidade definida por use_bpm (beats per minute, notas por minuto):
use_bpm 120 play_pattern [60, 62, 64, 65] sleep 0.5 play_pattern [65, 65]
Podemos repetir várias vezes (no caso três) um trecho:
use_bpm 120 3.times do play_pattern [60, 62, 64, 65] sleep 0.5 play_pattern [65, 65] sleep 2 end
Tocando sons diferentes
Os sons tocados por play são gerados por um sintetizador. Existem vários sintetizadores implementados no Sonic Pi, o comando use_synth seleciona o sintetizador usado para as notas seguinte:
use_synth :piano use_bpm 120 3.times do play_pattern [60, 62, 64, 65] sleep 0.5 play_pattern [65, 65] sleep 2 end
Uma outra forma de obter sons diferentes é tocando um sample. O simple é uma gravação, você pode mudar alguns parâmetros da execução mas aqui não existe o conceito de nota.
do sample :drum_heavy_kick, pan: 0.5 sleep sample_duration :drum_heavy_kick sample :drum_cymbal_pedal, pan: -0.5 sleep 0.5 end
Neste exemplo eu usei o modificador pan, que controla onde o som será tocado na saída estéreo. pan varia de -1 (esquerda) a 1 (direita).
O do/end sem nenhuma modificação é um loop “infinito” (até você parar a execução).
Efeitos
Os sons gerados podem ser alterados por efeitos antes de serem enviados para a saída. Por exemplo:
do use_synth :fm with_fx :flanger do play_chord [:C4, :E4] sleep 0.3 play_chord [:D4, :F4] sleep 0.3 play_chord [:E4, :G4] end end
Aqui estamos usando o sintetizador “fm” e o som passa pelo efeito “flanger”. O comando play_chord toca simultaneamente várias notas. Ao invés de selecionar as notas por números eu usei os seus nomes. :C4 indica o quarto (4) dó (C) em um piano padrão.
Múltiplas faixas
Vamos encerrar esta descrição rápida mencionando a possibilidade de tocar múltiplas faixas em paralelo. Para isto existem os comandos in_thread e live_loop. No exemplo abaixo temos três faixas (bateria, baixo e melodia):
live_loop :bateria do sample :drum_heavy_kick, pan: 0.5 sleep sample_duration :drum_heavy_kick sample :drum_cymbal_pedal, pan: -0.5 sleep 0.3 sample :drum_heavy_kick, pan: 0.5 sleep sample_duration :drum_heavy_kick sample :drum_cymbal_pedal, pan: -0.5 sleep 0.3 end live_loop :baixo do sync "/live_loop/bateria" sleep 0.05 use_synth :hollow play :C2, amp: 0.8, attack: 0.02, sustain: 0.1, decay: 0.05 sleep 0.3 play :D2, amp: 0.8, attack: 0.02, sustain: 0.1, decay: 0.05 sleep 0.3 play :E2, amp: 0.8, attack: 0.02, sustain: 0.1, decay: 0.05 end live_loop :melodia do sync "/live_loop/bateria" use_synth :fm with_fx :flanger do play_chord [:C4, :E4] sleep 0.3 play_chord [:D4, :F4] sleep 0.3 play_chord [:E4, :G4] end end
Um problema ao tocar faixas em paralelo é como sincronizá-las. Os comandos sync no programa acima aguardam que a faixa especificada esteja no início do loop. Este programa usa também uns modificadores no som do “baixo”: amp controla a amplitude e attack/sustain/decay controlam a forma do “envelope” do som (attack define o tempo da subida de volume no início da nota, sustain o tempo que ela permanece no volume máximo e decay o tempo da queda no final da nota).
Para aprender mais
Este artigo menciona de forma rápida apenas alguns recursos do Sonic Pi. A melhor (e mais divertida) forma de aprender mais é brincando com ele. Se você não tiver um Raspberry, não tem problema: existem versões também para PCs. A ajuda dentro do próprio software contém o tutorial / manual.
A referência básica para o Sonic Pi é o site oficial: https://sonic-pi.net/, nele você encontra links para outras referências, como este e-book:
https://www.raspberrypi.org/magpi/issues/essentials-sonic-pi-v1/
Mas você também encontra alguns códigos prontos, como um que faça tocar a música tema do Mario.

Gostou de aprender como fazer música na Raspberry? Ajude-nos a melhorar o blog comentando abaixo sobre este tutorial.
Boas composições!