Los efectos se pueden agregar a un Reproductor de la misma manera que se cambian sus atributos; utilizando argumentos de palabras clave. Al igual que con los atributos del Reproductor, pueden ser un único valor o una secuencia. Esta página contiene descripciones de los diferentes efectos disponibles en FoxDot y cómo aplicarlos.
La mayoría de los efectos se aplican utilizando un único valor, como pan, pero algunos tienen un único efecto "padre" y uno o más efectos "hijo". Un ejemplo es slide, que es el padre, y slidedelay es el hijo. Si el efecto padre se establece en 0, el efecto no se aplica. Los valores hijo de 0 todavía se aplican si el padre es distinto de cero.
# Efecto de diapositivas añadido
p1 >> pluck(dur=4, slide=1, slidedelay=0.5)
# Efecto de diapositivas no añadido
p1 >> pluck(dur=4, slide=0, slidedelay=0.5)
# Efecto de deslizamiento añadido, con retardo cero
p1 >> pluck(dur=4, slide=1, slidedelay=0)
El argumento de la palabra clave sus se utiliza para establecer el "sustain" de una nota, lo que significa cuánto tiempo dura el sonido de la nota. Por defecto es la misma que la duración de la nota (ajustada con la palabra clave dur) y es un valor medido en términos de "beats". El siguiente código reproducirá una nota de un compás, una repetición con un sostenido de medio compás:
# Duración de un latido, duración de medio latido
p1 >> pluck(dur=1, sus=1/2)
Utilice el desenfoque 'blur' para crear un efecto de "legato" (una palabra que significa "atado" en italiano). Este es un término musical que se refiere a cómo las notas se suceden entre sí, o se desdibujan juntas. El valor sus se multiplica por el valor de desenfoque actual de tal manera que el siguiente código duplica la longitud del sustain de cada una de las otras notas:
# Duplica la longitud de cualquier otra nota
p1 >> pluck(dur=PDur(3,8), blur=[1, 2])
La panorámica (en audio) es la distribución del sonido a través de varios altavoces. Actualmente FoxDot sólo utiliza dos canales de salida (para el altavoz izquierdo y derecho) pero hay planes para expandirlo para múltiples altavoces. Para cambiar el panorama de un sonido, utilice el panorama y establezca el valor entre -1 (izquierda dura) y 1 (derecha dura). Un valor de panoramización de 0 envía la señal de audio de ambos altavoces por igual.
# Alternar entre izquierda, centro y derecha
p1 >> pluck(pan =[-1, 0, 1])
# Toca dos notas al mismo tiempo, pero en diferentes altavoces
p1 >> pluck((0, 4), pan=(-1,1))
# Mueva gradualmente el sonido de izquierda a derecha usando una "linvar".
p1 >> pluck([0, 2, 4, 7], dur=1/4, pan=linvar([-1,1],8))
Esto añade un valor a la frecuencia utilizada para generar una nota, pero sólo en uno de los canales. Por ejemplo, al iniciar un reproductor sin instrucciones, se reproducirá continuamente una nota en el do medio, que es 261,6 Hz, a través de ambos canales de altavoz. Usando fmod = 10 reproducirá la nota a 261.6 Hz en un canal, y 271.6 Hz en el otro. Esto crea una notable "disonancia" o un sonido "atonal" debido a que las frecuencias están tan cerca unas de otras. Usando un valor más pequeño, como 2, crea una especie de efecto de flanger:
# Simple efecto flanger
p1 >> pluck(fmod = 2)
# Varía el efecto con el tiempo
p1 >> pluck(fmod=linvar([-10,10],8), dur=1/4, sus=1)
Vibrato es un término musical que se refiere a una modulación continua de la afinación, es decir, que cambia con el tiempo. Puedes establecer la velocidad del vibrato de una nota usando la palabra clave vib y la profundidad (el tamaño de la modulación) del vibrato usando la palabra clave vibdepth. La profundidad por defecto es de 0.02, lo que significa que el vibrato fluctúa entre +/- la frecuencia de la nota multiplicada por 0.02. También se puede pensar que fluctúa entre el 99% y el 101% del valor de frecuencia.
p1 >> pads(dur=4, vib=4)
p1 >> pads(dur=4, vib=4, vibdepth=0.1)
p1 >> pads(dur=4, vib=4, vibdepth=1)
Se utiliza para cambiar la frecuencia de una nota con el tiempo. La frecuencia "desliza" a (1 + n) * freq donde n es el valor suministrado a la palabra clave de la diapositiva. Por ejemplo, un valor de diapositiva de 1 desplazará la frecuencia hasta el doble de su valor original (una octava hacia arriba). Un valor de diapositiva de -1 se deslizará a una frecuencia de 0.
Por defecto, el efecto de diapositiva comienza inmediatamente después de que comienza la nota. Para retrasar el inicio de la diapositiva, puede utilizar la palabra clave slidedelay. Este debe ser un valor entre 0 (el comienzo de la nota) y 1 (el final de la nota).
# Desliza una octava hacia arriba
p1 >> pluck(dur=4, slide=1)
# Slide to 0
p1 >> pluck(dur=4, slide=-1)
# Retrasa el efecto de la diapositiva para comenzar a mitad de la nota
p1 >> pluck(dur=4, slide=0.5, slidedelay=0.5)
Similar a la diapositiva, este efecto también cambia la frecuencia de una nota con el tiempo, pero usted especifica dónde comienza la diapositiva. La frecuencia "desliza" desde (1 + n) * freq donde n es el valor suministrado a la palabra clave deslizante y termina en la frecuencia de la nota.
Por ejemplo, un valor de 1 desplazará la frecuencia desde el doble de su valor original (una octava hacia arriba). Un valor de diapositiva de -1 se deslizará desde una frecuencia de 0. Por defecto, el efecto de diapositiva comienza inmediatamente después de que comienza la nota. Para retrasar el inicio de la diapositiva, puede utilizar la palabra clave slidedelay. Este debe ser un valor entre 0 (el comienzo de la nota) y 1 (el final de la nota).
# Deslízate de una octava hacia arriba
p1 >> pluck(dur=4, slidefrom=1)
# Slide from 0
p1 >> pluck(dur=4, slidefrom=-1)
# Retrasa el efecto de la diapositiva para comenzar a mitad de la nota
p1 >> pluck(dur=4, deslizamiento desde=0.5, deslizamiento retardado=0.5)
Otro efecto similar al deslizamiento, el pitch bend cambia la frecuencia de una nota a lo largo del tiempo, pero también vuelve a su frecuencia original al final de la nota. Aparte de eso, funciona exactamente igual que la diapositiva.
# Dobla una octava hacia arriba y hacia atrás otra vez
p1 >> pluck(dur=4, bend=1)
# Bend to 0 and back again
p1 >> pluck(dur=4, bend=-1)
# Retrasa el efecto de curvatura para empezar a mitad de la nota
p1 >> pluck(dur=4, slide=0.5, bend=0.5)
El "chops" la señal de audio en "n" partes, donde "n" es el valor que proporciona al argumento de la palabra clave. Utiliza el sustain de la nota (fijado con sus) para determinar el tamaño de las partes, por lo que también puede combinar chop y sus para crear efectos interesantes.
# Cortar un sonido en 4 partes
p1 >> pluck([0,1,2,3], dur=4, chop=4)
# Si la duración varía, el tamaño de la chuleta también variará
Cambiar un único valor para "sus" iguala los tamaños y crea un bonito efecto de eco superpuesto.
p1 >> pluck([0,[4,6,7]], dur=PDur(3,8), chop=4, sus=2)
Esto es similar a "chop" pero difiere en que la señal de audio no está siendo "cortada", sino que la velocidad de control (la frecuencia de las notas / la velocidad de reproducción de las muestras). Esto puede ser útil en varias situaciones.
reproducción: El uso de chop esencialmente sólo reproduce la mitad del audio mientras que la otra mitad está siendo silenciada por el efecto "chop". Usando grueso esencialmente pausará el sonido y lo reanudará después de un ligero retraso. Esto lo hace ajustando la velocidad de reproducción a 0 mientras que chop ajustaría la amplitud a 0. Escuche la diferencia ejecutando el código de abajo en FoxDot:
#usando chop
c1 >> play("c", dur=4, chop=16, coarse=0)
#usando gruesos
c1 >> play("c", dur=4, coarse=16, chop=0)
Otro uso para sonidos gruesos sería cuando se obtienen sonidos de "recorte" al usar chop. Esto ocurre cuando una amplitud va a 0 muy rápidamente y suena como un pequeño "pop". Ejecute estas líneas de código en FoxDot y escuche las diferencias:
b1 >> bass(dur=2, chop=4,coarse=0)
b1 >> bass(dur=2, coarse=4, chop=0)
La línea que usa tosca = 4 suena un poco más limpia. Desafortunadamente esto no siempre sucede y lo grueso no siempre se puede aplicar a algunos sintetizadores, por ejemplo klank.
Un sonido no trivial se compone de una combinación de ondas sonoras que vibran a varias frecuencias y amplitudes, y algunas de ellas pueden "filtrarse" de una señal utilizando un filtro. Esto se conoce a menudo como "síntesis sustractiva". Un filtro de paso alto eliminará las partes de una señal que están por debajo de cierta frecuencia, es decir, sólo permite el paso de frecuencias superiores al umbral. Esto se puede aplicar en FoxDot simplemente ajustando el valor hpf (abreviatura de filtro pasaaltos):
#Ajuste el límite del filtro pasa-altos a 2000 Hz.
d1 >> play("x-o-", hpf=2000)
# Establece el corte para que cambie con el tiempo usando una linvar
d1 >> play("x-o-", hpf=linvar([0,2000],32)
También puede ajustar la resonancia de paso alto para el filtro usando la palabra clave hpr. Esto se denomina a veces "rq" o "hpq". A medida que este valor disminuye, los armónicos cerca del valor de corte se incrementan - un valor cercano a 0 sonará como una onda sinusoidal oscilando en el valor establecido usando hpf. Tenga cuidado con los valores muy pequeños y muy grandes ya que podría obtener sonidos muy fuertes!
#Ajuste el límite del filtro pasa-altos a 2000 Hz.
d1 >> play("x-o-", hpf=2000)
Ajuste la resonancia a 0.2 - ¿puede oír la diferencia?
d1 >> play("x-o-", hpf=2000, hpr=0.2)
#Ajuste la resonancia de corte *y* para que cambie con el tiempo usando linvar
d1 >> play("x-o-", hpf=linvar([0,2000],32), hpr=linvar([1,0.1],28))
Del mismo modo que el filtro de paso alto sólo permite el paso de frecuencias dentro de una señal de audio por encima de un determinado límite, el filtro de paso bajo sólo permite el paso de frecuencias dentro de una señal de audio por debajo de un determinado límite. La resonancia de paso bajo, lpr, funciona de la misma manera que la resonancia de paso alto.
Ponga el filtro de paso bajo a 400 Hz.
d1 >> play("x-o-", lpf=400)
# Cambiando la resonancia - ¿puedes oír la diferencia?
d1 >> play("x-o-", lpf=400, lpr=0.2)
# Usa una linvar para variar ambos valores con el tiempo
d1 >> play("x-o-", lpf=linvar([500,5000],32), lpr=linvar([1,0.1],28))
El bitcrushing es un efecto de distorsión creado por la reducción de la frecuencia de muestreo de una señal de audio y del ancho de banda. Un valor de aplastamiento de 1 reducirá la velocidad de bits de la señal al valor de bits, que es 8 por defecto. Cada incremento de aplastamiento posterior reduce a la mitad la frecuencia de muestreo de la señal (a partir de 44,1 KHz). El efecto bitcrush requiere que los plugins SC3 estén instalados para funcionar.
# Aplica el efecto bit-crusher
d1 >> play("X O", crush=4)
# Reduce el número de bits para más distorsión
d1 >> play("X O", crush=4, bits=4)
#O reduzca la frecuencia de muestreo para un estilo diferente de distorsión!
d1 >> play("X O", crush=32, bits=8)
Esto requiere la instalación de los plugins SC3. Este debe ser un valor entre 0 y 1 y distorsiona la señal de audio.
#Añade distorsión tanto a los reproductores de muestra como a los de sintetizado
d1 >> play("x * ", dist=0.2)
p1 >> dirt ([0,5], dist=0,3, dur=8) + (0,4)
Este es otro tipo de distorsión que afecta la forma de onda de la señal de audio. Este valor debe estar entre 0 y 1, pero también se aceptan valores mayores (¡cuidado con los auriculares!). Este efecto de distorsión no requiere ninguna instalación adicional.
#Añade distorsión tanto a los reproductores de muestra como a los de sintetizador
d1 >> play("x * ", shape=0.5)
p1 >> dirt ([0,5], forma=0,5, dur=8) + (0,4)
Utilice la palabra clave room para añadir reverberación a un sonido. Esto emula el efecto de tocar el sonido en una habitación y puede ser en una escala de seco (0% mezcla del sonido reverberado) a húmedo (100% mezcla del sonido reverberado). La palabra clave de la sala establece el tamaño de la sala para emular la reverberación, y la mezcla es la mezcla porcentual como una fracción (es decir, 0,1 es 10%).
#emula el reproductor en un pequeño salon
p1 >> play("x o ", room=0.25)
# Emular la reproducción de los sonidos en una habitación más grande
p1 >> play("x o ", room=0.8)
# Haz que la señal sea más'húmeda
p1 >> play("x o", room=0.8, mix=0.8)
Este efecto a menudo se conoce con el nombre de "Comb Delay" pero aplicarlo a un solo sonido le dará el efecto de un eco en una habitación. Utilice la palabra clave eco para definir la duración (en tiempos) entre cada sonido repetido. El siguiente código reproduce una sola nota en repetición, pero oímos el eco de vuelta a nosotros después de 1 latido.
p1 >> blip(dur=4, echo=1)
NOTA: A veces puede que tenga que añadir reverberación utilizando el argumento de palabra clave de la sala para escuchar el efecto de eco. Esto se debe a que un sonido es detenido por el SuperCollider una vez que es detectado como silencioso. Si el eco se produce después de un período de silencio, tendrá que añadir reverberación para mantener el sonido "vivo" por así decirlo. He aquí un ejemplo:
# No oímos ningún efecto de eco
d1 >> play("x-o-", dur=1, echo=0.75)
# Añade reverberación y lo haremos
d1 >> play("x-o-", dur=1, echo=0.75, room=0.5)
Por defecto, probablemente sólo oirá un eco del sonido original. Para escuchar más ecos, aumente la duración de la caída:
# Sólo oigo un eco
p1 >> blip(dur=4, echo=1)
# Ahora oímos varios
p1 >> blip(dur=4, echo=1, decay=8)
# Podemos usar echo para hacer los bucles de batería más interesantes también
d1 >> play("(x )( x)o ", room=0.1, echo=0.75/2, decay=4)
Tenga cuidado de no utilizar demasiado eco en demasiados reproductores, ya que utiliza una gran cantidad de CPU y puede provocar un fallo del SuperCollider.
Este efecto desplaza continuamente el sonido de izquierda a derecha, y viceversa, n número de veces, donde n es el valor dado. Esto depende del sustain de la nota (dado usando la palabra clave sus.
# Mueve la sartén de izquierda a derecha 4 veces a través de 4 tiempos
p1 >>pads(dur=4, spin=4)
# Mueve la cacerola de izquierda a derecha 4 veces a través de un latido
p1 >> pads(dur=4, sus=1, spin=4)
Para detener un sonido abruptamente (en lugar de usar sólo un sus más corto) puede usar la palabra clave "cortar". Esto es especialmente útil cuando se reproducen muestras utilizando la reproducción de SynthDef, ya que sus no tiene ningún efecto sobre el sonido en sí. La duración en la que se detiene el sonido es el valor de corte como proporción del valor sus, es decir, un corte de 0,5 detendrá el sonido a mitad de camino.
# Detenga un sonido inmediatamente en lugar de su decadencia natural
p1 >> pads(dur=4, corte=0.75)
# Acortar las muestras a una décima parte de su longitud normal
d1 >> play("x-o-", cut=0.1)
Esto usa la clase Formlet de SuperCollider para añadir un filtro de resonancia muy simple al sonido, no muy diferente al efecto "vocal" de TidalCycles. Los valores deben estar entre 1 y 7.
# Recorre los diferentes niveles podemos aplicar el filtro
p1 >> pluck(formant=P[:8])
Una distorsión creada al amplificar el sonido y luego recortarlo a una amplitud mucho más "normal". Los valores deben estar entre 0 y 1, pero se aceptan valores mayores.
#Añade distorsión de sobremarcha
p1 >> dirt(dur=1/2, accionamiento=1)