Ormer Modular · made in Guernsey

SHOAL for VCV Rack

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.

Installing

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:

  1. If it reached you inside a .zip, unzip that first - the .vcvplugin file inside is the plugin.
  2. Open VCV Rack, go to Help → Open user folder, then quit Rack.
  3. In the plugins folder matching your platform (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.
  4. Drop the .vcvplugin file into that plugins folder. Don't extract it - Rack does that itself.
  5. Restart Rack. Shoal appears in the module browser under Ormer Modular.
Also swims in hardware: Shoal began on the Expert Sleepers disting NT, where it is free - same engine, same seeds, same melodies. The hardware manual lives here.

Five minutes to a first melody

  1. Add Shoal. It's already ticking: the internal clock defaults to 120 BPM, and ×1 means one step per beat.
  2. Patch track 1. GATE 1 → an envelope or VCA, PITCH 1 → an oscillator's 1V/oct input. Each track has its own pair of jacks along the bottom.
  3. Pick a key. Right-click → Scale and Root note. Try Minor pentatonic to start - it always sounds good.
  4. You should already hear a melody - every seed carries a base line spanning two octaves centred on the root. The bipolar NOTE and OCTAVE knobs add random variation on top when you want it wilder (up for upward straying, down for downward); return them to centre to come home to the base melody.
  5. Reseed until you like it. Tap RSED. Each tap rolls a new melody for the selected track, landing at the top of its next loop (the button glows while the reseed is waiting). Reseed all lives in the right-click menu and on the RESEED jack.
  6. Bring in more fish. Patch further tracks' jacks when you're ready - build the shoal one voice at a time, deliberately.
  7. To sync to your rack, patch a clock into CLK IN. A cable in that jack is external mode - Shoal follows it immediately, one pulse per ×1 step, and returns to its internal clock when you unpatch.

That's the whole game. Everything else is refinement.

The big ideas

Seeds: randomness that repeats

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.

Reseeds land on the grid

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 shapes the rhythm

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.

The base melody, and non-destructive variation

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.

Tracks can follow each other

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).

Direction: the same melody, walked differently

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.

Tide

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.

Shuffle

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.

Pools

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).

Polymetre and rate

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.

The slow arts

Four controls made for long-form and ambient playing:

Evolve · per track

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.

Breathe · per track

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.

Freeze · FRZE + gate input

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.

Weight · global

Consonance gravity: that share of notes snap to the scale's root, third or fifth. High weight turns wild settings lush instead of angular.

The panel

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.

Big knobs - the performance trio

KnobRangeWhat it does
CHANCE0–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

Small knobs

KnobRangeWhat it does
LENG1–64Steps in this track's loop
RATE/64…×64Speed relative to the master clock (×1 = one step per beat)
DIRN9 modesThe walk (see Directions above)
TRNS−7…+7Fixed shift in scale degrees - always in key. +2 on a follower = parallel thirds
SHFT−63…+63Rotate the whole pattern - notes, gates, their timing - non-destructively (0 returns the original). On a follower, this is a canon
OCTA−3…+3Fixed 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.

Buttons

ButtonActs onWhat it does
FRZEglobal, latchingHold every sounding note as a chord; nothing advances. Glows while frozen, including CV-driven freezes
MUTEselected trackSilence 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
SOLOselected trackMute everyone else. Solo another track to move it; press again to clear
RUNglobal, latchingMaster play/pause
RSETglobalAll tracks restart at step 1 on the next tick
RSEDselected trackReseed: rolls a fresh random seed, armed, landing at the loop origin. Glows while armed

Jacks

JackDirectionWhat it does
GATE 1–8outThe 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–8outThe 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 OUToutShoal's master clock: 10V pulses at the ×1 step rate, 50% duty. Follows Run; during Freeze see Frozen clock out
CLK INinExternal clock. A cable here is external mode - one pulse advances ×1 tracks one step; unpatch to return to the internal clock
RST INinRising edge: all tracks restart at step 1 on the next tick
RESEEDinRising edge: reseed everything - a fresh random base, armed, each track landing at its own loop origin. Built for triggers
FREEZEinGate: freeze while high, OR-ed with the FRZE button
SEEDinCV 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)

The display

The screensaver: the shoal at rest

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.

Recipes

A bass line that follows your melody

Track 1: your melody. Select track 2 and set it to follow.

Follow Track 1 · OCTA −2 · RATE /4 · CHANCE ≈50% · Gate length ≈80%

Parallel harmony

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 +4

A true canon

The 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 −1

Shoal as the master clock

Patch 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.

Evolving ambient

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 scale

Sequence the sequencer

A 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.

Live key changes

MIDI-map Root note (or Scale). Each track adopts the new key on its next note, cascading over a beat or two.

A human drummer's hi-hat line

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 ×8

Fitting other voltage standards

Per-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.

Troubleshooting

Nothing is moving on the display.
RUN is off, or there's a cable in CLK IN but no clock arriving - a patched clock input silences the internal clock entirely.
It's running but silent.
CHANCE at 0? MUTE lit? Another track solo'd (S on its lane)? Patched from the right track's jacks?
Notes seem out of time.
That's probably Slop - set it to 0 for machine timing.
The melody won't get wilder.
NOTE and OCTAVE are at (or near) centre - they're bipolar, and the centre is zero variation. Turn away from centre in either direction.
The knobs jumped when I pressed a TRACK button.
By design: the knobs always show the selected track's real values, so switching tracks moves them. Every track remembers its own settings.
My oscillator plays in a different octave than expected.
Shoal's 0V = C3, matching the hardware original. Tune your oscillator to taste, or use Pitch offset (+1V = up an octave).

Specifications