Sonic Pi : Metrônomo

O código abaixo faz uma contagem visual de batidas na janela de log, assim como atualiza a variável bar com a contagem dos compassos.
A variável bar pode então, juntamente com estruturas de if...else ou switch, constuir o arranjo de uma música, ligando e desligando trechos ou controlando parâmetros dos instrumentos, por exemplo.


use_bpm 120
bar = 0
live_loop :metro do
  clock = tick
  bar = clock / 4
  puts "bar : #{bar}"
  puts (ring "1 |","2 | |","3 | | |","4 | | | |")[clock]
  sleep 1
end

Vídeo: metrônomo informando andamento na janela de log (sem som).

use_bpm 120
bar = 0

live_loop :metro do
  clock = tick
  bar = clock / 4
  puts "bar : #{bar}"
  puts (ring "1 |","2 | |","3 | | |","4 | | | |")[clock]
  sleep 1
end

live_loop :kick do
  if bar > 4
	sample :bd_haus
  else
	sample :bd_fat
  end
  sleep 0.5
end