MOSAIC technical guide
This guide explains how audio flows through the twelve lanes, how the sequencer keeps time, how modulation is layered, what a preset contains, and how the plug-in behaves in a host. It describes MOSAIC 0.1.3.
If you are new to MOSAIC, read Getting started and try a few of the tutorials first. Every control named below is defined in the glossary.
1. Architecture
MOSAIC is two parts: a deterministic audio engine and an editor that draws it.
- The engine is shared by every format. It is deterministic: the same project renders the same samples on every run and on every machine of the same architecture, and each release is checked against a reference render.
- The editor is a single resizable window. It is a view of the engine’s state, never the owner of it: every gesture becomes an edit the engine applies, and the host’s undo, automation and state recall all go through the same door.
Formats: Audio Unit, VST3, CLAP and a standalone application on macOS (11.0 or later, universal); VST3, CLAP and a standalone application on 64-bit Windows 10 and 11. The plug-in identifies itself as manufacturer E8AL, plug-in code MscJ, bundle and CLAP id com.e8audiolabs.mosaic.
2. Signal path
Audio enters as a stereo pair and passes through the lanes, then the master section.
A lane is either processing or a wire. On each step, a lane whose cell is painted processes the audio; a lane whose cell is not painted passes it through untouched. A muted lane (its switch off) never processes.
Per-lane MIX. Every lane ends in its own MIX: how much of the lane’s output replaces the lane’s input. At 0 the lane is bypassed exactly, not approximately.
SERIAL runs the lanes one after another in a fixed order:
GRAIN → PRISM → SIEVE → SPEC → MOD → SAT → WARP → LOOP → STRTCH → SEIZE → WEAVE → SPOOL
SEIZE feeds WEAVE, so a captured repeat can be re-sliced; SPOOL is last so the tape transport mangles the assembled chain. The order is not user-editable.
PARALLEL runs every active lane side by side on the same input and sums their outputs.
Master section, shared by both routings and applied after the lanes:
- DRY/WET: the global mix between the input and the processed sum.
- DRIVE: a saturation stage on the whole output. At 0 the stage is bypassed exactly.
- FAT: weights DRIVE toward the low end, so bass saturates earlier and thickens with no net tone change of its own. It needs DRIVE above 0.
Tail. When the transport stops, everything that is still ringing fades under one eight-second release rather than being cut. Input returning brings held material straight back. The tail length is fixed; the host parameter named “Tail (legacy)” is kept for old automation lanes and does nothing.
Sidechain. The plug-in exposes an optional second stereo input bus. It feeds a compatibility insert (EXT) that has no lane key; its only control, an input gain from −24 to +12 dB, is reachable through host automation. Old sessions that used it still sound as they did.
3. Timing
The transport. The sequencer advances only while the host transport rolls. It derives its position from the host’s tempo and song position, so it lands on the same step whether you press play from the top or drop in mid-song. When the transport stops, the grid holds; the audio tail (section 2) rings out on its own. The standalone application has no host transport, so it runs a synthesized clock at a fixed 120 BPM that is always rolling.
RATE sets the musical size of one step: 1/4, 1/8, 1/16 or 1/32 note. Thirty-two steps at 1/16 are two bars.
LENGTH sets how many steps loop: 2, 4, 8, 16 or 32. The green bracket on the grid marks the loop.
SWING delays every other step, from straight to a heavy shuffle.
Per-lane loop lengths. Each lane can loop 2, 4, 8, 16 or 32 steps of its own, or follow LENGTH. Lanes of different lengths phase against each other and realign: polymeter without a second instance. Ctrl-click or Shift-click a lane switch to cycle its length; the number appears under the lane name.
Repeatable. The randomizer’s choices, SPOOL’s failures and a STEP sequence’s clock repeat exactly, so a pattern plays identically on every pass and on every render.
4. The pattern data model
The unit of composition is a pattern. A pattern holds, for each of the twelve lanes:
- the 32-step mask (which cells are painted);
- per-step values for up to six parameters of that lane, one value per step, drawn in the STEP VALUE band (a step without a value uses the knob);
- the five deck slots (LFO 1, LFO 2, ENV 1, ENV 2, STEP): each slot’s source settings, its target parameter on that lane, its depth, and whether it is enabled;
- the lane’s own loop length;
- for SEIZE, the drawn cycle curve and its GRAB markers;
- which lanes are enabled and which are locked;
- the routing mode, SERIAL or PARALLEL;
- the knob values: every lane’s parameters, the sequencer’s RATE, SWING and LENGTH, and the four macro positions.
A bank is twelve patterns plus what is global to them: the modulation matrix (its source pool and routes) and the pattern that is active. A preset file is a bank. The master section (DRY/WET, DRIVE, FAT) is global, so switching patterns never yanks the overall mix; every other parameter is recalled with the pattern. A pattern switch is one undo step.
Host parameters. MOSAIC registers 108 automatable parameters in a frozen order, so an automation lane written in one version resolves to the same control in the next. The order includes a few compatibility entries that do nothing but keep old sessions honest:
- the retired FILTER, DELAY and REVERB parameters from early builds, which route to no current effect;
- Macro 5 to Macro 8 (“legacy”), from the eight-macro era: still automatable and still driving any old route, but with no dial;
- Tail (legacy), inert since the tail became a constant.
Knob values in the editor are the parameter’s plain value (milliseconds, semitones, hertz, or a 0 to 1 amount). Modulation adds to the knob rather than moving it, which is why a modulated knob keeps its position and wears a ring instead.
5. The lanes
Each lane is one DSP cell with a stable identity. The lane key, the knob row, the STEP VALUE chips, the deck and the matrix all address the same parameter set. “Knob row” lists what the row shows; “also” lists parameters the lane exposes without a knob, reachable from the STEP VALUE band, the deck, the matrix and host automation.
GRAIN — granular cloud
A real-time granular cloud: overlapping grains rebuild the input as texture, read from the recent past of the input, so at rest it is a live cloud at unity. SPRAY scatters where each grain starts, at every PITCH. Grains are aligned so a pitched note stays in tune and holds its level instead of swelling and vanishing, and shifting up stays clean, with no aliasing grit. GRAIN and SIEVE are a coupled pair: each listens to the other, so the cloud follows the gate and the gate follows the cloud. COUPLE sets how strongly; at 0 the lane is exactly independent.
- Knob row: COUPLE, SIZE (5 to 200 ms), DENS (1 to 8 overlapping grains), PITCH (±24 st), SPRAY, MIX.
- Also: HIST (how far back into the recent input grains are picked), and three expert host-automation-only parameters: SIZE MIN, FLUX DRIVE, PITCH TRACK.
- Latency: none.
SIEVE — spectral gate
A spectral gate that works in the frequency domain. Each frequency region is judged against its own surroundings, so the same rule holds from the lows to the highs: THRESH sets how far above that floor a region must stand to pass, and the default keeps a steady noise floor shut. RESOLVE chooses a hard decision or a soft knee. The gate is steadied over time, so it neither twinkles in noise nor chatters on a partial at the edge. OPEN is the width of a band that gets pried open, by the cloud while COUPLE is up and by the POS cursor while POS is off zero; it is not a master gate. SMEAR blurs the gate’s reaction over time and sets how long RING’s held partials decay. TILT shapes the residue that survived (±6 dB); BINCRV leans the gate decision itself toward the lows or the highs. RING lets selected partials sustain: a steady note is not boosted, a dying one rings on.
- Knob row: COUPLE, THRESH, OPEN, SMEAR, TILT, MIX.
- Also: RING, BINCRV, POS (a movable spectral cursor; the header pane draws the spectrum and drags it), RESOLVE (host automation only).
- Latency: 1024 samples.
SPEC — spectral freeze
A spectral freeze. SPEC holds a spectrum so every partial keeps its own true pitch: a frozen chord holds its pitch instead of buzzing. FREEZE crossfades from pass-through to a full freeze of whatever is playing. SMEAR is two jobs on one axis: turned down it adds inertia to the hold; turned up it becomes the rate at which new sound louder than the frozen frame is taken in, from several seconds at low settings to about 60 ms at 1.0, and it works at full freeze. TILT darkens or brightens the frozen spectrum, hinged at 12 kHz. BLUR diffuses energy across neighbouring frequencies and detunes the held partials slightly, so a freeze shimmers and slowly beats like an ensemble; live (unfrozen) sound is never detuned.
HIT decides what FREEZE holds. HOLD, the default and the way every earlier preset plays, holds whatever is playing. HIT holds the hit that opens each of the lane’s steps: it follows the sound live through the attack and captures it once the attack has peaked (within a few tens of milliseconds), then FREEZE and SMEAR hold it as usual until the next step captures its own hit. A hit slightly early or late still counts. With FREEZE up, a HIT lane re-freezes in time with the grid.
- Knob row: FREEZE, SMEAR, TILT, BLUR, HOLD / HIT (switch), MIX.
- Latency: 1024 samples.
MOD — chorus, flanger, phaser
Chorus, flanger and phaser, selected by MODE. A MODE change (per step too) crossfades smoothly instead of dropping out; the chorus keeps the dry signal in its blend, so at MIX 1 it is a chorus rather than a vibrato. RATE runs 0.01 to 10 Hz; DEPTH sets the swing. At DEPTH 0 the movement stops but the network is still a static full-wet comb or notch, so it still colours the sound; MIX is what bypasses it.
- Knob row: MODE (switch), RATE, DEPTH, MIX.
- Latency: none.
SAT — multipolar saturator
A waveshaper that treats the positive and negative halves of the waveform differently. ASYM pushes the operating point off centre, which breaks the odd symmetry and adds even harmonics. SHAPE picks the curve: Tanh (tape-soft), Hard (clip), Cubic (smooth) or Fold (wavefolder). TONE tilts what reaches the shaper, so it decides what saturates rather than equalising the result. The nonlinearity is anti-aliased. SAT holds its level as you change DRIVE, SHAPE and ASYM without flattening each hit’s punch. OUTPUT is your own trim on top of it. The header scope draws the live transfer curve.
- Knob row: SHAPE (switch), DRIVE, ASYM, TONE, OUTPUT, MIX.
- Latency: a few samples.
LOOP — tempo-synced looper
Captures the input into a stereo loop buffer and replays it. SIZE is musical, from 1/16 beat up to 4 bars, including dotted and stutter sizes. PITCH replays the capture shifted by up to ±24 semitones; PITCH MODE decides whether that is tape varispeed (REPITCH, where speed changes with pitch) or a pitch shift at the original speed (WARP). Shifting up stays clean, with no aliasing grit, and shifting down stays clean too. MODE replays FORWARD as recorded, REVERSE backwards, or ENDLESS, which keeps re-capturing live. The knob row’s loop view shows where the looper is reading in its capture.
TRIG, three keys along the top of the loop view, decides what starts a capture in FORWARD and REVERSE (ENDLESS is always capturing and has none). PHRASE, the default and the way every earlier session plays, starts one at the top of each pass of the pattern, so the lane replays the first SIZE of the pass. STEP starts one when one of the lane’s steps opens: the first SIZE of the step plays live, then repeats, a beat repeat of the step itself. BACK loops the SIZE that played just before the step opened, starting the moment it opens, so a run on the fourth beat repeats the third. STEP and BACK also re-trigger at the top of the pattern while a step is held.
Every wrap of the loop is smoothed the way a sampler loops: no click, no dip, even at 1/16 beat. A loop that is playing is never overwritten.
- Knob row: SIZE, PITCH, PITCH MODE (switch), MODE (switch), the loop view with the TRIG keys, MIX.
- Latency: none.
PRISM — filter suite
Three resonant characters under one CUTOFF and RESO pair, chosen by MODE. LADDER is a saturating four-pole ladder whose resonance sits in tune at every cutoff; DRIVE sets how hard the filter saturates, and it self-oscillates at high resonance. MODAL is a bank of ringing resonators; DRIVE is the excitation level into the bank. DIFFUSE is a dispersive prism: it delays the frequencies around CUTOFF so a hit smears into a chirp, and MORPH lengthens the smear. RESO focuses the smear into a narrower band around the cutoff, and past halfway adds a metallic ring. DRIVE is greyed out and does nothing in DIFFUSE. In the other modes MORPH moves the character within the chosen mode.
- Knob row: MODE (switch), CUTOFF (20 Hz to 20 kHz), RESO, DRIVE, MORPH, MIX.
- Latency: a few samples.
WARP — transient designer
Real-time transient shaping. A hit is measured against what was already playing, so a hit over a bed or right after another hit is shaped like a hit from silence; a loud bass line does not mask the hats, and a hit on one side moves both channels alike. ATTACK boosts or softens the hit, SUSTN boosts or chokes the tail. SENSE is a whole-lane amount, not a threshold: there is no level a hit can fall under, so nothing is missed; at 0 the lane is inert. WARP smears the onset of each hit, turning clicks into whooshes; the knob is the depth at the peak of an onset.
- Knob row: ATTACK, SUSTN, SENSE, WARP, MIX.
- Latency: none.
STRTCH — granular time-warp
A granular engine over the recent input. STRETCH is the playback speed through the capture, and it plays musical ratios: the knob is continuous (for hosts and modulation), the lane plays the nearest of 1/8, 1/4, 1/3, 1/2, 2/3, 3/4, 1, 1.5 and 2, or 1/8 to 1 in reverse, and the readout prints the ratio it plays. Within 1/16 of the centre is FREEZE. The read head starts on the step: whenever one of the lane’s steps opens, and at the top of the pattern, it jumps to the newest audio, so 1/2x plays this step at half time, FREEZE holds this step’s hit, and reverse plays backwards from it. SCRUB looks back from the read head, by hand, across the whole captured input. PITCH transposes independently of speed and stays clean going up. GRAIN, DENS and SPRAY are the rebuild’s grain size, overlap and start-time randomisation. Grains are aligned so a held tone keeps its pitch at every speed and in FREEZE.
- Knob row: STRETCH, SCRUB, PITCH, GRAIN, DENS, MIX.
- Also: SPRAY.
- Latency: none.
WEAVE — beat re-sequencer
Cuts the bar on the SLICES grid (1/4 to 1/32, with triplet rungs), locked to the host bar line and swung with the sequencer’s SWING, and decides each slot on its own step. A slot that plays its own position forward is the live input, sample for sample, so with nothing turned up WEAVE is transparent and never a bar behind. ALGO re-arranges the bar in rhythm chunks that move, echo or swap whole, so each keeps its groove; the downbeat stays put until the top of the knob. STUTTER is the chance a slot repeats the previous slot (at 1.0 it holds the slice for as long as the step is on, following the capture so the roll never dies); repeats in the last beat of the bar can double into rolls. REVERSE is the chance a slot plays backwards. GATE shortens each slot toward staccato and acts immediately. PITCH transposes slots in whole semitones, and upward shifts stay clean.
Joins are smoothed so the incoming slice’s attack lands on the grid at full level. The arrangement is keyed on the position inside the lane’s loop, so it repeats with the pattern and renders identically on every pass, bounce and buffer size.
- Knob row: SLICES, ALGO, STUTTER, REVERSE, GATE, MIX.
- Also: PITCH.
- Latency: none.
SEIZE — capture-repeat instrument
A curve-authored beat repeat. One SEIZE cycle is CYCLE long (1/8 bar up to 4 bars) and is divided by DIV into a grid of slots (1/2 down to 1/32, with triplet rungs; DIV × CYCLE is clamped to 64 slots, and a long cycle at a slow tempo truncates against the 8-second capture ring). You draw the wet path’s level across one cycle in the curve editor. GRAB is the capture axis: how much of each cycle stops playing live and replays a captured slot instead. Dead centre is off, and off is provably transparent: with a flat curve the lane is a bit-exact wire. Up from centre, the cycle’s tail seizes first; the sign is direction, so negative replays the captured slot backwards. A repeat is anchored on a gridline and lasts exactly one; markers placed in the BENCH re-anchor it. PHASE slides the whole cycle along the bar. CONTOUR warps the drawn curve along the time axis (early or late) without moving the grid. GLUE is the edge time of the gain path (0.5 to 10 ms), a hard gate at one end and a rounded swell at the other; repeats never overlap or bleed. PITCH transposes each repeat; at 0 the replay is bit-identical, so leave it there unless a pitched stutter is the idea. A pitched repeat restarts on every gridline, and +12 st on cymbals does not alias. Repeats stay locked to the grid, including under the sequencer’s SWING. ARM is a momentary latch that seizes the next cycle at full depth and lets go on the one after.
Patterns saved by older builds may carry the lane’s previous renderer. ENGINE shows which one a pattern runs (SEIZE, or LEGACY for the old tape-head engine) and converts; it is not automatable.
- Knob row: GRAB, PHASE, the lane rail (DIV, CYCLE, ARM, ENGINE, GLUE, CONTOUR, PITCH, snap, the shape picker and a reset), MIX.
- The header shows a live thumbnail of the curve; clicking it opens the BENCH, the full-width curve editor.
- Latency: none.
SPOOL — failing tape transport
A tape machine that can be commanded to fail. SPEED is the tape speed: 1 is play, where the lane re-locks to transparent; 0 is braked to a stop; negative is reverse. Pitch follows speed, so a dive is a real pitch dive, and a fast tape stays clean. BRAKE is how long the transport takes to reach the commanded speed: SPEED 0 coasts down and lands at BRAKE from play, so a stop can be put on a beat; other speed changes glide over BRAKE. DAMAGE is how often the transport fails (reel slips, a seized capstan, dropouts, bit tear); the pattern replays identically every loop pass, so damage is composed, not random. SIZE is the length of one failure window (0.5 to 80 ms) and CHAR picks the kind of machine that is failing, mechanical at one end and digital at the other. DRAG is transport wear: speed-tracking dullness, wow and flutter, and a motor that sags under loud passages. On the knob row, BRAKE and DRAG are folded into one WEAR control; both remain separate destinations for modulation and automation. The header pane spins the reel at the live speed and flags the live fault.
- Knob row: SPEED, DAMAGE, SIZE, CHAR, WEAR, MIX.
- Also: BRAKE, DRAG.
- Latency: none.
6. Modulation architecture
Every effect parameter is a single value built from up to five layers, in this order of ownership:
| Layer | Scope | What it is |
|---|---|---|
| Knob | the parameter | The base value. Turn it, type it, or automate it from the host. |
| STEP VALUE | the lane, inside the pattern | One value per step for up to six parameters of the lane. A step with no value uses the knob. |
| Mod deck | the lane, inside the pattern | Five slots: LFO 1, LFO 2, ENV 1, ENV 2, STEP. Each slot has one target on its own lane and a depth. |
| Matrix | global to the bank | A pool of up to 16 sources and up to 64 routes. A route is source → any parameter of any lane, with a signed depth, optionally gated by a lane. |
| Macros | global, host-automatable | Four dials, M1 to M4. A macro is a matrix source; dragging its > tab onto a knob writes the route. The routes belong to the bank; each pattern remembers the dials’ positions. |
Modulation is additive around the knob. The knob’s inner arc shows the base value; the outer ring shows the range the combined modulation sweeps, anchored at the live value. Hovering a modulated knob opens a pane that lists every source on it with its range in plain units, where a source’s depth can be dragged, zeroed with a double-click, or all of them cleared.
Sources
The engine evaluates a fixed, enumerable set of source kinds. The deck and the matrix expose them under these names:
| Source | Where | Behaviour |
|---|---|---|
| LFO | deck (LFO 1, LFO 2), matrix | A repeating shape. 40 shapes in the bank, from sines and ramps to gates, ratchets and Euclidean figures. RATE is tempo-synced (32 bars down to 1/64) or free (0.05 to 20 Hz). The shape itself is a node curve of up to 32 nodes: drag nodes, double-click to add or delete, right-click a segment for its curve, or use the deck’s draw tools (freehand, straight lines, a snap grid, invert, reverse, copy and paste). |
| ENV (deck) | deck (ENV 1, ENV 2) | A standard AHDSR triggered by the lane’s steps: ATTACK rise, HOLD at the peak, DECAY down to the SUSTAIN level, held while steps stay on, RELEASE when they stop. Times are kept in beats and shown in milliseconds at the host tempo. The plot’s corners drag the five stages, and one bend curves the whole envelope (the same transfer curve the engine applies to its level). |
| STEP | deck, matrix | A 16-value sequence. CLOCK GRID steps it with the sequencer; CLOCK RATE runs it on its own tempo-locked clock. LEN plays only the first N values. A PATTERN menu of 40 figures writes ramps, triangles, combs, gates and Euclidean distributions into it, and the draw tools paint or ramp the bars. |
| ENV (matrix) | matrix | An envelope follower: the source tracks the input’s amplitude. |
| A / R | matrix | An attack/release envelope re-triggered each cycle. |
| RAMP | matrix | A ramp across the loop phase. |
| MACRO | matrix | One of the four macro dials. |
| DRAW | matrix | A drawn curve across the loop. The factory library uses it; the matrix shows and plays it, but its + menu does not create one. |
In the matrix a source can be marked bipolar (±), so it swings both ways around the knob instead of only upward from it.
Routes and gates
A matrix route names a source, a destination (lane and parameter) and a depth as a signed percentage. Its gate chip is either FREE, meaning the route acts continuously, or a lane, meaning the route only acts while that lane’s step is on.
The matrix has three views. MAP, the routing map it opens on, shows the selected lane’s five deck modulators or the bank’s sources, the four macros, and every route as a row on a card for its destination lane, each marked LANE (a deck slot’s, per pattern) or BANK (the matrix’s own). BANK lists the bank’s sources and routes for editing (kind, rate, polarity). HEAT is a read-only grid of sources against lanes, each cell the summed depth of the enabled routes between them.
Deck slots are per-lane and travel with the pattern; the matrix is per-bank. A deck slot’s destination is always a parameter of its own lane. The matrix can reach any parameter of any lane, including the ones that have no knob on the row.
Randomisation
RANDOM (the die key) generates a scene: it picks a musical plan, casts a few effects, writes coordinated patterns for them, and rebuilds the global modulation matrix against the lanes it actually cast — a fresh pool of sources and routes. Locked lanes are left alone, and so is every route pointing into one. RANDOM LANE re-rolls only the selected effect: its knobs, its pattern, its deck slots, its per-step values, and only its own matrix routes — every other lane’s routes and the shared source pool are untouched. Both also roll the deck’s fan-outs, so one generator can pull a second or third knob, sometimes in the opposite direction. Both are single undo steps.
Pitch is rolled musically onto intervals such as unison, octaves, fifths and fourths. Fan-outs and matrix routes are never rolled onto pitch. Every PITCH knob moves in whole semitones, whether you drag it, type a value, draw a step or automate it from the host; modulation you route by hand can still glide.
7. Presets and files
A preset is a JSON text file with the extension .mosaic. It begins with "format":"mosaic-preset" and a format version, then the name, author, tags and description, the active pattern, the matrix (source pool and routes), and the twelve patterns with everything section 4 lists. Because it is plain JSON it diffs, it travels, and it can be inspected with any text editor.
Where presets live. The library root is ~/Documents/MOSAIC/Presets on macOS and Documents\MOSAIC\Presets on Windows, with one folder per category. The installer writes the 144 factory presets there by name; presets you have saved in the same folders are kept. Factory presets retired from the library are removed on upgrade unless you have edited them. A second root used by earlier internal builds, Documents/MOSAIC_JUCE/Presets, is still scanned; where both hold a preset of the same category and name, the browser lists the one in Documents/MOSAIC/Presets.
| Category | Presets |
|---|---|
| Ambient | 21 |
| Granular | 20 |
| Loops | 21 |
| Motion | 21 |
| Rhythmic | 21 |
| Spectral | 20 |
| Swirl | 20 |
Every library preset is arranged the same way. It casts five or six of the twelve effects and deals them across twelve patterns named Signature, Answer, Undertow, Air, Lift, Turn, Space, Suspended, Bloom, Return, Peak and Resolve, running two to four effects at a time. Its four macros have the same jobs in every preset: M1 Texture, M2 Motion, M3 Colour and M4 Intensity, each reaching two to four destinations across the cast. The macros rest at zero, where they do nothing, and the preset’s description names what each one moves.
Factory banks. Eight banks are built into the plug-in and listed under Factory: Grain Cloud, Spectral Pad, Prism Shimmer, Transient Punch, Minimal Glitch, Saturated Grit, Looper Texture and Modwheel Dance. A fresh instance loads the Init scene instead, twelve authored patterns so there is something to play immediately; the host’s own program list offers Init and the eight banks.
Saving and importing. NEW empties the bank so you can start from nothing (the Init scene is deliberately not empty): no cells, no per-step values, no deck modulation and no matrix, under the name “untitled”. SAVE PRESET, in the browser’s save bar, writes the bank as <name>.mosaic into the User folder of the library root and rescans, so it is listed under the User type at once. It may rewrite the file the scene was loaded from, but it refuses to overwrite any other existing file and asks for a different name. EXPORT writes a .mosaic wherever you choose; put it in a folder under the library root and the browser lists it under that folder’s name. IMPORT loads a .mosaic from anywhere. Presets from older MOSAIC builds load; the retired iPlug2-era program cannot read files this build writes.
Session state. The host saves the complete state of an instance in the project: all twelve patterns, the matrix and the window size. Help mode is a per-window setting and starts off. Older session chunks import. No licensing information is ever stored in a preset or a project.
8. Host integration
Latency. Latency is reported to the host and is dynamic: it is the latency of the active path. SIEVE and SPEC each report 1024 samples; the nonlinear lanes (SAT, PRISM) report a few samples; the rest report none. On activation the plug-in reports the current path so a host that queries before the first block gets the right number. Toggling a lane mid-play can never misalign anything.
Automation. The 108 host parameters of section 4, in their frozen order. Parameter names are short labels (“Loop Sz”, “P.Cutoff”, “Macro 5 (legacy)”); the compatibility entries carry “(legacy)” or the retired effect’s name so they are easy to tell apart in a host’s list. Host automation moves the knob; modulation adds around it.
MIDI. None. MOSAIC is an audio effect and takes no MIDI input.
Sidechain. An optional second stereo input bus, used only by the EXT compatibility insert (section 2).
Undo and redo. The header buttons and Cmd+Z / Cmd+Shift+Z (Ctrl on Windows). One entry per gesture: a paint sweep with the lane wake-ups it caused, a knob drag, a selection move, a shape pick, a draw-tool stroke or shape operation, a matrix edit, a randomize, a pattern switch.
Keyboard. With the grid focused: Esc clears the selection, Delete clears the selected steps, Cmd+D (Ctrl+D) duplicates the selection to the right; any key or click skips the boot animation; Esc closes the preset browser and the SEIZE BENCH. In the preset browser, typing filters the list, Up and Down audition presets, and Return loads the highlighted one.
Window. Resizable by the corner grip, or in steps from the header’s SIZE key, from 70% to 180% of its 1160 × 1015 design size; the SIZE key also offers Fit to screen. The size is saved with the session, and a new instance opens at the size you last picked (before you pick one, at the largest size that fits the display).
CPU. The header meter shows the output level and the plug-in’s own CPU load.
9. Licensing
MOSAIC is licensed per account, with two computers active at a time. When the plug-in is not authorised it passes audio through unprocessed. Activation happens from inside the plug-in through the browser (see Getting started). An activated computer holds a signed lease that renews about once a day and lasts up to 72 hours, so it works offline for up to three days. Licensing state is never written into presets, projects or the Documents folder.
10. Installation reference
| macOS | Windows | |
|---|---|---|
| Installer | MOSAIC-<version>.pkg (signed and notarized) | MOSAIC-<version>-Windows-x64.exe (not yet publisher-signed) |
| VST3 | /Library/Audio/Plug-Ins/VST3/MOSAIC.vst3 | C:\Program Files\Common Files\VST3\MOSAIC.vst3 |
| CLAP | /Library/Audio/Plug-Ins/CLAP/MOSAIC.clap | C:\Program Files\Common Files\CLAP\MOSAIC.clap |
| Audio Unit | /Library/Audio/Plug-Ins/Components/MOSAIC.component | — |
| Standalone | /Applications/MOSAIC.app | — |
| Presets | ~/Documents/MOSAIC/Presets | Documents\MOSAIC\Presets |
| Uninstall | remove the bundles above; presets are left alone | Settings → Apps → MOSAIC → Uninstall; presets are left alone |
Requirements: macOS 11.0 or later on Intel or Apple Silicon; 64-bit Windows 10 or 11 on Intel or AMD.
11. Reporting a problem
Write to support@e8audiolabs.com with your DAW and its version, your operating system, the sample rate and buffer size, which format you were using (AU, VST3, CLAP or standalone), and what you did just before the problem. A saved project that reproduces it is the single most useful thing you can send.