Generar sonidos

Variables

Echa un vistazo al ejemplo de abajo. ¿Qué está pasando?

live_loop :melody do
  use_synth :blade
  r = [0.25, 0.25, 0.5, 1].choose
  play (chord :c, :minor).choose, attack: 0, release: r
  sleep r
end

Hay una variable r que toma un cierto valor cada tiempo que se toca el bucle, y ese valor está siendo usado como la opción liberación para play y como la longitud de sleep. Una variable es algo como una caja donde puedes guardar cosas y tomar cosas fuera. Usar una variable es tan simple como nombre_variable = valor_variable. Ahora el valor_variable se guarda en nombre_variable. Puedes obtener el valor simplemente escribiendo el nombre_variable.

Vamos a añadir un sintetizador y bajos al ejemplo para probar variables. El bucle :keys es simple, no pasa nada nuevo, pero el bucle :bass es un poco complicado:

live_loop :melody do
  use_synth :blade
  r = [0.25, 0.25, 0.5, 1].choose
  play (chord :c, :minor).choose, attack: 0, release: r
  sleep r
end

live_loop :keys do
  use_synth :blade
  play chord(:c, :minor)
  sleep 1
end

live_loop :bass do
  use_synth :fm
  n = (chord :c2, :minor).tick
  3.times do
    play n
    sleep 1
  end
  play n
  sleep 0.5
  play (chord :c2, :minor).tick
  sleep 0.5
end

n = (chord :c2, :minor).tick toma una nota del acorde de Do menor y la guarda en una variable llamada n. .tick siempre se mueve hacia el siguiente valor cuando se le llama. play n toca la nota guardada. Luego .tick se llama de nuevo para conseguir la siguiente nota del acorde. Cuando el bucle empieza de nuevo, .tick continúa desde donde estaba.