Voor gestapelde willekeurige modulatie kies je een nieuwe waarde op regelmatige intervallen en houd je die tussen updates vast. Deze REAPER-workflow gebruikt een synthetische toon en een klein aangepast JSFX-gaineffect om willekeurige volumestappen te creëren met een expliciete duur en bereik.

De taak is bewust smal: maak één continue toon onvoorspelbaar het niveau veranderen zonder continu tussen niveaus te glijden. De automatische methode hieronder vereist het eenmalig kopiëren van een compleet effectprogramma. Een later gedeelte legt uit hoe je een bewerkbare, herhalende trapbouw maakt met REAPER's native automatiseringsenveloppen.

Wat maakt willekeurige modulatie gestapeld?

Drie keuzes bepalen het resultaat: wanneer een waarde verandert, welke nieuwe waarde gekozen wordt, en hoe het effect naar die waarde overgaat. Voor deze workflow is de timing regelmatig, het niveau pseudowillekeurig, en de overgang direct. Tussen updates blijft de gain constant.

Een illustratiereeks zou bijvoorbeeld -15 dB vasthouden gedurende 250 milliseconden, springen naar -9 dB voor de volgende 250 milliseconden, en daarna springen naar -18 dB. Die getallen illustreren het gedrag; het zijn geen metingen of een beloofde uitvoerreeks.

REAPER's parameter-modulatiesysteem biedt een LFO met controles voor Speed, Strength, Phase, en richting. Het automatiseringssysteem biedt daarentegen Square envelope-punten. Dit zijn verschillende tools: LFO-snelheid controleert de modulatiesnelheid, terwijl square-envelopsegmenten vaste waarden tussen punten definiëren. Zie hoofdstukken 18 en 19 van Up and Running: A REAPER User Guide.

Het aangepaste effect hieronder maakt het vasthoudgedrag expliciet in de code. Het verwerkt stereogain direct; het configureert geen universele gestapeld-willekeurige bron voor elke andere plug-in-parameter.

Een continue synthetische toon voorbereiden

Begin met een leeg REAPER-project en één track. Voeg ReaSynth toe aan de FX-keten van die track. REAPER documenteert ReaSynth als een synthesizer die gespeeld kan worden vanuit MIDI-items, dus geen opname of extern geluidsbestand is nodig. De controles omvatten uitgangsvolume, sustain, en golfformmixen. The REAPER Cockos Effects Summary Guide, ReaSynth.

Gebruik deze eenvoudige broninstelling:

  1. Stel het projecttempo in op 120 BPM en gebruik een vier-maatsectie in 4/4-tijd.
  2. Selecteer de track en maak een tijdsselectie die die vier maten bedekt.
  3. Kies Insert → New MIDI Item.
  4. Dubbelklik op het MIDI-item om de MIDI-editor te openen. Teken één noot en trek de rechterkant ervan over de lengte van het item.
  5. In ReaSynth, begin met Volume rond -12 dB en Sustain op 0 dB. Laat Square mix, Sawtooth mix, en Triangle mix op nul voor een simpele toon.

De MIDI-item-creatie en -bewerkingsworkflow wordt gedocumenteerd in hoofdstuk 13 van de REAPER User Guide. Het specifieke tempo, de duur, en de niveaus hier zijn voorbeeldinstellingen, geen toepassingsvereisten.

Speel de sectie af voordat je modulatie toevoegt. Bevestig dat de track een continue toon produceert. Als hij vroegtijdig stopt, controleer de nootlengte en sustain-instelling. De veranderende gain is makkelijker te beoordelen wanneer de bron zelf een constant niveau vasthoudt.

Een effect toevoegen dat elk willekeurig niveau vasthoudt

JSFX is REAPER's ingebouwde systeem voor effecten geschreven als tekstprogramma's. REAPER compileert ze bij laden; dit voorbeeld heeft geen externe programmeerbibliotheek nodig. De structuur volgt de officiële JSFX Programming reference.

Open View → FX Browser. In het FX-menu van de browser, kies Create new JS FX en geef het effect een duidelijke naam, zoals Stepped Random Gain. Open de bron met Edit JS FX, vervang de starterinhoud door het complete programma hieronder, en bewaar het. Deze creatie- en bewerkingscommando's worden gedocumenteerd in sectie 16.16 van de 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;

Dit is een compleet stereo-audioeffect, geen fragment. Voeg het na ReaSynth toe in de FX-keten van de track. Wis eventuele FX-browser-zoekfilters als de naam niet zichtbaar is.

Het programma gebruikt rand(1) om een pseudowillekeurige waarde te verkrijgen en markeert die waarde af tussen de twee dB-eindpunten. De conditionele syntax, exponentoperator, en willekeurige functie van de taal worden gedocumenteerd in JSFX Programming Reference — Language Essentials.

De teller gebruikt srate, REAPER's huidige samplerate. Elk sample passeert door dezelfde opgeslagen gain tot de teller verloopt. Beide kanalen ontvangen die gain, dus het effect willekeurigt hun niveaus niet onafhankelijk. REAPER documenteert srate, spl0, en spl1 in JSFX Programming Reference — Special Variables.

Het programma is geïnspecteerd tegen die referenties. De teller-aritmetiek werd ook afzonderlijk gecontroleerd bij 44,1 en 48 kHz; de JSFX zelf werd niet uitgevoerd in REAPER voor dit artikel.

De stapduur en het niveau-bereik instellen

