Thank you for buying EBB & FLOW by SYNTHFOX. EBB & FLOW is an intricate dynamics/harmonics processor with lots of features, self-patching capabilities and multiple operation modes. In this manual, an overview of EBB & FLOW's features is given, as well as some additional information, such as a flowchart (logic diagram) of the module's insides and some patch ideas. Please, read the safety notice carefully!


  1. Installation / Safety Notice
  2. General Overview
  3. Controls
  4. Flowchart
  5. Calibration and settings
  6. Patch Ideas

Installation / Safety Notice

Thank you for buying EBB & FLOW! We at SYNTHFOX want people to have as much fun with and make as much good use out of our gear as possible. But first, we want users to be safe and their synthesizer systems to be fully functional. This device is not a consumer piece of electronics. This is a specific part (module) that is to be installed into a Eurorack system and interfaced with other parts of it. The user handles the installation process - extra care should be taken!

EBB & FLOW has a keyed connector. The included ribbon cable is tested to comply with standard Eurorack boards, and it cannot be inserted the wrong way into the module. However, the power distribution boards may vary, and it is up to the user to understand which way to connect the ribbon to the distribution boards. The red line on the ribbon cable marks the -12 volts line. The module should be connected like in the picture below: on the left side is the bus board connector, and on the right side is the connector on EBB & FLOW.

image by David Haillant

When installing the module:

The module should now be ready to play. Have you any troubles, feel free to reach out to SYNTHFOX through synthfoxmodular@gmail.com.


The slope generation combomodule EBB & FLOW consists of two slope, or envelope generators - EBB on the left and FLOW on the right - and minimum/maximum voltage selectors at the bottom. With its four separate, yet intertwined submodules, EBB & FLOW is a compact and intuitive slope powerhouse with endless possibilities of external and internal patch-programming!


The EBB slope is located on the top left of the module - all yellow controls are related to EBB. Upon receiving a trigger, EBB will produce a slope at its OUT jack, indicated with an LED. The slope will instantly rise to its maximum (about 10v) and start moving back to 0, producing a spike-shaped envelope. One of the most textbook usages for EBB is controlling a VCF or a VCA to create pluck or drum shaped sound. The time of EBB's decay is controlled by the TIME setting at the very top. TIME setting can be voltage controlled using an attenuverted TIME CV input below the initial setting. The EBB time setting does not track 1v/oct standard.

The SHAPE setting is below the time knob/attenuverter, and it morphs the resulting envelope shape logarithmic through linear to exponential. The pictograms on the SHAPE control sides serve as shape guides. The logarithmic envelope (shape pot full counter-clockwise) stays on top for a longer time, then suddenly starts drooping and hits the ground, almost resembling a full logic pulse. The linear envelope (shape pot at noon) uniformly descends from top to bottom without ever changing the decay rate. Finally, the exponential shape envelope (shape pot full clockwise) very rapidly retreats after reaching the maximum, and decays slower as it reaches zero, resulting in a low-voltage 'shelf' after a high voltage 'spike' - most natural analogy for the amplitude and timbre of acoustic drums. The shape knob allows morphing between the three and tweaking for the unique setting that fits the moment best.

Please note: because of the EBB shape control being a CV feedback loop, the more logarithmic the shape is, the longer the overall envelope will become. Likewise, the more exponential it is, the faster. Changing the shape setting will immediately alter the effective range of the EBB side; for this reason, it is advised to set the shape before doing any fine EBB time tunings, as changing shape will ruin them.

The EBB side has two triggering inputs: SYNC and ASYNC. An active gate or any other high logic signal to either of these inputs will result in a slope at the output. Both SYNC and ASYNC inputs are fit with comparators, so using an LFO or sound to set EBB off is also an option. While both SYNC and ASYNC expect a transition from low to high logic level (e.g. gate from a keyboard upon pressing a key), if EBB is already actively producing a slope at the moment, the SYNC input will get ignored. That is because it is synchronized with EBB's logic circuit and will only react if the previous slope finished decaying. In contrast, ASYNC always reacts to a gate, no matter the state of the EBB itself at that moment. This means that the SYNC input allows for using EBB as a clock divider or suboscillator, while the ASYNC input is best for action expected from classic envelopes.

