USER MANUAL · pre-release · engine parity: hardware v1.1
Shoal plays melodies you didn't write - but that always sound like you meant them. Eight tracks each generate a looping melody from a seed; every note is locked to one global scale; tracks can follow one another like fish. The name: eight fish, moving as one. A reseed is the shoal turning.
The tank: eight track lanes with the selected track's detail down the right-hand side - the same screen as the hardware original, drawn live on the module. Everything in this manual is visible here or one right-click away.
From the VCV Library (once released): add Shoal to your account and sync in Rack as usual.
Pre-release builds arrive as a single .vcvplugin file:
.zip, unzip that first - the
.vcvplugin file inside is the plugin.plugins-mac-arm64,
plugins-mac-x64, plugins-win-x64 or
plugins-lin-x64), delete any existing OrmerModular
folder from a previous build first. Rack unpacks a .vcvplugin
on top of what's already there rather than replacing it outright, so files
renamed or removed between versions can otherwise linger..vcvplugin file into that plugins folder. Don't extract
it - Rack does that itself.That's the whole game. Everything else is refinement.
The seed is the melody. A track's melody is completely determined by its Seed (a number, 0–999) - think of it as a recipe number, not a random amount. Same seed = same melody, every loop, every restart, every patch reload. Reseeding just picks a new number. Because the seed is an ordinary parameter, your patches and presets capture your exact patterns - and the SEED CV input can address it for pattern-switching madness.
A reseed never interrupts mid-loop. It arms (the RSED button glows, the fish swims faster) and takes effect when the track wraps to step 1. Music stays on the rails; new sections start where sections should.
CHANCE - does this step play a note at all? 100% = every step, 50% = half rests. Seeded, so the same steps rest on every loop until you reseed.
Every seed produces a base melody - a line spanning two octaves of the scale, centred on the root, so melodies orbit their home note. That melody exists on its own: with NOTE and OCTAVE at centre (the defaults), it's exactly what you hear.
Turn them up for wildness, and back to centre to return to the pure base melody - nothing is ever destroyed. Notes are built from the scale, so nothing is ever out of key.
Set a track's Follow (right-click menu) to another track and it mirrors that
track's material - same musical contour - filtered through its own settings: its
own chance, note/octave amounts, octave, rate, length, gate. Reseed the source and the
follower changes with it. Set it back to Off to unlink (the track's own
seed is untouched underneath).
Because a track's melody is derived from its seed, Direction doesn't change the notes - it changes the walk. Reverse plays your exact melody backwards; Pendulum and Pong fold it into palindromes (ends played twice or once respectively); Drunk staggers through it (50% forward, 25% repeat, 25% back); Random abandons order entirely. Random and Drunk are truly unpredictable modes - most others loop identically, and flipping back to Forwards always recovers the original line.
The rhythm holds steady while the melody drifts one step through it on every pass, realigning after length passes. Watch the lane: the pattern slides left each time the loop wraps. Fully deterministic - and it phases against a follower playing the un-shifted original.
Every step plays exactly once per pass, in a freshly dealt order each pass. Unlike Random, nothing repeats and nothing is skipped: the same notes, their story retold every loop. The deals are seeded, so even the shuffles are reproducible.
The playhead circles a small pocket of 3–4 adjacent steps for a few laps, then hops to another pocket. Motifs repeat, mutate position, move on - the closest a sequencer gets to sounding like it's thinking about a phrase.
Armed reseeds land at the mode's loop origin (step 1; the last step in Reverse; the pass boundary in Tide/Shuffle; immediately in Random/Drunk/Pools).
Each track has its own Length (1–64 steps) and RATE (/64 … ×64 of the
master clock). The dial runs /64 /32 /16 /8 /7 /6 /5 /4 /3 /2 ×1 ×2 ×3 ×4 ×5 ×6
×7 ×8 ×16 ×32 ×64 - the odd ratios (3, 5, 7, plus 6) sit right next to the even
ones, so a track at ×3 or /5 pushes against the grid while the rest of the shoal holds
it. A 16-step track over a 5-step track at /2 makes phrases that don't repeat for a
long time; a 33-step track over anything makes phrases that never seem to. This
is where the "generative" feeling really comes from.
Four controls made for long-form and ambient playing:
Each pass, that share of steps quietly re-roll themselves, pitch and rhythm alike. At 5%, a melody becomes a different melody over ten minutes without your hands. Seeded, so the evolution path is repeatable; reseeding starts a fresh lineage. Followers evolve with their source.
The chance that an entire pass rests. Steps rest with Chance; phrases rest with Breathe. The track's lane dims on the display while it sits out, and re-enters on its next pass.
The shoal holds its breath: nothing advances and every running track's current
note is held, hanging as a chord until you release. Freeze blooms: engaging
it raises every gate immediately - including tracks between notes - so the full
chord always sounds the instant you freeze. A slow gate into FREEZE makes oceanic
swells. By default the clock output keeps running through a freeze; set
Frozen clock out to Stops to hold the whole patch's breath.
Consonance gravity: that share of notes snap to the scale's root, third or fifth. High weight turns wild settings lush instead of angular.
Shoal works on a selected-track basis: the TRACK buttons under the display choose which track the knobs and buttons address, and the knobs snap to show that track's values when you switch. Every control is a real Rack parameter, so MIDI-mapping and preset saving work as usual.
| Knob | Range | What it does |
|---|---|---|
| CHANCE | 0–100% | Probability a step plays a note |
| NOTE | ±100% | Random note variation: distance from centre = how often and how far, direction = up or down |
| OCTAVE | ±100% | Random octave leaps, same principle |
| Knob | Range | What it does |
|---|---|---|
| LENG | 1–64 | Steps in this track's loop |
| RATE | /64…×64 | Speed relative to the master clock (×1 = one step per beat) |
| DIRN | 9 modes | The walk (see Directions above) |
| TRNS | −7…+7 | Fixed shift in scale degrees - always in key. +2 on a follower = parallel thirds |
| SHFT | −63…+63 | Rotate the whole pattern - notes, gates, their timing - non-destructively (0 returns the original). On a follower, this is a canon |
| OCTA | −3…+3 | Fixed octave shift for the whole track |
OCTAVE the big knob adds random octave leaps; OCTA the small knob transposes the whole track by fixed octaves.
| Button | Acts on | What it does |
|---|---|---|
| FRZE | global, latching | Hold every sounding note as a chord; nothing advances. Glows while frozen, including CV-driven freezes |
| MUTE | selected track | Silence the track's gate; the pattern keeps running, and unmuting drops back in on the grid. Pitch CV holds its last note, so a gate-less voice (drone, self-oscillating filter) sustains rather than going quiet |
| SOLO | selected track | Mute everyone else. Solo another track to move it; press again to clear |
| RUN | global, latching | Master play/pause |
| RSET | global | All tracks restart at step 1 on the next tick |
| RSED | selected track | Reseed: rolls a fresh random seed, armed, landing at the loop origin. Glows while armed |
| Jack | Direction | What it does |
|---|---|---|
| GATE 1–8 | out | The track's gate. High level per track (1–10V, default 10V, set in the menu). GATE 2/4/6/8 also carry poly channels if Poly output routing is set |
| PITCH 1–8 | out | The track's pitch CV, 1V/oct, 0V = C3. Per-track scale and offset in the menu. PITCH 2/4/6/8 also carry poly channels if Poly output routing is set |
| CLK OUT | out | Shoal's master clock: 10V pulses at the ×1 step rate, 50% duty. Follows Run; during Freeze see Frozen clock out |
| CLK IN | in | External clock. A cable here is external mode - one pulse advances ×1 tracks one step; unpatch to return to the internal clock |
| RST IN | in | Rising edge: all tracks restart at step 1 on the next tick |
| RESEED | in | Rising edge: reseed everything - a fresh random base, armed, each track landing at its own loop origin. Built for triggers |
| FREEZE | in | Gate: freeze while high, OR-ed with the FRZE button |
| SEED | in | CV addresses the selected track's seed: 0–10V maps to 0–999. Change the voltage and the track reseeds to that exact number (armed, on the grid) |
S = solo, M = muted,
‹n = following track n. A lane drawn dim (without
M) is breathing - resting this pass.Leave the controls alone (five minutes by default; Off / 1 min / 5 min in the right-click menu) and the display dissolves into open water: eight fish, one per track, swimming the screen. Each fish darts forward whenever its track sounds a note, so the scene is your patch - busy tracks race, sparse tracks glide, muted tracks drift dim and slow, a breathing track fades while it rests. Freeze stills the whole shoal mid-water (the bubbles keep rising; the sea stays alive).
Touch any of the module's controls and the normal display returns - the waking touch is swallowed, so you can't reseed a track just by waking the screen. CV arriving at SEED, RESEED or FREEZE deliberately doesn't wake it: a generative patch can fall asleep and be watched.
Track 1: your melody. Select track 2 and set it to follow.
Follow Track 1 · OCTA −2 · RATE /4 · CHANCE ≈50% · Gate length ≈80%The same melody harmonises itself, in key, through every reseed. Thin it with CHANCE so the harmony only appears on some notes.
Follow Track 1 · same RATE/LENG · TRNS +2 (thirds) or +4The same melody enters four steps behind its leader, an octave down - a round that survives every reseed. Shift the follower, never the leader.
Follow Track 1 · same RATE/LENG · SHFT −4 · OCTA −1Patch CLK OUT to drums, clocked LFOs and synced delays - everything rides Shoal's grid in either clock mode. During a Freeze the pulse keeps running by default, so delay tails stay in time while the melody hangs.
Then don't touch anything for twenty minutes - Evolve/Breathe compose, Weight keeps it lush. A slow LFO into FREEZE swells chords out of whatever is playing.
lengths 16/11/7 · rates /2, /4 · CHANCE 30–50% · Breathe 20% · Evolve 5–10% · Tie 30% · Slop 10% · Weight 60% · In-Sen scaleA step sequencer into SEED switches the selected track between melodies you've chosen, each landing neatly at the loop start. 0–10V maps to seeds 0–999, about 10mV per seed - quantised sources work better than drifting ones.
MIDI-map Root note (or Scale). Each track adopts the new key on its next note, cascading over a beat or two.
Take just the gate output. The seeded rests and drift make a repeating, groovy pattern.
CHANCE 65% · NOTE/OCTAVE centred · Gate length 10% · Slop 15% · RATE ×8Per-track Gate level, Pitch scale and Pitch offset remove the need for external attenuators: 5V gates for picky envelopes, 120% for 1.2V/oct gear, or compress the melody into a narrow window for video synthesis.
S on its lane)?
Patched from the right track's jacks?