Very slow ramps

Let’s say I want to gradually increase a CV-controlled parameter from 0v to 10v over several minutes. Just a very slow ramp.

I know the Seriously Slow Envelope Generator can do that, or the Seriously Slow LFO. Any other modules? The SSEG takes up a lot of space and feels heavy for what I’m trying to do. The PdArray Miniramp would be exactly what I’m looking for, but it seems like it maxes out at 10 seconds, as do all the other envelope generators I’ve tried.

1 Like

Or use a combination with Hetrick Phase driven modules.(Haven’t played with them yet)

EDIT even smaller :


My unfortunate habit for these types of questions is that when someone asks, “how would you do X?”, I hear, “how would you do X with the modules you wrote?” Mea culpa.

I’m assuming that, in this case, you want the voltage to ramp from 0 → 10 and then stay at 10 (which would not be the case in Seriously Slow LFO). And I take your comment about “heavy” to mean “takes up horizontal” space. I could be mistaken about both.

So here’s a solution using my Fuse module:

Note that Fuse’s menu option for “unplugged value of IN” is set to “10V” here. The LIMIT is set to 1000. At this slowest pulse rate, I believe this would take 96 minutes to complete. That’s nine holes wide. A tap on the RESET button (or trigger to the RESET input) restarts the ramp.

But that’s a little fiddly to get a specific length of time, and I can get less wide. So, in my module BASICally, with this program,

  OUT1 = min(10,
    (time() - run_start) /
      goal_seconds * 10)
  WAIT 500 ' Do nothing to 0.5 seconds.

WHEN start() OR trigger(IN9)
  run_start = time()
  goal_seconds = 5 * 60 '  Five minutes.

And then resizing the module to its smallest width:

That’s just seven holes. A trigger to IN9 will restart the ramp.


Shapemaster (by MindMeld) can easily generate a one-shot ramp up to, I believe, 30 mins in length. It might be overkill, though :wink:


Lilac Accumulator is a simple module that can generate very slow ramps. From the manual:

A signal of N volts connected to the RATE input will accumulate at N volts per second on the SUM output. For example, a constant input of 1V will accumulate to 10V over 10 seconds.

If you want to ramp up (or down) more slowly than that, patch a lower voltage to the rate input. For example, set the rate to 0.1V for a 100 second ramp, or 0.0016667V for a ten minute ramp. Rack lets you type math expressions like 1/600 into parameter text fields which helps with this kind of thing.

Note the module doesn’t account for rounding errors at all so the description “ten minute ramp” is approximate.


Hmm, I’ve just realised that if you generate a 30-minute ramp—with Shapemaster or by any other means—and then set it to cycle, you have a saw wave at 556 µHz… :thinking:

1 Like

For a compact slew limiter that will slowly ramp up and then hold, the Bogaudio SLEW in slow mode takes as much as 100 seconds to go from 0 to 10V.

For a compact slow ramp LFO, the Bogaudio LLFO in slow mode has a minimal rate of 0.0039921 Hz, which is 250.5 seconds or 4.17 minutes per cycle. The Bogaudio LFO is bigger, but gives you simultaneous ramp and saw outputs (plus others)

The Befaco Rampage is certainly not compact, but it gives you too versatile channels, each of which can function as a slew limiter, or an attack decay envelope generator, or an LFO. In all cases, the maximum attack (or decay) length is 105 seconds while in slow mode.

1 Like

One more - the Surge XT EG x VCA in slow mode can have a maximum attack (or decay) time of 120 seconds.

in ADSR mode with 120 second attack, 100% sustain, and 0 release, so passing in a gate takes 2 minutes to reach 10V and then holds until the gate goes low. You could certainly make the release slow as well.

Or DAHD mode with 0 delay and hold, and 120 second attack, and 0 decay, it functions as a slow AD envelope.

Or you can mix your trigger input with the EOC (end of cycle) output to create a slow ramp LFO.

Sounds like a job for ShapeMaster

You can set the length of the ramp in hundredths of a second up to 10 mins and then in tenths of a second up to 30 mins.

And of course if you want to make it more logarithmic or exponential rather than linear you can do that too.

Edit: Oh just saw you wanted compact… maybe not then unless you are going to use more channels on it at which point it becomes pretty space efficient.


Many great suggestions here, thank you all! I feel a little dumb because I tried both the Rampage and the Surge XT but I didn’t get the settings right.

