Para la modulación aleatoria escalonada, elige un valor nuevo a intervalos regulares y mantenlo hasta la siguiente actualización. Este flujo de trabajo de REAPER usa un tono sintético y un pequeño efecto de ganancia JSFX personalizado para crear pasos de volumen aleatorios con una duración y un rango explícitos.

La tarea es deliberadamente acotada: hacer que un tono sostenido cambie de nivel de forma impredecible, sin deslizarse continuamente entre niveles. El método automático que aparece a continuación requiere copiar una vez un programa de efecto completo. Una sección posterior explica cómo crear una escalera repetitiva editable con las envolventes de automatización nativas de REAPER.

¿Qué hace que la modulación aleatoria sea escalonada?

Tres decisiones determinan el resultado: cuándo cambia un valor, qué valor nuevo se elige y cómo se desplaza el efecto a ese valor. En este flujo de trabajo, el intervalo es regular, el nivel es seudoaleatorio y la transición es inmediata. Entre actualizaciones, la ganancia permanece constante.

Una secuencia ilustrativa podría mantener −15 dB durante 250 milisegundos, saltar a −9 dB durante los siguientes 250 milisegundos y luego saltar a −18 dB. Esos números ilustran el comportamiento; no son mediciones ni una secuencia de salida garantizada.

El sistema de modulación de parámetros de REAPER ofrece un LFO con controles para Speed, Strength, Phase y dirección. Por separado, su sistema de automatización ofrece puntos de envolvente Square. Son herramientas diferentes: la velocidad del LFO controla la tasa de modulación, mientras que los segmentos cuadrados de la envolvente definen valores mantenidos entre puntos. Consulta los capítulos 18 y 19 de Up and Running: A REAPER User Guide.

El efecto personalizado de abajo deja explícito en su código el comportamiento de retención. Procesa directamente la ganancia estéreo; no configura una fuente universal de valores aleatorios escalonados para todos los demás parámetros de complementos.

Prepara un tono sintético sostenido

Empieza con un proyecto vacío de REAPER y una pista. Añade ReaSynth a la cadena de FX de esa pista. REAPER documenta ReaSynth como un sintetizador que puede reproducirse desde elementos MIDI, así que no hace falta grabar ni usar un archivo de sonido externo. Sus controles incluyen el volumen de salida, el sostenido y las mezclas de formas de onda. The REAPER Cockos Effects Summary Guide, ReaSynth.

Usa esta configuración sencilla de la fuente:

  1. Ajusta el tempo del proyecto a 120 BPM y usa una sección de cuatro compases en 4/4.
  2. Selecciona la pista y crea una selección de tiempo que abarque esos cuatro compases.
  3. Elige Insert → New MIDI Item.
  4. Haz doble clic en el elemento MIDI para abrir el editor MIDI. Dibuja una nota y extiende su borde derecho hasta el final del elemento.
  5. En ReaSynth, empieza con Volume en torno a −12 dB y Sustain en 0 dB. Deja Square mix, Sawtooth mix y Triangle mix en cero para obtener un tono sencillo.

El flujo de creación y edición de elementos MIDI está documentado en el capítulo 13 de la REAPER User Guide. El tempo, la duración y los niveles específicos de aquí son valores de ejemplo, no requisitos de la aplicación.

Reproduce la sección antes de añadir la modulación. Confirma que la pista produce un tono sostenido. Si se detiene antes de tiempo, comprueba la duración de la nota y el ajuste de sostenido. Será más fácil evaluar el cambio de ganancia si la fuente mantiene un nivel constante.

Añade un efecto que mantenga cada nivel aleatorio

JSFX es el sistema integrado de REAPER para efectos escritos como programas de texto. REAPER los compila al cargarlos; este ejemplo no requiere bibliotecas de programación externas. Su estructura sigue la referencia de programación de JSFX oficial.

Abre View → FX Browser. En el menú FX del navegador, elige Create new JS FX y ponle al efecto un nombre distintivo, como Stepped Random Gain. Abre su código fuente con Edit JS FX, sustituye el contenido inicial por el programa completo de abajo y guárdalo. Estos comandos de creación y edición están documentados en la sección 16.16 de la REAPER User Guide.

desc:Stepped Random Gain
slider1:250<20,2000,1>Step duration (ms)
slider2:-18<-60,0,0.1>Level endpoint A (dB)
slider3:-6<-60,0,0.1>Level endpoint B (dB)
in_pin:Left
in_pin:Right
out_pin:Left
out_pin:Right

@init
remaining = 0;
gain = 1;

@slider
interval_samples = max(1, floor(srate * slider1 / 1000 + 0.5));
low_db = min(slider2, slider3);
high_db = max(slider2, slider3);
remaining = 0;

@sample
remaining <= 0 ? (
  level_db = low_db + rand(1) * (high_db - low_db);
  gain = 10 ^ (level_db / 20);
  remaining = interval_samples;
);

spl0 *= gain;
spl1 *= gain;
remaining -= 1;

Este es un efecto de audio estéreo completo, no un fragmento. Añádelo después de ReaSynth en la cadena de FX de la pista. Si no aparece su nombre, borra cualquier filtro de búsqueda del navegador de FX.

El programa usa rand(1) para obtener un valor seudoaleatorio y lo mapea entre los dos extremos en dB. La sintaxis condicional del lenguaje, el operador de exponenciación y la función aleatoria están documentados en JSFX Programming Reference — Language Essentials.

El contador usa srate, la frecuencia de muestreo actual de REAPER. Cada muestra recibe la misma ganancia almacenada hasta que el contador llega a cero. Ambos canales reciben esa ganancia, así que el efecto no aleatoriza sus niveles de forma independiente. REAPER documenta srate, spl0 y spl1 en JSFX Programming Reference — Special Variables.