The third input in the row, INJ, injects a voltage directly to the EBB's lag processing core, bypassing the logic circuitry altogether. This allows for using EBB as an immediate attack - sustain - release envelope if a gate is directed to INJ, as well as using it as a negative-going slew limiter (lag processor), or - since EBB's time setting goes well into audio range - as an extraordinary audio processor, sitting somewhere between VCA, VCF, suboctaver and distortion. Using SYNC, ASYNC and LOOP an INJ at the same time may confuse the logic circuitry and result in unexpected behaviour: useful as an artistic tools in some cases, to be aware of as an undesired side effect in other cases.

EBB can be set to LOOP manually by flicking the LOOP switch up, or externally using the LOOP input jack to the left of the switch. When looping, EBB will continuously producing decay spikes over and over, until looping is turned off. Like the SYNC/ASYNC ins, the LOOP input is also fit with a comparator, meaning an LFO, a sound signal, and such, of a sufficient level may be used to set EBB to loop externally. While the module is looping, the SYNC input will be ignored altogether. The ASYNC input may be used to create offbeats and jitters. If the LOOP switch is down, a high gate to the LOOP input will cause EBB to loop. However, if the LOOP switch is up, a gate to the LOOP in will instead stop the looping. One can think of it as inverting the switch selection using the external gate, or vice versa, as the switch and the input are effectively logic XORred.


The FLOW slope generator is on the right, next to EBB. All controls related to FLOW are blue. FLOW acts like an attack-decay or an attack-release envelope, and has separate RISE (attack) and FALL (decay/release) controls. These controls work quite similarily to the EBB - both RISE and FALL times have their initial settings on the very top, and the associated attenuverted CV inputs directly below. Between the RISE and FALL CV inputs is the BOTH CV input. While the FLOW slope does not track 1v/oct, the BOTH input's response is exponential, meaning FLOW can be tuned to track fair volt-octave over a limited time range using an external summator or attenuator. Both the RISE and the FALL CV input jacks have the FLOW slope output normalled to them, creating a CV feedback loop very similar to that of EBB's SHAPE control. If nothing is patched to the RISE (or FALL) CV input, its attenuverter will then act like EBB's SHAPE control over RISE (or FALL, respectively).

The TRIG and GATE inputs of the FLOW submodule allow for attack-decay and attack-release slope actions respectively. They expect a gate signal, but are equipped with rigid comparators and will detect sound and CV of sufficient levels as gates, too. FLOW's behaviour upon being activated using the TRIG input resembles a Serge-style slope generator, whereas using the GATE input has FLOW behave closer to a conventional envelope generator.

Upon getting actuated through the TRIG input, the FLOW slope starts rising. How quickly it rises is controlled with the RISE time setting and its associated attenuverted CV input. Upon reaching its maximum of around +10V, the slope immediately turns around and starts falling down to 0. How quickly it falls is defined with the FALL controls. While the FLOW slope is falling, it will be ignoring the TRIG input and will not get retriggered until it finishes falling - similarly to the EBB's SYNC input.

However, if the GATE input is used instead, two major differences occur. Firstly, when the slope reaches its peak, it will stay at that peak while there's a high logic signal at the GATE input - e.g. as long as a key is pressed, the OUT will stay at peak. Only when the GATE is low again will FLOW start falling to 0. If the gate is gone before FLOW reached peak, it will continue rising until it does, and then fall immediately, quite like with the TRIG input. The second difference is that when FLOW is in falling stage of the slope, a new logic high signal to the GATE input will retrigger FLOW and cause it to go up again.