In this case I think I’m going with the Lilac Accumulator because I had thought “there must be a module that lets you feed in small amounts of voltage that build up incrementally” but I didn’t get as far as the word “accumulator.” Also because it’s small and simple, visually and conceptually. The one disadvantage for my purposes is that it stores the accumulated value with the patch file, so I’ll need to reset it on load. (If @grough wanted to make that a context-menu setting, that would be very handy!)

1 Like

Sometimes I want stepped. Here’s a 3 ramp setup. easy to control ramp time using clocked tempo.


My future (free) clocking module, KlokSpid MkII, may does the job.

In development, partially operational, beta coming soon, it supports “extremely slow” LFO feature (either ramp/sawtooth for your usage, but also sines, pulses/gates, planned/working-on wavetables support + many stuff in progress)…

At the moment, KlokSpid MkII works perfectly by using basic waveforms (pulse, triangle, sine, and sample & hold), related parameters (morph), voltage amplitudes/offsets, phase shifts, all can be modulated by CV if you need this!

In this example, as master (standalone) clock generator, BPM is set to 1 (minimum possible BPM):


Modifier ratio (for output 3, here), is set to /16384 (it’s the highest possible divider - inspired from existing hardware).


Selected waveform is TRIANGLE - yep, ramp/sawtooth - either up and down - are particular forms of triangle: right triangles (US), or right-angled triangles (UK).


…triangle ‘morph’ (it’s Tilt, for triangle) is set as RAMP UP (triangle Tilt parameter, set by slider at right position, moves “left-right” the top vertex along the output-phase). Here’s set as ramp up:


One complete cycle (phase, or beat) duration is just insane: 60 s / 1 BPM * 16834 = 983,040 seconds = 11 days, 9 hours, 4 minutes, the slowest possible by using single instance of KlokSpid MkII module!

By using the set-up described above, after two minutes run (initial output voltage was 0V, voltage parameters as factory default: 10V amplitude, V-Offset = 0V, amplitude above v-offset). After 2 min 00.040s run, voltage is… 0.00122V. The road to reach 10V is so long! (too long for my patience) :wink:

Of course, this was an extreme case, not reasonable (seriously, who are running VCV Rack non-stop, during consecutive days?). Obviously, can be reduced to hours, minutes, seconds… just by tuning the main BPM and/or the clock ratio applied on output.

They’re existing ton of ways (by using different modules, many of them are excellent) to do that you want!



That’s a good point. There will be a “Save sum with patch” menu option in the next plugin update (v2.0.3). It will be enabled by default, but you can disable it and save that as your default preset for the module.

1 Like

Hey that’s awesome, thanks!

You can do a slow ramp using an Audible Instruments Tidal Modulator. Put it in trigger mode, low frequency range, V/Oct to taste. Can make it even slower if you put negative voltage in to V/Oct. Only goes up to 8.0v but could mix two copies of the output together to bump it up to 10v. Drops back to 0v when done. Not sure if you want that?

slowtide.vcv (1.1 KB)


Check out Hetrick’s Phasor Generator, with a fixed -10V applied to the Frequency CV input, Frequency knob at minimum, and toggle switch to Slow.

I grew impatient waiting for it to finish, but it definitely would go many minutes. Something on the order of rising by 1 millivolt over ten seconds.

[edit] Update: I hooked up a voltmeter (NYSTHI) and an elapsed time timer (NYSTHI), and the Phasor output took 18 minutes 2 seconds to exceed 1.0 volt.

It looks like you could stretch one cycle to 3 hours.


Yet another method:

The CLOCK DIV puts out an 8-bit value which is converted to a CV that rises a bit (so to speak) which each clock pulse.

The aim there was to produce a slow sawtooth that would drop back to 0 V at a very specific (e.g. 512, as shown in the screenshot) number of clock pulses. Any aliasing in the 8-bit resolution of the analog CV signal was not detectable in this application. If it was a problem, I could always double up on the CLOCK DIV and D-A Converter, scale each output to half, then sum them. Changing the BPM of the main clock still results in the CV waveform dropping to zero after the same number of clock pulses, so no tedious arithmetic to do to compensate for the tempo change.

[oops. :blush: That screenshot does not show how the END trigger output from COUNTDOWN 5 was supposed to reset CLOCK DIV to end the ramp when the countdown ends, and then it repeats indefinitely.]