Begin met Step duration (ms) op 250, Level endpoint A (dB) op -18, en Level endpoint B (dB) op -6. Deze instellingen selecteren vier keer per seconde een nieuwe verzwakkingswaarde. Elke geselecteerde waarde duurt het volledige interval, tenzij je een controle wijzigt.

De eindpunten specificeren gain toegepast na de synthesizer. Ze zijn geen doeluitgangsmeter-waarden. Bijvoorbeeld, -6 dB komt overeen met een sample-vermenigvuldiger van ongeveer 0,501, terwijl -18 dB overeenkomt met ongeveer 0,126. Het bronsignaal en de volgende trackverwerking bepalen nog steeds de uiteindelijke uitgang.

Gewenst gedrag Voorbeeldinstelling Wat verandert
Langzame, duidelijke plateaus 1.000 ms Één nieuw niveau per seconde
Matige stappen 250 ms Vier nieuwe niveaus per seconde
Snellere stappen 125 ms Acht nieuwe niveaus per seconde
Kleinere niveauverschillen Eindpunten -9 en -6 dB Een smaller selectiebereik
Constante verzwakking voor vergelijking Beide eindpunten -6 dB Elke selectie produceert dezelfde gain

Bij 120 BPM duurt een achtste noot 250 milliseconden: 60 seconden gedeeld door 120 slagen, dan gedeeld door twee. Dit is een uitgewerkte timingberekening. Het geleverde effect gebruikt milliseconden en volgt geen tempoveranderingen of lijn zijn stappen uit met het muzikale raster van het project.

De eindpunten kunnen in elke volgorde worden ingevoerd omdat het programma ze sorteert. Het wijzigen van een willekeurige schuifregelaar start een nieuw interval op het volgende verwerkte sample. Het willekeurige niveau wordt zonder interpolatie vasgehouden, hoewel twee opeenvolgende selecties toevallig dicht bij elkaar kunnen liggen.

Een bewerkbare, herhalende trapbouw bouwen

Gebruik een automatiseringsenvelop als je exacte waarden op exacte tijdlijnposities wilt. Dit is ook de ondersteunde native route voor het toepassen van vaste veranderingen op een blootgelegde effectparameter. REAPER documenteer parametereveloppen en de Square-puntsvorm in hoofdstuk 18 van de User Guide.

Voor een vast volumepatroon, bypass het aangepaste JSFX eerst. Open de envelopbesturingen van de track en toon de Volume-envelop. Houd de track in Trim/Read tijdens handmatig bewerken.

Maak punten aan op 250-milliseconde-intervallen met Shift-klik, en verplaats ze naar onevenmäßige niveaus. Rechtsklik op een punt en gebruik Set Point Shape → Square. Pas die vorm toe op elk punt wiens uitgaand segment zijn waarde moet vasthouden. De envelop moet horizontale plateaus tonen gevolgd door verticale veranderingen.

Voor een andere effectparameter, raak de gewenste controle aan en kies Param → Show track envelope. Voeg punten toe en vorm ze op die envelop. De parameter-menu-workflow wordt beschreven in The REAPER Cockos Effects Summary Guide.

Handmatig onevenmäßige waarden plaatsen creëert een vast patroon; het genereert geen nieuwe willekeurige waarden bij elke afspeling. Om het te hergebruiken, selecteer het tijdsbereik, rechtsklik op de envelop, en kies Automation items → Insert new automation item. REAPER ondersteunt lussende automatiseringsitems en gepoolde kopieën wier bewerkingen doorwerken naar andere kopieën. REAPER User Guide, Automation Items.

Problemen oplossen: gladde beweging, ontbrekende veranderingen, en herhaalbaarheid

Als de envelop nog steeds helling toont, inspecteer de uitgaande puntsvorm. Linear creëert een ramp; Square creëert het vast segment dat hier nodig is. Een square LFO en een handmatig getekende meerniveautrap dienen ook verschillende doeleinden: simpel twee niveaus afwisselen creëert geen willekeurige reeks niveaus.

Als het aangepaste effect geen duidelijke veranderingen produceert, bevestig dat het ReaSynth volgt, dat het ingeschakeld is, en dat de eindpunten verschillen. Probeer 1.000-millisecondestappen met eindpunten -24 en -6 dB om de structuur makkelijker te inspecteren. Keer dan terug naar het bereik dat je project nodig heeft.

Abrupte gainveranderingen kunnen klikken introduceren omdat de sample-vermenigvuldiger direct verandert. Dit programma bevat bewust geen gladstrijking. Kleinere niveauverschillen kunnen de grootte van die diskontinuiteten verkleinen, maar ze garanderen geen klikvrije uitvoer. Een overgangsramp toevoegen zou het exacte direct-stapgedrag veranderen.

Het effect is ontworpen voor een stereotrack en wijzigt alleen de eerste twee audiokanalen. Het schrijft geen automatiseringspunten, bewaart geen gekozen willekeurige reeks, kwantiseert waarden niet naar een kleine set niveaus, en biedt geen temposynchronisatie. REAPER voert normaal een JSFX @init-sectie uit wanneer afspelen start; dit programma reset zijn teller daar. Vertrouw er niet op om dezelfde willekeurige reeks te reproduceren na herstarten. JSFX code-section reference.

Gebruik het aangepaste gaineffect wanneer je automatisch gegenereerde vaste niveaus wilt. Gebruik square-automatisering wanneer je specifieke veranderingen wilt bewerken, herhalen, en bewaren. Beide benaderingen laten de synthetische toon door duidelijke plateaus bewegen; kiezen tussen hen hangt af van of verse waarden of een exact tijdlijnpatroon belangrijker is.

Bronnen