Ramps are kind of a broad category which I would say are maybe defined by being derived from the sync signal, as opposed to oscillators which are free-running unless they have their phase synced. Often this means that ramps are stationary on the screen, while oscillators can scroll when tuned to frequencies that are not exact multiples of the sync rate.

For instance, the most basic kind of ramp waveform is probably a rising horizontal ramp: it is 0V at the left edge of the screen, 1V at the right edge of the screen, and linearly ramps from 0V to 1V across each scanline, so you get a linear gradient from black to white horizontally.

There’s a fair bit going on here, but we can break it down, going from left to right (like a ramp )

The TL431 (U10) and the resistors on the far top left form a voltage source, providing a voltage reference at the positive input of the opamp U12.1.

This means that this opamp, Q1, and R44 form a opamp current source, supplying very constant current to the load capacitor C29.

Since a capacitor’s voltage-current relationship is defined by i = C dv/dt, and here the current i is constant, we can solve this equation to find that the voltage across C29 is v = it / C. So the capacitor voltage linearly ramps up at a rate controlled by the current and the capacitor value – since this is the horizontal ramp, the capacitor and resistor values in this part of the circuit are chosen so that the capacitor charges up over the time it takes to complete a scanline.

Q3 acts as a voltage-controlled switch, so that when a horizontal sync pulse occurs, the charging current instead flows to ground, so the capacitor can discharge exponentially back to 0V during the horizontal reset phase. This cycle – the capacitor charging linearly during each scanline, and discharging completely during the reset pulse – is what makes the horizontal ramp waveform.

U12.2 and U12.3 act as buffers, isolating the voltage divider formed by the trim pot R1 in series with R2. This lets you use the trim pot to attenuate the ramp as desired, so you can rescale the ramp to complete its 0V to 1V rise during exactly one scanline.

U12.4 acts as an inverting summer with this ramp and a -2V reference. Note that R48 is 20K while R47 is 10K, so the output of this opamp is -10K(-2 / 20K + v(t) / 10K) = 1 - v(t), where v(t) is our 0 to 1V ramp: this is the falling ramp output.

The bottom part I don’t totally get yet, but its purpose is to produce a “mirrored” ramp that is 0V in the middle and 1V at the left and right edges of the screen. The diodes act (I think) to change the structure of the feedback path, switching from a falling ramp to a rising ramp when some threshold value is reached.

The Visual Cortex ramp generator I would guess starts with something similar to the Cadet circuit above, but then passes these linear ramps through more mirroring and waveshaping circuits to give a range of triangles, diamonds, curved shapes, etc. Two of the outputs on the VC ramp generator give a hint to one way to recombine ramps into a pattern that changes both vertically and horizontally across the screen: the “H + V” and “H - V” outputs are the sum and difference of the “H” and “V” signals. You can try mixers, faders, keyers and anything else with 2 or more inputs to build different shapes out of simple ramps, and you can use them as modulation sources, keyer inputs (e.g. for generating wipes), or anything else you wanna try plugging em into. Ramps are also useful for defining coordinate axes for other applications such as shape manipulation or vector rescanning (such as with Navigator and Shapechanger), as well as lots of things I’m not thinking of or that you may yet discover.

Ah, that’s it! So waveforms derived from the sync signal. That makes sense. I looked at the output on my O’Tool and it looks like sawtooth waves. I had not tried to mix H and V ramps in a mixer before but I did so with a Doepfer A-138a and it worked. So that’s how I can combine the signals from the Shapeshifter and Navigator! Very cool to have learned this.