Escolar Documentos
Profissional Documentos
Cultura Documentos
Fonte: http://www.bettshow.com/seminar/Raspberry-Pi-Watch-this-space
Vamos começar!
Depois de instalado…
https://sonic-pi.net/
… abra o Programa
Executar o Programa Alterar o tamanho do editor de texto do
Janela de Ajuda
Parar o Programa Código
Salvar o Código
Gravar sua Música Habilitar visualização Confgurações
Carregar um Código dos sons criados
Janela de
Painel de Programação
Visualização dos
(onde você vai escrever
sons criados
seus códigos)
Painel do relatório de
Atividades (log)
play :c4
play :g4
play :e4
Notações em Sonic Pi
:C, :Db, :D, :Eb, :E, :F, :Gb, :G, :Ab, :A, :Bb, :B
Tocando notas diferentes em Oitavas
difrentes
play :d4
E a relação com notação musical…
considerando a semínima = 60
play 60
sleep 1
play 64
sleep 1
play 67
Repetindo frases
Algumas estruturas
end
Repetindo frases
loop No Sonic Pi, quando usamos loop, estamos dizendo:
"Continue tocando essas notas ou sequência de
notas para sempre, até que eu lhe diga para parar".
play :C4
sleep 1
}
4.times do
play :E4 Áreas indexadas
são denominadas
sleep 0.5 como “blocos de
play :G4 códigos”
sleep 0.5
end
Repetindo frases
}
x.alguma coisa do
O Áreas indexadas
são denominadas
bloco como “blocos de
que se quer códigos”
dentro da estrutura
end
Adicione outras notas
depois da sua estrutura
de bloco de código:
Repetindo frases
live_loop
O live_loop é uma ferramenta especial no Sonic Pi que permite que você repita uma
seção de código musical indefinidamente, garantindo que ela continue tocando em
sincronia com outros live_loops que você pode ter em sua composição.
Permite que você "mixe" diferentes seções de música ao vivo, adicionando, modificando
ou removendo partes, tudo enquanto a música continua tocando.
live_loop :batida do Como funciona?
play :C
sleep 1 Nome Único: Cada live_loop precisa ter um nome único para que o Sonic Pi saiba
diferenciá-lo dos outros.
end
Tempo: Dentro de cada live_loop, é essencial que a duração do código seja
consistente. Se você diz ao live_loop para dormir (usando a função sleep) por 4
batidas, tudo dentro dele deve somar exatamente essas 4 batidas.
Sincronização: Usando o comando sync, você pode fazer um live_loop esperar outro
terminar, garantindo que eles estejam perfeitamente alinhados.
Repetindo frases
Diferenças entre:
loop: X.times: live_loop:
● Este é um loop “infinito” ● Esta é uma construção nativa que
● Esta é uma construção específica do Sonic Pi,
ideal para performances ao vivo de código.
● Ele repetirá o bloco de código que executa o bloco de código um ● Ele possui um mecanismo embutido para manter
ele contém indefinidamente. número específico de vezes. No o loop sincronizado no tempo. Se o bloco de
código interno leva mais tempo para ser
● No contexto do Sonic Pi, usar um exemplo 4.times, o bloco de código executado do que o valor do sleep no final do loop,
loop puro pode não ser ideal, pois seria repetido quatro vezes. o Sonic Pi ajustará automaticamente o tempo de
● É determinístico e não infinito. início da próxima iteração para manter a
pode levar a problemas de
sincronização.
sincronização e timings ● Cada live_loop deve ter um nome único para
indeterminados. que possa ser referenciado e, se necessário,
sincronizado com outros live_loop.
● Ele é projetado para ser usado em situações ao
vivo, onde os loops podem ser modificados e
re-executados sem parar o fluxo da música.
loop do 4.times do
play:C4 play:C4
sleep 1 sleep 1 live_loop :melody do
end end play:C4
sleep 1
end
Vamos construir essa...
É Frère
Jacques!
Você também pode usar repetições dentro de
repetições, se desejar:
4.times do
4.times do
Primeiro bloco play :c4
a ser
executado sleep 0.25
Segundo bloco a ser
executado
end
considerando toda a
estrutura interna
play :d4
sleep 0.5
play :f4
sleep 0.5
end
Alterando o tempo
Vamos adicionar o seguinte
comando antes de iniciar a
inclusão das notas:
use_bpm 120
“Praticando 1.1”
Por exemplo:
Pan
play :c2, amp: 0.5, pan: -1 #monitor à esquerda
play :c2, amp: 0.5, pan: 1 #monitor à direita
Por exemplo:
tempo de início e tempo de fim
play :c2, attack: 1, release: 1
#a nota tem duração mais longa
Mudando o som (timbre)
Volte para o início do seu código e
adicione esta nova linha:
use_synth
Experimente diferentes sabores de sons.
Existem muitos sons de sintetizador diferentes no
Sonic Pi.
Aqui estão alguns dos meus favoritos:
tempo.
sleep 0.5
play :E4, release: 0.5
sleep 0.5
play :D4, release: 0.5
sleep 0.5
end
end
Se quiser, salve suas músicas...
No nosso próximo encontro…
Vamos trabalhar com samples e efeitos?
Sonic Pi Encontro 2
Trabalhando com arquivos de áudio e efeitos
Atividade 1:
Um simples
resumo
Último código de ontem.
# Melodia pop rock
in_thread do
use_synth :blade
use_bpm 120 4.times do
use_synth :tri play :E4, release: 0.5
sleep 0.5
# Linha de Baixo # Acordes play :G4, release: 0.5
in_thread do in_thread do sleep 0.5
4.times do use_synth :piano play :F4, release: 0.5
play :C2, release: 0.75 4.times do sleep 0.5
sleep 1 play chord(:C, :major), release: 2 play :E4, release: 0.5
play :A1, release: 0.75 sleep 2 sleep 0.5
sleep 1 play chord(:A, :minor), release: 2 play :D4, release: 0.5
play :F2, release: 0.75 sleep 2 sleep 0.5
sleep 1 end play :F4, release: 0.5
play :G2, release: 0.75 end sleep 0.5
sleep 1 play :E4, release: 0.5
end sleep 0.5
end play :D4, release: 0.5
sleep 0.5
end
end
Atividade 2:
Samples
Tocando samples 1
Por exemplo:
sample :bd_fat
sample :ambi_lunar_land
sample :ambi_piano
sample :ambi_choir
Tocando samples 2
Por exemplo:
sample :drum_heavy_kick
sample :drum_snare_hard
sample :drum_cymbal_closed
sample :drum_cymbal_pedal
Tocando samples 3
Por exemplo:
live_loop :drums do
sample :drum_heavy_kick
sleep 1
end
live_loop :drums do
sample :drum_heavy_kick
sleep 1
sample :drum_snare_hard
sleep 1
sample :drum_heavy_kick live_loop :hihat do
end sleep 1
end
Samples
Sonic Pi tem muitos samples (sons curtos e pré-gravados) embutidos. Eles estão
listados na seção de ajuda
live_loop :algum_nome do
sample :ambi_piano
sleep 2
end
Agora vamos alterar os parâmetros dos samples...
Assim como nos parâmetros já vistos (amplitude, pan, attack e release, temos!
live_loop :algum_nome do
sleep 2
end
Agora vamos alterar os parâmetros dos samples...
Assim como nos parâmetros já vistos (amplitude, pan, attack e release, temos!
live_loop :algum_nome do
sleep 2
end
Agora vamos alterar os parâmetros dos samples...
Assim como nos parâmetros já vistos (amplitude, pan, attack e release, temos!
live_loop :algum_nome do
sleep 2
end
Agora vamos alterar os parâmetros dos samples...
Assim como nos parâmetros já vistos (amplitude, pan, attack e release, temos!
live_loop :algum_nome do
sleep 2
end
“Praticando Looping”
sample "/…/my-sound.wav"
# Windows
sample "C:/…wav/my-sound.wav"
Samples do armazenamento local ...2
Então, como você reproduz qualquer arquivo arbitrário WAV, AIFF ou FLAC
no seu computador? Tudo o que você precisa fazer é passar o caminho
desse arquivo para a função sample:
pasta = "/path/to/my/samples/"
live_loop :algum_nome do
play rrand(50, 95)
sleep 0.5
end
aleatório não é verdadeiramente aleatório
live_loop :algum_nome do
sample :perc_bell, rate: (rrand 0.125, 1.5)
sleep rrand(0.2, 2)
end
use_synth :tb303
live_loop :algum_nome do
play 50, release: 0.1, cutoff: rrand(60, 120)
use_random_seed 40 sleep 0.125
5.times do end
play rrand(50, 100)
sleep 0.5
end
choose live_loop :algum_nome do
maneiras
diferentes play (chord :c, :major).choose
live_loop :algum_nome do
sleep 1 end
end
play rrand_i(50, 95) inteiros
$0.00
Processadores de Efeitos
with_fx :reverb do
...
end
with_fx :echo do
...
end
with_fx :distortion do
...
end
3º - Infos sobre
efeitos
1º - Em Ajuda
2º - Lista de efeitos
...Vamos testar alguns efeitos:
live_loop :effects do
with_fx :reverb do
play 50
sleep 0.5
sample :elec_plip
sleep 0.5
play 62
end
end
...Vamos testar alguns efeitos aninhados?
live_loop :effects do live_loop :effects do
with_fx :wobble do
with_fx :reverb do
with_fx :slicer do
play 50 with_fx :reverb do
play 50
sleep 0.5
sleep 0.5
sample :elec_plip sample :elec_plip
sleep 0.5 sleep 0.5
play 62
play 62
end
end end
end end
end
Atividade 4:
Variáveis,
Estrutura de dados,
Condicionais
s = 60
print s
s = 60
print s
Adicionando aleatoriedade (pseudo, lembra?):
use_synth :tb303
loop do
play choose(chord(:E3, :minor)), release: 0.3, cutoff: rrand(60, 120)
sleep 0.25
end
loop do
play (chord :c, :major).choose
sleep [0.25, 0.25, 0.5, 1].choose
end
n=1 n=1