Here is one input trace and a box it passes through. Try each of the three boxes on the same input, and watch what comes out.
A system turns an input into an output
Pick a system and watch the same input come out different.
Describe this picture
Two traces of samples: the input above, which never changes, and the output below. Three “System” buttons choose the box between them: “Amplifier”, “Echo” and “Averager”.
A system turns an input into an output
So far, every page has been about a signal on its own. Now I want to turn to what happens when a signal passes through something. A guitar pedal takes a dry, thin signal from the pickup and hands back something fatter, or echoing, or fuzzed out. A phone quietly strips the hiss from your voice before it ever reaches the other end. A thermostat watches the room’s temperature and decides, moment by moment, whether to turn the furnace on. Every one of these is doing the same kind of thing: taking a signal in, and handing a signal out, by some fixed rule.
That’s what I mean by a system. I’ll write it as
where is the input signal, is the rule the system applies (the box itself, whatever is inside it), and is the output signal that comes out. I don’t need to know what’s wired up inside to use this idea. I only need to know what it does to whatever comes in: feed it the same input twice, and it hands back the same output twice.
Go back to the three boxes at the top of the page. The input never changes, only the box between it and the output does: the amplifier makes every sample bigger with the same shape, the echo lays a quieter, delayed copy on top, and the averager smooths sharp jumps into a gentler slope. Same , three different rules , three different .
The four elementary blocks
Systems look intimidating until you notice most of them are built from pieces you’ve already met. A gain block multiplies every sample by a constant, exactly the scaling from the amplitude-operations page. A delay block shifts a signal later in time, the same shift you already know from moving a signal around. An adder adds two signals together sample by sample, and a multiplier multiplies two signals together sample by sample. Four blocks, four operations you already own, now drawn as a labeled box with an arrow in and an arrow out: that arrow-and-box picture is called a block diagram.
Cycle through gain, delay, adder and multiplier.
The four elementary blocks
Gain, delay, adder and multiplier: operations you already know, now drawn as boxes.
Describe this picture
Four “Block” buttons, “Gain”, “Delay”, “Adder” and “Multiplier”. Each shows its input trace, or two input traces for the adder and the multiplier, the block drawn as a labelled box, and the block’s output trace.
Notice each box’s output is nothing new: it’s exactly the operation its label says, just drawn as a picture instead of written as an equation.
Wiring blocks together
Once you have a handful of blocks, how you wire them together matters as much as which blocks you picked. Wiring blocks in series feeds one block’s output straight into the next block’s input, so the effects stack up in order: everything the first block did happens, and then everything the second block does happens to that result. Wiring blocks in parallel feeds the same input to both blocks at once, and adds their two outputs together at the end, so both effects happen side by side rather than one after the other.
Switch between series and parallel on a fixed gain block and delay block.
Wiring blocks together
The same two blocks, wired two different ways.
Describe this picture
A block diagram and a plot of samples, with two “Wiring” buttons, “Series” and “Parallel”. In series the input runs through “Gain: multiply by 2”, then “Delay: shift by 3”, to the output. In parallel the input feeds both blocks at once, and “Adder: add the two paths” joins them. The plot draws the input in grey and the output in colour.
Notice the two wirings produce visibly different output traces from the exact same two blocks: the wiring, not only the blocks themselves, decides what the whole system does.
Order matters, again
Wiring two blocks in series raises a question you’ve already run into once: does the order you wire them in change the answer? For a gain block and a delay block, no: multiplying by a constant and then shifting in time gives the same result as shifting first and then multiplying, because gain doesn’t care when it happens. But keep the delay block and swap the gain block for a block that speeds up time instead, and order suddenly matters, exactly like the shift-then-scale example from the time-transformations page.
Switch between Delay by 4, then speed up 2× and Speed up 2×, then delay by 4 on a fixed delay block and speed-up block.
Order matters, again
The same delay block and scale block, chained in a different order.
Describe this picture
A delay block and a speed-up block chained in the order chosen with the two “Order” buttons, “Delay by 4, then speed up 2×” and “Speed up 2×, then delay by 4”, and a plot of the result. The readout “Peak lands at” gives the time of its peak.
Notice the Peak lands at readout gives two different times for the exact same two blocks, only reordered: delay first lands the peak at one place, and scaling first lands it somewhere else entirely.
Feedback: wiring the output back in
There’s one more way to wire a system, and it’s the strangest one: feed a block’s own output back into its own input. A feedback connection does exactly that, usually running the output back through a gain block before it rejoins the input at an adder. Once you do this, each new output depends not only on the current input but on the system’s own past outputs, which is exactly how a running total (adding each new number to everything you’ve added so far) gets built.
Drag Feedback gain from a low value up past 1, and watch the echoes.
Feedback: wiring the output back in
A single input sample, fed through an adder and a delay, again and again.
Describe this picture
A block diagram: the input enters an adder, the adder’s output is the output, and the output feeds back through a gain block into the adder. Below it, a plot of the first 8 output samples for a single input sample. The “Feedback gain” slider runs from 0 to 1.5, and two readouts show “Behavior”, settling or growing, and “Last echo”.
Notice the Behavior readout flips from settling to growing, and the Last echo readout stops shrinking toward zero and starts climbing instead: below a gain of 1 the repeated echoes die out, and at or above 1 they never shrink, or even grow without bound. That’s your first look at a question the next page makes precise: which rules keep a system’s output under control.
Worked example
Here’s the gain-and-delay claim from the “Order matters” section, checked with real numbers. Feed a single sample of size 1 at time into a gain block of 3 and a delay block of 2, wired in series either order.
Gain, then delay. The gain block turns the sample into at . The delay block then shifts that value 2 steps later, so the output is at , and everywhere else.
Delay, then gain. The delay block first shifts the sample 2 steps later, giving at . The gain block then multiplies by 3, giving at , the same answer as before.
Gain and delay always commute like this. Compare that with the order instrument above, where a delay block and a speed-up block gave two different answers depending on order: gain and delay are the exception, not the rule.
Where you’ll meet this
Almost every piece of audio gear you’ve touched is a small system: an equalizer, a compressor, a reverb unit, all turn an input signal into an output signal by some fixed rule, usually built from blocks like the ones above. Feedback loops show up just as often outside audio: a microphone too close to its own speaker howls because its own output keeps feeding back into its input, and a bank account’s running balance is a tame feedback loop that adds each day’s deposit to yesterday’s total.
The maths behind it · linear maps
A block diagram built only from gain blocks and adders, with no delay and no feedback, is exactly matrix-vector multiplication: each output is a fixed combination of the inputs. Linear algebra calls that a linear map.
Not every system behaves as nicely as the ones here. The next page asks which rules these systems follow: does doubling the input double the output, does delaying the input just delay the output by the same amount, and does a bounded input always keep the output bounded, or can it grow without limit like the feedback loop above.
Reference card
| Block | Formula | Notes |
|---|---|---|
| Gain | multiply by a constant | |
| Delay | shift later in time | |
| Adder | add sample by sample | |
| Multiplier | multiply sample by sample | |
| Series | one block’s output feeds the next’s input | |
| Parallel | same input to both, outputs added | |
| Feedback (gain-delay loop) | settles if ; grows without bound if |