The FLOW function is more comlex and open to patch-programming than EBB. Along with its main slope OUT on the right, it has the UP and END outputs. These are both binary logic ("gate type") outputs, switching between 0 and around +10 volts. Upon FLOW getting activated through either TRIG or GATE, the UP out goes high - the indicator LED lights up. This output will stay high as long as FLOW is rising or sitting at its peak value. As soon as FLOW enters the falling state, the UP output drops to logic low (0v). After the FALL slope finishes falling and returns to 0, the END output goes high, indicating that the rise-fall cycle has ended. END will stay high until a GATE or TRIG is received, which is when it will immediately turn low (and UP will go high again).

These two outputs allow for various patch programming of different complexity. The simplest usage of END would be to patch it to FLOW's own TRIG input, causing it to get triggered every time its cycle ends - essentially, creating an arbitrarily shaped oscillation. Since the RISE and FALL controls both span over CV and moderate audio rates, FLOW can be used both as a sound source (VCO) and a CV source (LFO). UP can be used to trigger EBB the moment FLOW receives a GATE or a TRIG, to later sum EBB and FLOW up for a synchronous complex multistage envelope.


Aside from its two main slope generator submodules EBB and FLOW, which only interact if patched accordingly, the EBB & FLOW unit provides an additional layer of utilities that intertwine, animate and unite the two. These are the OMNI control and the MIN/MAX selectors.

The OMNI input resides in the middle of the unit, between the EBB INJ in and the FLOW TRIG in jacks. It is graphically surrounded with a rectangle and resides at the border that separates EBB and FLOW to highlight that it exists inbetween the two. The role of the OMNI control is very simple: it is an additional voltage control input for all time parameters of the module at the same time. That is, EBB time, FLOW rise and FLOW fall. Patching anything to the OMNI input results in this voltage controlling all three settings at the same time. This makes OMNI an instant tool for dramatic animation of patches, especially when EBB & FLOW is patch-programmed within itself as, say, a complex envelope or a chaos generator.

Please note: if a time control (any of the three) is fully CW, it may happen that a positive CV at the OMNI input will not affect it, as it already is at its top value. Likewise, if a time control is fully CCW, a negative CV at the OMNI may have little to no effect, as that control is already set to as slow as possible. Leave a little headroom for OMNI to work by not putting the time control fully CW/CCW if you want it to cover a good range!

The MAX and MIN are two separate submodules residing at the very bottom of EBB & FLOW. These are maximum and minimum voltage selectors. Both have two inputs on the left, and one output on the right. As indicated by the graphic, the two inputs get processed and appear at the output. In fact, only one of the inputs will ever appear at the output: the one with higher voltage for MAX (the maximal voltage of the two), and the one with lower voltage for MIN (the minimal voltage of the two).

The main application for MAX and MIN is OR/AND functions respectively for gates and other logic signals, creative sound mixing and rectification, CV mangling and more. As they are completely separate and complete in themselves, they can be used independently of the rest of the module for any purpose they may serve. However, the input pairs of MAX and MIN have slope outputs of EBB and FLOW normalled to them - EBB to the left one, FLOW to the right one. With nothing plugged in to MAX and MIN inputs, they act as instant combinators for of the two slope generators. At the MAX output, the "overlapping layering" of the two happens, as the momentarily maximal of the two slopes wins. The MIN output does an action that somewhat resembles a terrible clamping VCA: the slopes will only really make it through if both are not at zero, and if one is - it wins by being minimal, and the other does not get through no matter what. This way, MAX and MIN become complex intertwined products of EBB and FLOW, allowing for instant creation of complex envelopes, CV progressions, chaos generation, and so on.


