4ms Pingable Envelope Generator: Eurorack Module User Manual v2012-06-01 (Rev4.2)
4ms Pingable Envelope Generator: Eurorack Module User Manual v2012-06-01 (Rev4.2)
4ms Pingable Envelope Generator: Eurorack Module User Manual v2012-06-01 (Rev4.2)
The Pingable Envelope Generator (PEG) from 4ms Company is a dual envelope generator whose envelope
lengths are set by the time between clock pulses or “pings”. The PEG has full CV control of envelope shape, skew,
and ping (clock) division/multiplication, as well as a plethora of triggering and cycling options (AD, AR, quantization,
cycle, cycle toggle), and a tap tempo button for each channel.
This manual covers firmware version 4 (four gold bars painted on the chips, and four flashes when entering System Mode)
Dimensions
Power consumption
+12V rail:
60mA max with 5V Source jumper selecting external 5V
105mA max with 5V Source jumper selecting internal 5V
+5V rail:
40mA max with 5V Source jumper selecting external 5V
not used with 5V Source jumper selecting internal 5V
-12V rail:
35mA max
Page 2
Your first P.E.G. Patch: a Basic Walkthrough
• Tap the red channel Ping button two or three times, about a second between taps. It's easier to see what's going on
with a slow envelope. The white Ping button should be flashing at the tempo you tapped. If you gave a third tap, the
time between the taps will be averaged (unless the third tap occurs more than 50% different than the timing period of
the first two taps)
• You also could run an external clock into the red Ping jack (when a gate is received on the Ping jack, the internal tap
tempo clock is stopped).
• Press the red channel Cycle button (it will light up green). Notice the white LED above the
ENV jack starts flashing. The envelope is now running freely, in time with the ping clock.
Adjust the other module(s) you are running the PEG into so you can hear the modulation.
• You also could turn Cycle off and run a manual trigger into the QNT or Async jack (e.g. try
the Gate output from a Pressure Points, or perhaps a slow clock output from an RCD/SCM)
That's the basic PEG patch: Ping, Trigger, and Output. Now we can play with the parameters of the envelope.
Step 7: Play with it! Try triggering the blue channel with the red channel
• Now plug the red EOF (end-of-fall) jack into the blue Ping jack. Turn the blue channel Cycle button On. Run the blue
channel "ENV" jack output to modulate something else. Set Scale and Bi-polar as desired.
Keep going, play with the "T" jack, try clocking both channels the same and hitting different triggers into the QNT jacks... play
with off-time triggers into the Async jack while the channel is in Cycle mode... modulate each channel with the other, or
themselves... etc etc! Have fun!
Page 3
Ping and Tap Tempo
"Ping" is the core of the PEG: every aspect of the envelope relates back to the timing established by the ping time.
There are two ways to set the ping time:
1. Tap tempo button — tap the white "Ping" button at least twice to set the timing.
◦ It's easiest to tap a tempo with Ping Div/Mult set to "=". This is because the tap tempo clock can be
divided/multiplied just like the external Ping clock. For example, if you tap a tempo with the Ping Div/Mult knob
set to "x4", the Ping light will flash four times as fast as you tapped.
◦ Three taps will average. Two taps set the ping timing period. If you give a third tap, it will be averaged with
the first two taps, unless the timing period set by the third tap is widely different than the first two taps
(specifically, it must be more than half, and less than twice the timing period set by the first two taps).
◦ When a gate is received on the Ping jack, the tap tempo clock is disabled. Try tapping a fast tempo while
you have a slow clock going into the Ping jack — the fast tempo will take effect immediately, but will revert
back to the slow tempo when a gate is received
◦ Hold the Ping button down for 2 seconds to clear the tempo. The light will go off and the envelope will
stop. You also can clear an externally generated ping if the external unit has stopped sending pulses. If you
hold it down for too long, all the lights will flash rapidly and you'll enter System Mode. Don't worry, just release
and hold Ping down again for 2-3 seconds and it will go back to normal mode.
2. External Clock — plug a clock or manual trigger module into the Ping jack.
◦ Only the timing between the last two pulses is used to set the ping clock timing (no averaging). Therefore
you can plug in a manual trigger/gate module and just tap in two pulses: the ping clock will continue to run at
that tempo even though you're not providing any more trigger pulses. Note: in System Mode, you can disable
this free-running feature (thus, giving the PEG two external pulses will output just one envelope and then stop)
See the System Mode section.
◦ The Ping jack has no roll-off, but the main chip can process incoming clocks up to about 10kHz.
However it can only output cleanly up to about 1kHz (depending on your requirements for "cleanly"). So you
can divide an 8kHz clock down to a 1.0kHz triangle wave (/8), moderately cleanly. When outputting frequencies
higher than 1kHz, the output will be noisy and glitchy, but still responsive to the input frequency. Below the
1kHz threshold, the PEG can be used as a rudimentary harmonizer (e.g. sub-octave generator). See Audio
Harmonizer patch.
The maximum time of either envelope curve (rise or fall) is about 15 minutes, total envelope time is 30 minutes.
Ping Divider/Multiplier
Once a ping time has been established, you can then divide or multiply it from 1/8th the speed to 8 times the speed, in whole
number increments. The resulting clock is called the "Divided/Multiplied Ping Clock", or just "Ping Clock" for short.
• The Ping button flashes to the rate of the Divided/Multiplied Ping Clock
• The Ping Div/Mult knob sets the amount of multiplication or division of the incoming ping time, along with any CV that's
applied to the Div jack (the knob sets the offset for the CV)
• Changing the Div/Mult amount in the while an envelope is running will immediately change the slope, and the slope
will continue to track the Div/Mult amount as long as it keeps changing. If no change to the Div/Mult (or skew) is made
after a practically imperceptible duration of time (about 50ms), then the envelope will re-sync to the ping clock based
on the new Div/Mult amount. See Figures 1a and 1b
◦ The except to the re-syncing behavior is that in Async mode, the envelope never re-syncs to the ping clock. See
Async vs. Sync section, and Figure 2.
• Re-syncing transitions are slew-limited to prevent popping when running into a fast-responding VCA
Figure 1a: Changing Div/Mult gradually (slow knob movement) Figure 2: Changing Div/Mult in Async mode.
Slope of envelope tracks the Div/Mult amount until the knob Notice the envelopes do not land on the Ping
stops turning (about half-way across the figure), at which point it clock (envelope is not synced to the ping clock).
re-syncs to the ping clock. Also notice smooth transitions between speeds
Page 4
Triggering/Cycling the Envelope
• QNT jack (Quantized) — Apply a trigger/gate to this jack to cause an envelope to start on the next ping clock. The
PEG will wait for the next divided/multiplied ping clock and then start the envelope. Holding a gate high on this jack
causes the envelope to repeat. See Figure 3a. The envelope will complete at least one entire cycle. If a second QNT
pulse is received while the envelope is running, a second envelope will be generated. If the channel is in Async mode,
triggering QNT goes back to sync mode.
◦ Re-phasing with QNT: If Div/Mult is set to /n (dividing), and Cycle button is on, then hitting a trigger into QNT will
re-start (re-phase) the envelope on the next incoming ping clock. This can be useful for multi-phase outputs (e.g.
Quadrature patch). If you want the envelope to run freely without re-phasing, just use one or the other (but not
both QNT and Cycle), or don't divide the ping. See Figures 3b and 3c.
• Async jack (Asynchronous) — Apply a trigger/gate to this jack to causes the channel to enter Async mode. An
envelope will start immediately. Holding a gate high will cause the envelope to sustain, and then start the fall curve
once the gate is released (A-S-R envelope). In Async mode, the envelope does not sync to the ping clock. However,
the envelope length is still determined by the ping clock. See Async vs. Sync section. See Figure 4, also Figure 2.
• Cycle Button — Press the button to toggle Cycle mode on/off. When this button is lit up, the envelope will keep
running without needing any external triggers. When the button is turned off, the envelope will finish its cycle, and then
stop when it "hits bottom".
◦ In Sync mode ("normal" mode), turning Cycle on starts outputting an envelope from a point such that the envelope
will end on the next expected ping clock (think of it as if the envelope has always been running in sync to the ping
clock, and turning on Cycle un-mutes it). See Figure 5.
◦ In Async mode, the envelope will start from 0.
• "T" jack (Cycle Toggle) — When a gate is applied to this jack, both channel's Cycle buttons will toggle state (on->off
and off->on). When the gate is released they will revert to their previous state. The "T" jack is useful for toggling
between the two channels: set one channel in Cycle mode and the other channel to non-cycling, and take the output
from the OR jack (see Outputs section below). The "T" jack is also useful for turning both channels on/off at the same
time.
Page 5
Skew
Skew is the ratio between the rise and fall times (slopes). Unlike most envelope generators, in the PEG the total envelope
length is held constant when the skew is changed, thus allowing you to change between ramp-up, ramp-down, triangle, and
everything in-between, without altering the timing. See Figure 6.
If Skew is changed while an envelope is running, the curve will update immediately. Some funky outputs can result from this
See Figure 7.
Skew Limiting: Normally the fastest rise time is 10uS, fastest fall time is 200uS. This can sound great into an LPG, LPF, or
modulating all sorts of things, but it's fast enough to cause an audible click into some highly responsive VCAs (such as the
4ms VCA Matrix). Obviously, if you back the Skew knob off from the max/minimum settings the skew will be reduced enough
to avoid popping. However, if you are modulating skew with CV it can require some careful attenuation to prevent popping. A
shortcut solution is built into the PEG's System Mode. When Skew Limiting is enabled, the fastest rise or fall time allowable
will be 6ms, which is slow enough to prevent VCA popping. See the System Mode section for the procedure of how to set the
Skew Limiting parameter (it's the white ENV light).
Figure 6: Skew examples. Skew knob was turned up a little bit in between each envelope.
Figure 7: Funky envelopes made by twiddling the skew parameter while envelope is running
Curve
The envelope shapes available in the PEG are formed by combinations of exponential, linear, and logarithmic waveforms. In
between each fully expo/lin/log waveform, there are three interpolated waveforms formed from weighted combinations of
each (e.g. 25% log, 75% linear). The waveforms can be symmetrical (e.g. linear rise & linear fall), or asymmetrical (e.g. exp
rise & log fall). See Figures 8a-8d.
The curve is selected from one of 17 using the Curve knob and CV jack (the knob sets the offset for any applied CV). Look
closely at the artwork around the Curve knob on your PEG to see how the curves are arranged. Asymmetrical curves are at
the extremes, and symmetrical curves are in the center.
As you turn the knob from 0 to max (clockwise), the curves change like this:
• First 4 curves are asymmetrical with exponential attacks and different decays (log->expo) Figure 8a
• Next 4 curves are symmetrical, ranging from exponential to linear in 4 interpolated steps. Figure 8b
• Middle Curve is linear (triangle wave)
• Next 4 curves are symmetrical, ranging from linear to logarithmic in 4 interpolated steps. Figure 8c
• Last 4 curves are asymmetrical with logarithmic attacks and varying decays (log->expo) Figure 8d
Once a rise or fall segment has begun, the shape will not change until the segment ends. However, applying a pulse on the
QNT jack or turning the cycle button on will force an immediate update of the curve shape.
Page 6
Envelope Outputs (Main ENV, +5V ENV, OR)
Each side of the PEG has two outputs: a scaled output labeled "ENV" and an unscaled output labeled "+5V ENV".
Additionally, there is a shared output that's the arithmetic "OR" of the scaled outputs.
• The Scale knob and Bi-polar button only effect the ENV and OR output jacks:
◦ With Bi-polar off: If the scale knob is right of center, the output will be positive-only, from 0V to a maximum of +10V.
Left of center, the envelope inverts and is negative-only, from 0V to a minimum of -10V.
◦ With Bi-polar on: Scale knob right of center, the output will rise from negative to positive, then fall back to negative
voltage (maximum range -5V to +5V). Scale knob left of center, the output starts positive and "rises" to negative
voltage, then "falls" back to positive voltage.
◦ In any setting, Scale knob in the center will produce no output.
◦ The Bi-Polar button is a level-shifter before the scale/inverter. The amount of level-shifting is controlled by a trim
pot on the back of the module. Factory setting is a shift of -5V (thus 0V to +10V becomes -5V to +5V). One
common use would be to set this to about -10V of level shift, so that the output when Scale is inverting would be
positive voltages, but with an inverted waveshape. In this way, the +5V ENV jack and main ENV jacks will produce
inverted copies of the same waveshape, both uni-polar.
• The main output is the ENV output and its amplitude is controlled by the Scale knob and Bi-polar button
• The +5V ENV jack always outputs a waveform that goes from 0V to +5V. The scale and bi-polar controls have no
effect on this. This jack is useful as an auxiliary envelope output. It's often useful to patch into the other channel's CV
jack(s) to modulate parameters.
• The OR jack will output the highest voltage value from either side's ENV jack at any given moment. One way to use
this is to think of the OR jack as a mix out, and use the Scale knobs as level knobs and the Bi-Polar buttons to bring
down the relative level of a channel (kind of like a mute button). See Figure 9c
Figure 9a: Changing Scale (Bi-polar off) Figure 9b: Changing Scale (Bi-polar on)
Top traces are ENV as Scale is turned from max to min. Bottom traces are +5V ENV. Grid lines are 5V/division.
Page 7
Gate Outputs (EOR/EOF/Half-Rise)
Each channel has a two gate outputs: End-of-Fall (EOF), and either End-of-Rise (EOR) or Half-Rise. System Edit Mode can
be used to change the functionality of these jacks, as well as select whether each jack outputs gates or triggers.
• End-of-Rise outputs a gate that goes high when the fall segment begins, and goes low when the envelope completes.
It is low during a sustain segment. The jack will stay low when the envelope is not running. Another name for this jack
might be "Envelope is Falling". System Mode selects whether it outputs gates or triggers. See Figures 10a and 10b.
• End-of-Fall outputs a gate that goes high when the fall segment ends and goes low when a rise segment ends. It is
low during a sustain segment. It will stay high when the envelope is not running. Another name for this jack might be
"Envelope is Rising or Resting". System Mode selects whether it outputs gates or triggers. See Figures 11a and 11b.
• Half-Rise outputs a gate that goes high when 50% of the envelope's rise time has elapsed. It goes low when 50% of
the fall time has elapsed. It is high during a sustain segment, and stays low when the envelope is not running. System
Mode selects whether it outputs gates or triggers. See Figure 12a.
Figure 10a: End-of-Rise (EOR) Gate Figure 11a: End-of-Fall (EOF) Gate Figure 12a: Half-Rise Gate
aka "Is Falling" aka "Is Rising or Resting" HR goes high 1/2 through time of Rise
(regardless of curve/skew/shape).
Figure 10b: EOR Trigger output Figure 11b: EOF Trigger output
Width of trigger is 4ms Width of trigger is 4ms
By using System Edit Mode, you can re-assign the EOF jack to output the tap tempo clock (see System Edit Mode section for
the procedure). With this enabled, the EOF jack will always output a free-running clock that you can set by tapping in a
tempo. The jack will always output a steady TTC (Tap Tempo Clock), no matter if the envelope is running or not, and
regardless of the skew, div/mult, or curve settings. In System Mode you can select gate or trigger output.
One common use for this is to simply patch EOF/TTC into the other channel's Ping jack. Now the channels are synced to your
tap tempo! Or patch the EOF/TTC into a clock divider/multiplier, patching one of the clock outputs back to the same channel's
Ping jack. The remaining clock outputs can be used to keep your other modules in sync with the Tap Tempo clock on the
PEG. You can change the Div/Mult settings on the PEG, or start and stop the PEG's envelope, and your Tap Tempo Clock will
keep running steady.
Page 8
Async vs. Sync Mode
There are two main modes the PEG runs in: Sync mode and Async mode. The two modes effect the way the envelope is
sync'ed (or not) to the Ping clock. The difference between the modes is easier to see when the Cycle button is on.
Differences between modes: (much easier to see with Cycle button on)
• Sync Mode: This is the "normal" PEG mode. The envelope is locked to the Ping clock: it always starts and stops on
the ping clock unless you are rapidly changing Skew or Div/Mult (in which case the PEG will snap back to sync when
about 50ms have passed since any modulation change). See Figures 1a and 1b in the Ping Divider/Multiplier section
• Async Mode: In Async mode, the envelope will try to start on the same point in time relative to the ping clock, but this
point of time (called the "async reset point") can change. With Sync mode, this point in time is the (divided/multiplied)
ping clock itself – but with Async mode, this can be any arbitrary point in time in the ping's cycle. This "async reset
point" can either be set intentionally by hitting a trigger on the Async jack, or it can just "float into place" if you
modulate parameters which change the envelope's landing point. An Async envelope can be 0° to 360° out of phase
with the ping clock, which is useful for phase modulation.
◦ Using Async triggers to change the "async reset point": Try this patch: supply a Ping clock that's about 1 pulse per
second. Use the same clock to make a sound with some other module, using this as a metronome/reference. For
simplicity, turn Div/mult to "=" and Skew to about a sharp rise (maybe 90%). Turn cycle mode on. Hit a trigger into
Async about half a second after a ping. The envelope will restart when it receives the trigger and will continue to
cycle, always starting half a second after each ping. This is your "async reset point": half a second after the ping.
Hit another trigger just a moment before the ping. Now the the envelope will always be starting just a moment
before each metronome pulse. Keep playing with it till it makes sense, this is an advanced but very useful
technique. See Figure 13a
◦ Using skew/div modulations to change the "async reset point": Patch the example above. Try turning Skew back
and forth, as well as Div/Mult. Smooth, huh? Stop turning the knobs and notice how it's now starting at a different
point relative to the metronome. The "reset point" has changed to accommodate your knob wigglings. If you were
in sync mode, it would have snapped back to starting on the ping clock. But in Async mode, it can start anywhere.
See Figure 2 and Figure 13b.
Page 9
Beyond Mere Envelopes... Advanced PEG Patching
Hopefully after reading this far into the manual and playing with your PEG, you have a clear understanding of how to make a
variety of timing-dependent envelopes. The following patches illustrate how the PEG's large assortment of inputs and output
types can be used for a variety of purposes besides envelopes.
Self-oscillation (self-patched)
Very chaotic interesting noises. Needs a human to fine-tune the settings. Spend some time on this one!
Patch EOF to Ping. Patch ENV output to your audio mixer. Set Div/Mult to between = and x2 (adjust this very slowly
throughout the patch). Cycle On. Scale will be your output volume. Skew and Curve effect the "timbre" (heh). Give PING a
few taps to get it started.
More advanced: Do the basic patch to both channels, with both ENV outputs going to an audio mixer (or just listen to the OR
output). Now patch Half-Rise into the "T" jack. Play with Cycle button settings. Keep patching each channel into itself and/or
the other. Try running one channel's output to control a filter, the other controls a VCO running into the filter.
Audio Harmonizer
Sub-octave and harmonic series from an audio input
Run an oscillator into Ping input. Cycle On. Set your frequency shift amount with the Div/Mult (e.g. x2 will be an octave up, x3
will be an octave plus a fifth, /8 will be three octaves down, etc...). Audio output from the ENV jack. Scale sets your volume.
Skew and Curve set your waveshape/timbre. Keying Async will mute the signal. Turning Cycle off and keying QNT will gate
the signal.
Do this on both channels and use the T jack to toggle between harmonics, taking the output from the OR jack. Unplug one
channel's Ping to let it slowly drift, creating phaser swooshing sounds.
Run into a LPF with roll-off at 10kHz for a less harsh sound!
Page 10
Clockable Trigger Delay
A trigger is fed in, and after a delay (which is determined by a clock), a trigger is outputted.
Patch a trigger (e.g. from Pressure Points gate output) to the Async jack. Patch a clock into the PING jack. Set Div/Mult to /2.
Set Skew to center. EOR will be your delayed trigger output (actually is a gate as wide as the clock period ). Changing Skew
will fine-tune the delay time as well as output gate pulse width. To get a true trigger output, enable EOR trigger mode in
System Edit mode.
Phase Shifting
Variable phase shift – two sets of events have variable amount of stagger.
Clock both channels with the same clock (see first example patch idea). Cycle on (both channels). Use both main envelope
outputs to make sound (open two VCAs, perhaps).
Some options for setting the amount of phase difference:
• Manual trigger into Async jack on one channel. For example, to set the blue channel to lag by 25% (90° phase
difference), hit the trigger a quarter of the way after a red channel pulse. Any phase shift amount is possible.
• CV Skew. Changing the skew will change the timing that the peak of the envelope occurs. Thus, sweeping the Skew
of one channel while holding the other steady will cause the envelope peak to shift in phase with respect to the other
envelope's peak. This only a perceptual phase-shift.
• Quantized phase selection. Slow each channel down to /8. Speed your clock up if necessary. Give a trig to both
channel's QNT jacks to make sure you're in Sync mode. Turn blue channel cycle off. Listen to the red channel, and at
a moment just before you want the blue channel to come in, press the blue Cycle button on. The blue channel's phase
will be quantized to one of 8 possible phases (0°, 45°, 90°, 135°, 180°, 225°, 270°, or 315°). It helps to set a sharp
attack on the red channel (Skew at 100%) so you can hear the timing better. Cycle button can be turned off and back
on to change phase again. Use different Div settings for different possible phase shift amounts (e.g. /7 gives 0°, 51°,
102°. etc...)
Quadrature patch
1) First, you have to set up the phase difference between the two channels:
• The easy way: Clock both channels with the same clock (see first example patch idea) and patch the blue channel
Half-R into red channel Async. Turn blue Cycle on and red Cycle off. Adjusting the Skew of the blue channel will
change the amount of phase shift from 0-180° (50% skew will be 90°). Note: Half-Rise output should be in trigger
mode or you may get a trapezoidal waveform on Red.
• Another way, just for kicks: Clock both channels together and set both to /4. Give both channels a QNT pulse so
they are in Sync mode. Using the same technique as described in the Quantized phase selection patch above, hit the
Cycle button at the right moment so that one channel is 90 degrees out of phase as the other. Or if you really like
doing things the most complicated way possible, turn blue Skew one mark to the right of center, turn red Cycle off, wait
for red envelope to finish, wait for the blue Half-R LED to go off, and immediately patch blue Half-R into red QNT. The
two channels will be 90 degrees out of phase. Bonus points if you can figure out why! (hint: Skew just right of center
means Half-Rise goes high just before 25%s of the entire envelope has passed...)
2) Now adjust the levels:
• Turn both Scale knobs to about 10:00 (inverting), and both Bi-polar buttons on. Run the main ENV outputs into a Level
Shifter (e.b. Bubblesound LvL+rm or Doepfer A-129/3) to add about 2.5V so that the inverted signals are at the same
DC offset as the +5V ENV outputs. Your four phase shifted outputs will be Blue +5V ENV (0°), Red +5V ENV (90°),
Blue level-shifted ENV (180°), Red level-shifted ENV (270°).
If you use this patch often and want to avoid using an external level shifter module, you can adjust the Bi-Polar trim pot as
described in the Bi-Polar section above.
Jumpers
Page 11
System Mode
System Mode is an advanced feature of the PEG that can be used to re-assign the functionality of jacks, and change
operation in general. It is only present in firmware version 3 and later. Each channel (red/blue) has an independent system
mode, that is, changes made on one channel will have no effect on the other channel.
• When you are satisfied with your new settings, press and hold PING for two seconds. All the lights will flash a few
times again. Now you are back to normal operation.
• System Mode settings are saved in EEPROM memory, so they will be "remembered" after powering down.
Page 12