Inspired by patterns of geological deposit and erosion (I hail from the “Mountain State” — practically every road I travel down is carved out of the Appalachian mountains), Layers uses side-chaining to allow sounds from two other loopers to weave around a main looper track, creating intricate and evolving movement.
Using an unheard noise loop recorded when the main loop (“Strata”) is recorded (so that it keeps time with it), the patch produces a trigger at the beginning of each cycle of the loop, which can be used to modify the start position (randomly, within a defined range) and playback direction (probabilistically) of the supplementary loops (“Substrata”). The Strata loop sidechains compressors (one for each channel, to allow maximum stereo-ness) that the Substrata loops feed into, allowing it to suppress those loops when it plays back and for those loops to then swell in when the volume of the Strata loop drops.
All three buffers can be recorded at the same time, using SYNC buttons, which can allow for interesting echoes, re-pitched snippets, and granular-type effects to take hold (this is generally how I use it). Or each of the Substratum buffers can be recorded separately, to provide individual, complementary sounds.
Then, everything passes through a plate reverb because why not.
The patch is stereo throughout.
The loops are limited to 16 seconds, because of RAM constraints.
Stompswitches (also replicated in buttons across the top row — these buttons will grow brighter when recording for the associate buffer is in progress):
Left (latching) — records the main Strata loop; if the SYNC options are engaged, this will also record into one or both of the Substrata loop buffers
Middle & Right (latching) — records the Substrata loops
Controls for different sections are grouped in columns on the control page.
Below the Strata loop RECORD button is a REVERSE button, which allows you to… reverse the loop. Note: When the main loop is reversed, some of the transitions caused by the beginning of loop cycle may be more abrupt, due to the nature of how the noise burst at the beginning of the main loop is recorded. There is also a TIMER UI in this column, which will give you a sense of how long you’ve recorded by flashing through colors from White to Red (if you reach red you are approaching the end of the 16 seconds).
The Strata loop passes through a stereo (sine wave) tremolo, the controls for which occupy the second column. The tremolo is pre-sidechain input, and so it can allow for more fluctuation in how the Substrata loops weave in and out. There are standard RATE and DEPTH controls, but there is also a STEREO WIDTH control. This control moves the phase of the right LFO from 0 degrees to 180 degrees (making the two sides completely out of phase), as well as points in between for less extreme stereo modulation.
The next column has the controls for the compressor: THRESHOLD, RELEASE, and RATIO. I generally use either the threshold _or_ the ratio control to determine how much the Substrata loops are sidechained/suppressed. (And I generally keep it pretty extreme: minimum threshold, maximum ratio, but you can play around with these for different senses of how the layers are mixed/dynamically engaged.) The release control will provide a sense of how the sidechaining fades the loops into the output.
The next two columns are indentical and pertain to each of the Substratum loops. There are RECORD buttons for each buffer. Below these are the SYNC buttons, which allow you to sync the recording to the recording of the Strata loop.
Below these are REVERSE CHANCE controls — these probabilistically determine the likelihood of the loop playing forward (0) or reverse (1) each cycle. Setting the probability between these extremes will produce loops that sometimes play in one direction, sometimes in another.
The PITCH controls allow you to change the pitch/speed of the loops, introducing slowed down, lower pitch elements, or faster, higher pitched ones. Note: pitch changes will not take effect until the subsequent loop cycle.
Finally, the START POSITION RANGE is really a two-fold effect. It sets the range of start positions the loop can randomly play from in that cycle, but it also sets the length of the loops (regardless of start position). So a very high range setting will produce shorter, more “granular” snippets of audio, while a smaller range will produce longer fragments and echoes. (If the range is set to 0 and the compressor threshold is set to the maximum, the patch essentially works as a three-track looper, if you want, although there are probably better, more streamlined ways to achieve this. Still, easter egg! It can be interesting to use in this manner in conjunction with the reverse chance controls.)
The length of the snippets determined by this range is relative: for a longer loop, e.g. 10 seconds, a start position range setting of .9 will produce loops of ~1 second. But using that same setting — .9 — for a shorter loop, e.g. 2 seconds, will produce lengths of ~200 milliseconds.
There’s a slight break in the column approach here, as beside the start position range controls are controls for the start position modulation. The first is a button that you can set a TAP TEMPO with for the triangle wave that scrubs through start positions. The second is its DEPTH. The depth always moves backward from the randomly selected range that cycle toward 0 (this helps maintain the length of the loops). The LFO always resets to 0 at the beginning of each cycle (I found this provided the most satisfying results).
The next column has the REVERB DECAY and REVERB MIX controls.
The last column has the STRATA LEVEL and SUBSTRATA LEVEL controls for fine-tuning the mix between the two. The output of the substrata does have a bit of additional gain (+3 dB), since the compressor can affect its level so drastically.
There is no dry level control. This patch was edited down from a version that clipped, and I wanted to be careful with the CPU headroom. In most cases, you have a means of controlling the amplitude of incoming audio in other places, but if you wanted to add a dry level control (place a VCA between the input and output and disconnect their direct connection, then use a value module to control that VCA level and move it to the control page), I -think- the CPU can support it.