Ⓐ EBB slope time control its and CV input/attenuverter
Ⓑ EBB shape control
Ⓒ EBB synchronous trigger in (waits until the previous slope finishes)
Ⓓ EBB asyncchronous trigger in (does not wait for the previous slope to finish)
Ⓔ EBB direct injection
Ⓕ EBB loop switch + external enable input (XORred together), and their LED indicator
Ⓖ EBB decay-only slope output
Ⓗ MAX input 1 (EBB slope output normalled)
Ⓘ MAX input 2 (FLOW slope output normalled)
Ⓙ MAX selector output - the higher of the two voltages
Ⓚ OMNI control input - controls EBB time, FLOW rise and FLOW fall all at once
Ⓛ FLOW slope rise time control its and CV input/attenuverter
Ⓜ FLOW slope fall time control its and CV input/attenuverter
Ⓝ FLOW rise and fall simultaneous control unattenuated CV input
Ⓞ FLOW trigger-style timing input: rise and fall happen immediately regardless of gate length. No retriggering
Ⓟ FLOW gate-style timing input: after rising, FLOW stays high as long as the gate is high; starts falling when gate is released. Can be retriggered during fall phase
Ⓠ FLOW up logic output: fires a logic 1 (gate) while the FLOW slope is in its rising phase, or held at its peak through the gate [Ⓟ] timing input
Ⓡ FLOW end logic output: fires a logic 1 (gate) after the FLOW slope has finished its rise-fall cycle. Stays on until the slope is triggered again. Can be used to cycle FLOW on itself by patching to either gate or trig input.
Ⓢ FLOW rise-fall slope output
Ⓣ MIN input 1 (EBB slope output normalled)
Ⓤ MIN input 2 (FLOW slope output normalled)
Ⓥ MIN selector output - the higher of the two voltages


Pin headers and calibration


This version of EBB & FLOW has two trimm potentiometers and no programmable pin headers. The trimm potentiometers are responsible for triggering the EBB and FLOW slopes' fall cycles as they reach their peaks. These settings are calibrated at production and should not be recalibrated.

Patch Ideas

EBB & FLOW is an endless field for experimentation in self-patching and creative interfacing with other devices. It has its obvious uses: it's an envelope, a clock generator, an LFO, and so on. But its applications do not stop there: below are some examples of weirder usage of this module and advanced techniques.

Easy complex envelope

Tired of the old ADSRs and want something more fun? EBB & FLOW got you covered! This patch creates an envelope that first does a sharp transient, then rises and falls - all three parts controlled both separately and at the same time!

Set EBB time to 3 o'clock, FLOW rise to 10 o'clock, and all other potentiometers at noon. Turn the EBB cycle switch off. Now patch your timing signal (e.g. a keyboard gate output) to FLOW gate input. Now pressing a key will cause FLOW to rise up, and releasing the key will start the fall portion. Releasing the key before the rise part is complete will result in FLOW going all the way up, and falling, automatically. This is a classic attack-release envelope. To add some spice to it, run the FLOW's up gate output to EBB's ASYNC input. Now every time FLOW starts a new cycle or is retriggered during its fall cycle, EBB will fire a decay-only envelope, too. A mixture of the two slopes is automatically available at the MAX processor's output as the maximum of the two slopes' voltages: first a sudden pluck, and then a slower rise-fall slope.

Try using this envelope to control a VCF/VCA in an otherwise classic keyboard patch! And don't forget that the initial pluck decay (EBB time) and the follow-up slope rise and fall (FLOW rise/fall) parameters are controllable both individually through the attenuverted CV inputs, and all together via the OMNI CV input!

Chained Drum Envelope

This uses the same idea as the first patch, but for a different purpose. Set EBB time and FLOW fall to about 1 o'clock, FLOW rise fully clockwise. EBB shape and both FLOW CV attenuverters to 3 o'clock. You will need some percussive sound source (noise, metallic ringing) and a VCA. Put the sound through the VCA and to your system output, verify that you're getting a sound. Now, simply plug the FLOW end output to the EBB async input. Triggering FLOW through the trig input will now result in EBB firing as soon as FLOW ends. Take the mixture from the MAX input and use it to control the VCA. Play around with timings: the FLOW duration should be considerably shroter than EBB; this way, a rolandish ratcheting clap sound structure can be obtained!

