Amplitud

Este mes vamos a sumergirnos en uno de los efectos más potentes y flexibles de Sonic Pi: el :slicer. Al final de este artículo, habrás aprendido cómo manipular el volumen de nuevas formas muy interesantes. Esto te permitirá crear nuevos ritmos y estructuras rítmicas, ampliando tus posibilidades sonoras.

Rebana ese Amp

:prophet

synth :prophet, note: :e1, release: 8, cutoff: 70
synth :prophet, note: :e1 + 4, release: 8, cutoff: 80

Ahora, vamos a pasarlo por el efecto :slicer:


with_fx :slicer do
  synth :prophet, note: :e1, release: 8, cutoff: 70
  synth :prophet, note: :e1 + 4, release: 8, cutoff: 80
end

Escucha cómo el slicer le pone y le quita volumen al audio, con un beat regular. Fíjate también en cómo el :slicer afecta a todo el audio generado entre los bloques do/end. Puedes controlar la velocidad a la que se enciende y apaga el audio con la opción phase:, que es una abreviatura de duración de fase (phase duration en inglés). Su valor por defecto es 0.25, que significa 4 veces por segundo usando el BPM por defecto de 60. Hagámoslo más rápido:

with_fx :slicer, phase: 0.125 do
  synth :prophet, note: :e1, release: 8, cutoff: 70
  synth :prophet, note: :e1 + 4, release: 8, cutoff: 80
end

:dsaw

Duración

La duración de fase (phase duration) es la longitud de tiempo para un ciclo de encendido/apagado del volumen. Por tanto, valores más bajos harán al efecto cambiar entre encendido y apagado mucho más rápido que valores más altos. Puedes empezar jugando con valores como 0.125, 0.25, 0.5 y 1.

Ondas de Control

Por defecto, el efecto :slicer utiliza una onda cuadrada para manipular la amplitud a lo largo del tiempo. Por eso escuchamos la amplitud encendida durante un periodo de tiempo, luego inmediatamente apagada por otro periodo, y encendida de nuevo. Podemos ver que la onda cuadrada sólo es una de las 4 ondas de control distintas que permite usar :slicer. Las otras son la onda de sierra, la onda triangular la onda de (co)seno. Échale un vistazo al diagrama de arriba para ver qué forma tienen estas ondas. También podemos escuchar cómo suenan. Por ejemplo, el siguiente código utiliza el (co)seno como onda de control. Escucha cómo el sonido no se enciende y apaga de forma abrupta, sino que aparece y desaparece gradualmente:

with_fx :slicer, phase: 0.5, wave: 3 do
  synth :dsaw, note: :e3, release: 8, cutoff: 120
  synth :dsaw, note: :e2, release: 8, cutoff: 100
end

Juega con las siguientes formas de onda cambiando la opción wave: a 0 para onda de sierra, 1 para onda cuadrada, 2 para onda triangular, y 3 para onda de seno. Prueba también cómo suenan ondas distintas con valores de phase: distintos.

Cada una de estas ondas se pueden invertir con la opción invert_wave:, que les da la vuelta en torno al eje y. Por ejemplo, en una misma fase, una onda cuadrada suele empezar alto y va bajando gradualmente antes de volver a subir. Con invert_wave:1, la onda empieza bajo y va subiendo gradualmente antes de volver a bajar. Además, la onda de control puede empezar en puntos distintos con la opción phase_offset:, que debería tener un valor entre 0 y 1. Jugando con las opciones phase:, wave:, invert_wave: y phase_offset puedes cambiar drásticamente cómo se modifica la amplitud a lo largo del tiempo.

Duración

Configurando tus niveles

Por defecto, :slicer cambia entre los valores de amplitud 1 (totalmente alto) y 0 (silenciado). Esto se puede cambiar con las opciones amp_min: y amp_max. Puedes usarlas con la onda de seno, creando un efecto de tremolo muy sencillo:

with_fx :slicer, amp_min: 0.25, amp_max: 0.75, wave: 3, phase: 0.25 do
  synth :saw, release: 8
end

Es como si cogieses la rueda de volumen en tu altavoz y lo movieses arriba y abajo ligeramente, con lo que el sonido ‘tiembla’.

Probabilidades

Elegir (choose)

with_fx :slicer, phase: 0.125, probability: 0.6  do
  synth :tb303, note: :e1, cutoff_attack: 8, release: 8
  synth :tb303, note: :e2, cutoff_attack: 4, release: 8
  synth :tb303, note: :e3, cutoff_attack: 2, release: 8
end

Escucha el interesante ritmo de pulsos que hemos conseguido. Prueba a cambiar la opción probability: (probabilidad) a un valor distinto entre 0 y 1. Valores más cercanos a 0 generarán más espacio entre cada sonido, porque la probabilidad de que el sonido se dispare es mucho menor.

rand

Finalmente, puedes probar a cambiar la posición de ‘reposo’ de la onda de control cuando los tests de probabilidad fallen de 0 a cualquier otra posición, con la opción prob_pos::

with_fx :slicer, phase: 0.125, probability: 0.6, prob_pos: 1  do
  synth :tb303, note: :e1, cutoff_attack: 8, release: 8
  synth :tb303, note: :e2, cutoff_attack: 4, release: 8
  synth :tb303, note: :e3, cutoff_attack: 2, release: 8
end

Ritmos que chocan

Algo muy divertido que puedes probar es usar el :slicer para cortar un beat de batería:

with_fx :slicer, phase: 0.125 do
  sample :loop_mika
end

Esto nos permite coger cualquier sample y crear nuevas posibilidades rítmicas, lo cual es súper divertido. Sin embargo, debes tener cuidado y asegurarte de que el tempo del sample coincida con el BPM actual de Sonic Pi; de lo contrario, el slicing sonará fatal. Por ejemplo, prueba a cambiar el :loop_mika con el sample loop_amen y escucha cómo de mal puede llegar a sonar cuando los tempos no están alineados.

¡Cambiandolo al vuelo!

Como ya hemos visto, cambiar el BPM por defecto con use_bpm alarga o comprime los tiempos de silencio y duraciones de envolventes de sintetizadores para que el tempo coincida. El efecto :slicer también necesita esto, ya que la opción phase: se mide en beats, en vez de segundos. Por tanto, podemos arreglar el problema que tiene loop_amen arriba, cambiando el BPM para que coincida con el del sample:

sample :loop_amen

Juntándolo todo

Vamos a aplicar todas estas ideas en un ejemplo final que, usando el efecto :slicer, crea una combinación muy interesante. Adelante, empieza a cambiarlo y ¡conviértelo en tu propia pieza!

sample :guit_em9, rate: 0.5