El programa se revisó según esas referencias. También se comprobó por separado la aritmética del contador a 44,1 y 48 kHz; el JSFX no se ejecutó en REAPER para este artículo.

Ajusta la duración de los pasos y el rango de niveles

Empieza con Step duration (ms) en 250, Level endpoint A (dB) en −18 y Level endpoint B (dB) en −6. Estos valores seleccionan una nueva atenuación cuatro veces por segundo. Cada valor seleccionado dura todo el intervalo, a menos que cambies un control.

Los extremos especifican la ganancia aplicada después del sintetizador. No son lecturas objetivo del medidor de salida. Por ejemplo, −6 dB corresponde a un multiplicador de muestra de aproximadamente 0,501, mientras que −18 dB corresponde a aproximadamente 0,126. La señal de origen y el procesamiento posterior de la pista siguen determinando la salida final.

Comportamiento deseado Valor de ejemplo Qué cambia
Mesetas lentas y diferenciadas 1,000 ms Un nivel nuevo por segundo
Escalonamiento moderado 250 ms Cuatro niveles nuevos por segundo
Escalonamiento más rápido 125 ms Ocho niveles nuevos por segundo
Diferencias más pequeñas entre niveles Extremos de −9 y −6 dB Un rango de selección más estrecho
Atenuación constante para comparar Ambos extremos en −6 dB Cada selección produce la misma ganancia

A 120 BPM, una corchea dura 250 milisegundos: 60 segundos divididos entre 120 pulsos, y luego entre dos. Este es un cálculo de tiempo desarrollado. El efecto proporcionado usa milisegundos y no sigue los cambios de tempo ni alinea sus pasos con la cuadrícula musical del proyecto.

Los extremos pueden introducirse en cualquier orden porque el programa los ordena. Al cambiar cualquier control deslizante, se inicia un nuevo intervalo en la siguiente muestra procesada. El nivel aleatorio se mantiene sin interpolación, aunque dos selecciones consecutivas pueden resultar muy parecidas.

Crea en su lugar una escalera repetitiva editable

Usa una envolvente de automatización cuando quieras valores exactos en posiciones exactas de la línea de tiempo. Esta también es la vía nativa compatible para aplicar cambios mantenidos a un parámetro de efecto expuesto. REAPER documenta las envolventes de parámetros y la forma de punto Square en el capítulo 18 de su User Guide.

Para un patrón de volumen fijo, desactiva primero el JSFX personalizado. Abre los controles de envolvente de la pista y muestra su envolvente Volume. Mantén la pista en Trim/Read mientras editas manualmente.

Crea puntos a intervalos de 250 milisegundos con Shift-clic y luego muévelos a niveles irregulares. Haz clic derecho en un punto y usa Set Point Shape → Square. Aplica esa forma a cada punto cuyo segmento saliente deba mantener su valor. La envolvente debería mostrar mesetas horizontales seguidas de cambios verticales.

Para el parámetro de otro efecto, toca el control deseado y elige Param → Show track envelope. Añade y ajusta los puntos en esa envolvente. El flujo de trabajo del menú de parámetros se describe en The REAPER Cockos Effects Summary Guide.

Colocar valores irregulares manualmente crea un patrón fijo; no genera valores aleatorios nuevos en cada reproducción. Para reutilizarlo, selecciona su intervalo de tiempo, haz clic derecho en la envolvente y elige Automation items → Insert new automation item. REAPER admite elementos de automatización en bucle y copias agrupadas cuyos cambios se propagan a las demás copias. REAPER User Guide, Automation Items.

Soluciona el movimiento suave, la falta de cambios y la repetibilidad

Si la envolvente sigue inclinándose, revisa la forma del punto saliente. Linear crea una rampa; Square crea el segmento retenido que hace falta aquí. Un LFO cuadrado y una escalera de varios niveles dibujada manualmente también tienen usos distintos: alternar simplemente entre dos niveles no crea una secuencia arbitraria de niveles.

Si el efecto personalizado no produce cambios evidentes, confirma que esté después de ReaSynth, que esté activado y que los extremos sean distintos. Prueba pasos de 1,000 milisegundos con extremos de −24 y −6 dB para que la estructura sea más fácil de observar. Luego vuelve al rango que necesite tu proyecto.

Los cambios abruptos de ganancia pueden introducir clics porque el multiplicador de muestra cambia de inmediato. Este programa no incluye suavizado intencionadamente. Diferencias más pequeñas entre niveles pueden reducir el tamaño de esas discontinuidades, pero no garantizan una salida sin clics. Añadir una rampa de transición cambiaría el comportamiento de paso inmediato exacto.

El efecto está diseñado para una pista estéreo y modifica solo sus dos primeros canales de audio. No escribe puntos de automatización, no guarda una secuencia aleatoria elegida, no cuantiza los valores a un conjunto pequeño de niveles ni ofrece sincronización con el tempo. REAPER suele ejecutar una sección JSFX @init cuando comienza la reproducción; este programa reinicia allí su contador. No cuentes con que reproduzca la misma secuencia aleatoria después de reiniciarlo. Referencia de secciones de código JSFX.

Usa el efecto de ganancia personalizado cuando quieras niveles retenidos generados automáticamente. Usa la automatización cuadrada cuando quieras editar, repetir y conservar cambios concretos. Ambos métodos permiten que el tono sintético pase por mesetas diferenciadas; la elección depende de si te importan más los valores nuevos o un patrón exacto en la línea de tiempo.

Fuentes