VC Envelope Follower

So EBB has that INJ input that injects voltage directly to its core, making it usable as a negative slew of sorts. It can, of course, process some sequences and whatnot and apply negative-going lag on them. However, since it goes well into audible timings, EBB can also be an envelope follower with sharp attack voltage-controlled release! Simply patch your choppy, dynamically diverse audio (like a drum break sample) to EBB's INJ in, and grab your detected amplitude envelope at the EBB slope output. You can now use this voltage to drive events within the system that correspond to the sound source!

Note: to use audio from line-level devices like mp3 players, one must use a pre-amp module, such as Doepfer A-119, to drive the signal into eurorack sound amplitudes.

Arcade FX Envelope + stepped near-chaos

This technique produces an envelope that's best used to control the frequency of a constant tone source (e.g. a VCO). The envelope is a steppy, decay-only function with control over its length and how frequently the steps occur. This steppiness, when used to control the pitch, sound very similar to retro arcade PSGs (Programmable Sound Generators), mimicking how they could only generate quite crude pitch vatiations.

Set the EBB time to 3 o'clock and time CV attenuverter fully counterclockwise, shape at noon. Switch on EBB looping. Set the FLOW rise to about 2 o'clock and rise CV attenuverter at noon, fall and fall CV attenuverter both full clockwise. First, patch the FLOW end output to its own trig input - this makes FLOW loop. Due to its settings, right now, it's a somewhat short rise and almost instant fall cycle, like a rising ramp/sawtooth function. Then, put the FLOW up output to EBB's time CV input, and grab the resulting function at the EBB output. Use it to control a VCO of some sort: you should get an arcade lazor kind of FX sound!

Since the FLOW's up output is a gate that stays on while FLOW is rising, in this situation, it stays on almost always, while turning off for a very short time of FLOW function falling back to zero, firing a gate on the END output and retriggering itself. The EBB CV attenuverter is set to fully CCW, so whenever FLOW's up output is on (almost always), EBB decays very slowly. So slowly one could not notice it at all! While at each brief window of FLOW's up being low, EBB falls at its usual, quite fast rate. This result in its output to go from high to low voltage in crude, separated steps!
Playing around with EBB time and FLOW rise yields all sorts of results; in some settings, you may find yourself listening to a simple pseudorandom sequence!

MIN and MAX as boolean logic

The two handy processors at the bottom of the unit will most certainly see most usage as a way to instantly mash together the EBB and FLOW slopes. However, they are their own separate devices. The selection of the maximal voltage corresponds to logic OR function of analog domain (either voltage has to be high for output to be high), while the minimal voltage selection is essentially AND (both voltages need to be high for output to be high - otherwise the lower one will be selected). This makes MAX and MIN suitable for combining gates and other boolean signals within your system! Use MAX as a logic OR and MIN as a logic AND, to creatively combine binary signals.

Bouncing Ball (transients)

An analog computer classic, and a good starting point for a general complex envelope. Set the EBB time to 3 o'clock, FLOW rise full clockwise and fall to noon. Set the EBB attenuverter to about 10 o'clock, shape to 3 o'clock. Set the FLOW rise CV attenuverter to noon, fall CV attenuverter to about 10 o'clock. Switch EBB loop off. Phew! These setting ensure that the result is an envelope that sounds like a bouncing ball when used to control dynamics (e.g. a VCA or a VCF) - that is, upon trigger, a series of sharp transients is produced, each shorter and lower in amplitude than the previous one.

The patch itself is simple: plug the FLOW function out to EBB loop input. This input is fit with a comparator, so when FLOW's out is even a bit positive, it will make EBB produce transient after transient. Now, plug the MAX output to EBB cv input; this makes EBB cycle faster as the FLOW output falls lower and lower. This also can be done by multing the EBB output and using its copy. Finally, trigger the complex envelope by passing your timing signal to the FLOW trig in, and grab the complex envelope at MIN output. Use the envelope to control a tone or volume processing module, such as SLEDGEAHMMER!

The main trick of the patch is using the MIN output. By triggering the FLOW output, you obtain a single relatively long decay-only envelope. However, it also keeps EBB looping much quicker while it lasts. The MIN output returns the lowest of the two if no inputs are patched. This means the long FLOW envelope gets "chopped" by a series of increasingly short EBB envelopes, somewhat sort of (but not exactly like) passing FLOW through a VCA controlled by EBB. This envelope is a great starting point for all sorts of ratcheting complex functions! Don't forget that that the overall function length can be controlled externally through the OMNI input.

Bouncing Ball (arcs)

One may say that the previous bouncing ball is not a bouncing ball, because it's EBB generating plucky transient envelopes, meaning our ball teleports up instead of bouncing. Here's an alternate take on the bouncing ball patch. You will need the means to invert a signal (e.g. LVL) for this patch.

Set EBB time to 2 o'clock, time CV attenuverter and shape at noon. FLOW rise and fall initial settings to 3 o'clock, attenuverters at about 10 o'clock. The attenuverters ensure that when triggered, FLOW has logarithmic rise and fall, drawing a smooth, near-parabolic arc instead of a triangular slope. Async-trigger EBB with whatever you want to set your bouncing ball off with. This will be the long envelope. Now take EBB out, invert it using an external module (e.g. LVL), and pass the inverted version to FLOW's both CV input. Now whenever EBB fires, FLOW will become quicker the closer EBB is to its decay's end. Finally, to make FLOW loop only while EBB is active, simply take FLOW up out and put it to the second input of the MIN processor, MIN out to FLOW gate input. This is an advanced version of looping FLOW on itself: instead of hard-patching up to trig/gate, MIN is used to externally allow or disallow looping. Conveniently, EBB's output is normalled to MIN input 1, meaning if you now trigger EBB, FLOW will start looping during EBB's duration.

The final result is obtained at FLOW's slope output. Unlike the previous patch, this slope does not get lower in amplitude as the simulated ball loses energy - the MIN processor is occupied for voltage-controlled FLOW looping. It is possible to put FLOW slope through an external VCA and use EBB slope as CV to do the bounce amplitude decay.

Frequency Dividers

Both EBB and FLOW can be frequency dividers. EBB has a bit more reach into the audio rate than FLOW, but they both work well with any sort of periodic signal - from clock pulse to audible VCO sinewave. Simply pass the signal you're dividing into sync in for EBB or trig for FLOW and set the timing parameters to your liking. You will end up with a periodic slope that runs at some division of the source signal's frequency! Additionally, FLOW provides the UP logic signal, firing each time the slope is triggered; this way, you can obtain clean clock pulses from a CV-rate source.

Self-Contained Drum

On top of everything, EBB & FLOW can even be self-patched to create a gnarly kick drum! Set EBB time fully cloclwise, time CV amount attenuverter to 10 o'clock, shape to noon, loop switch off. Set FLOW rise to about 2 o'clock, fall fully clockwise, both rise and fall CV attenuverters to noon.

Now, patch whatever you want to trigger the drum with, e.g. a trigger sequencer output, to FLOW's trig input. Patch FLOW's up out to EBB's loop control input, and listen to EBB's slope output. Try running some triggers now! FLOW is set to be a rise-only function, and during its rise, EBB will cycle at audio rate - that's your drum duration. To add percussive punch, route the FLOW slope output to EBB cv input. Since the attenuverter is set to invert this incoming CV, as the FLOW slope rises, the EBB's speed falls, making the sound do a synthy bassdrum sort of a punch.

This drum is not the smoothest out there due to EBB essentially being a sawtooth VCO here, while most bassdrums are made with sinewaves or triangles. But it has its gnarly punchy charm, and you still have MIN/MAX free for logic signal mayhem with drum triggers!



v1.0 to V2.1: prototypes, never released

v3.0: initial module release


[202318] initial document

Happy patching!