s3g Relay

s3g Relay is a MIDI-only CLAP sequencer whose rhythm is carried by a recurrent control ecology instead of a pattern grid. Twenty signed neural nodes form four five-node pentads. Eight comparator relays observe that field, write decisions into an eight-bit recirculating register, emit assignable notes and controllers, and return signed impulses to the field. An optional MIDI input lets external notes and control changes perturb that ecology without being passed directly to the output.

Relay contains no clips, piano roll, samples, or audio generator. REAPER supplies musical time and routing; a downstream drum, Sample-family plug-in, or other MIDI instrument supplies the sound.

Workflow

  1. Insert s3g Relay before a MIDI-receiving instrument, or route its single MIDI output to one or more instrument tracks. Choose a factory preset from the title bar when you want a complete starting ecology.
  2. Monitor the receiving instrument through the appropriate speaker, headphone, decoder, or fold-down path.
  3. Select relay R1–R8 in the graph or lower header. The Voice toolbox owns channel, note, comparator, gate, receptor, pitch, and articulation controls. CC Routing owns the two generic controller lanes. A note or controller can be set to Off.
  4. Choose a receptor topology. Local listens to the corresponding cluster, Cross listens across the graph, Diffuse combines the whole field, and Roaming moves between clusters over climate time.
  5. Set Threshold, Bias, and Refractory to decide when the relay fires. Choose Restart, Hold, Extend, or Stack articulation for its notes. Feedback controls the signed impulse returned to its cluster after a rising register edge.
  6. Choose a Lattice Depth and Dealer Law, set Form Cycle, Cell Dwell, and Gestation, then start the host transport.
  7. Optional: route another MIDI track or controller into Relay, open Inject, and choose how those events enter the field.

The same host position, time signature, seed, parameter state, and external MIDI events reproduce the same decisions. Audio buffer size does not change the sequence. Stop, seek, disable, and mapping changes release affected notes safely.

Interface Panels

These views were captured from the same running Relay instance in an active REAPER project. Select an image to inspect the full-resolution panel.

Field, Relays, and Memory

LayerOperationMusical consequence
Neural fieldFour signed five-node pentads exchange energy through a recurrent matrix and slow-to-fast hierarchy.Asymmetric rotations, tensions, and recoveries rather than authored steps.
ReceptorsEight configurable views reduce the field to signed comparator signals.Different relays can hear local, opposed, global, or migrating activity.
RegisterOne comparator decision enters an eight-bit shift register on every clock tick.Decisions circulate, collide with neighbor logic, and recur as rhythm.
Relay feedbackA rising bit emits MIDI and injects a signed impulse back into one cluster.What the sequencer plays changes what it will decide next.

Memory chooses between recirculated register data and fresh comparator data. Mutation introduces deterministic seeded perturbation and slow connection plasticity. The standalone Freeze control removes those field changes but leaves long-form time running. The compound Crystallize action remembers the current Memory value, sets full memory, freezes the ecology, and holds the climate deck at its exact card, plane, gestation position, and Form Cycle phase. The field and register continue producing MIDI against that held climate. In this state the button becomes Thaw; pressing it restores the remembered Memory value, turns Freeze off, and resumes form time from the held position instead of catching up to elapsed host time. Crystallize/Thaw state, the held form instant, and thaw memory are stored in host projects and Relay preset files. A reopened instance returns to Crystallize at that saved form-time position; as with ordinary Relay project recall, dynamic neural activity is reconstructed rather than stored as sampled node data.

Select Field in the Output View to inspect the ecology. Each pentad proceeds clockwise from its top node through Initiate, Accumulate, Integrate, Invert, and Recover. The role-specific biases and response rates make Recover the slow return path rather than a fifth generic node. With a receptor in Local mode, R1–R4 combine their cluster average with its Initiate node while the paired R5–R8 combine it with Invert, so paired receptors no longer hear identical local positions.

Each cluster is flanked by its paired receptors: R1/R5 listen from C1, R2/R6 from C2, R3/R7 from C3, and R4/R8 from C4. The paired arrows between neighboring nodes are the engine's actual recurrent couplings: rust is excitatory, teal is inhibitory, arrowheads identify the receiving node, and width shows fixed coupling strength. Node color shows the current signed state and node size its magnitude. The short signed rail beside each receptor shows its current negative-to-positive position. A single line shows the selected topology path; Local paths terminate on the exact Initiate or Invert node, while diffuse receptors meet at the central diffuse bus.

The adjacent Learning page exposes that slower adaptive layer as a contiguous 4×4 area-encoded matrix. Bordered columns are labeled Send C1C4 and bordered rows Recv C1C4. In Weight, a filled square shows each effective weight, with area—not side length—proportional to magnitude; its outline preserves the fixed base weight. Rust is positive, teal is negative, and the short line at the foot of each cell shows the signed learned delta. Exact D and W values remain printed in every cell. Flow instead fills the square from the live signed contribution source cluster × effective weight, retains the effective weight as its outline, and prints exact source and flow values. Clicking a cell in either mode selects that send/receive pair; returning to Field highlights both clusters and their directed connection.

The side readout reports mutation, mean and maximum drift, strongest adaptation, and sign reversals. Its status is literal: Idle means transport is stopped, Static means transport is running with Mutation at zero, Adapting means learning can change, and Frozen means Freeze or Crystallize is holding it. Diagonal base weights begin at zero, but correlated activity may develop learned self-coupling.

Climate-Lattice Form

A seeded climate lattice supplies composition-scale change. Lattice Depth selects one 4×4 Sheet, 2 Planes with 32 cells, or 4 Planes with 64 cells. Relay normally walks to one of eight wrapping neighbors within its current plane after each Cell Dwell; register state and cluster energy occasionally send it vertically to the corresponding cell on an adjacent wrapping plane.

Planes are macro-climates: all 16 cells on a plane share a strong seeded tendency, while each cell adds local variation. Every cell supplies four signed traits that bend field Energy, Coupling, Hierarchy, and Contrast. Climate sets the depth of those changes, while Gestation crossfades between the previous and current cell rather than cutting abruptly.

The four Conduct sliders remain the manual baselines; lattice traits modulate them additively rather than replacing them. After plane/card weighting, Gestation, and the Climate depth are applied, the effective values are Energy + E×0.24, Coupling + C×0.22, Hierarchy + H×0.20, and Contrast + X×0.22, clamped to their safe ranges. Each slider prints manual→effective and draws a second climate marker, so the authored value and current modulation remain distinguishable. At Climate 0% the deck has no effect. At 100%, a trait can move its baseline by the full amount in either direction; settings near an endpoint may reach the clamp and therefore show less apparent movement.

Select Form in the Output View to read the lattice as a climate deck. Planes become suits and cells become cards. Follow keeps the visible suit attached to the current deal, while P1P4 let another available suit be inspected without changing playback. Every card prints explicit signed Energy, Coupling, Hierarchy, and contrast X values; the enlarged Dealt Climate card spells out the four traits, shows their signed gauges, and gives gestation and form-cycle progress. The active, previous, and recently visited cards are distinguished in the grid, and Recent Deal shows the path across suits.

The deck metaphor describes the existing deterministic mechanism rather than imposing a conventional no-replacement card game. Seed plus Form Cycle reshuffles the cards' climate traits. Register and field state then deal the path by choosing a wrapping neighbor or an occasional plane change, so a card may recur. Moving the atlas into its own page leaves the Climate toolbox for the parameters that shape that process.

Dealer Law changes how the next neighboring card or plane is chosen. Ecological Drift is the original register-and-field-driven walk. Compass Rose rotates through the eight directions and crosses a plane at regular larger intervals. Seeded Wander uses a repeatable seed-derived direction with occasional vertical movement. Avoid Recent scores the available neighbors against the last eight deals. Climate Contrast chooses the candidate whose four climate traits differ most from the current card. Plane Tides makes every fourth deal vertical and alternates its direction. These laws organize the deal rather than creating fixed sequences; the ecology still evolves inside every selected climate.

Form Cycle defines the larger organism boundary in bars. At the next cycle the seed derives another deterministic lattice history. This separates three useful time scales: the clock produces local events, the register carries phrase memory, and the lattice supplies a long arc. The form does not prescribe intro, verse, or chorus; structure emerges from changing conditions imposed on the same ecology.

For a long developing piece, begin with Form Cycle 128 bars, Cell Dwell 8 bars, Gestation 2 bars, and Climate 68%. Raise Memory for recognizable recurrence, raise Mutation for divergence, or use Crystallize when a discovered state should become a stable passage.

Presets and Randomization

The title band follows the shared s3g-dsp convention. The Preset menu contains eight starting points: Init / Fixed, Drum Ecology, Muse Logic, Zillion Cascade, Hybrid Sample, Crystalline Canon, Long-Form Dorian, and Whole-Tone Drift. The Muse and Zillion presets are conceptual responses to logic-addressed hardware sequencing rather than device emulations. Drum Ecology uses Compass Rose on a single sheet, Muse uses Avoid Recent on two planes, Zillion uses Seeded Wander, Long-Form Dorian uses Plane Tides, and Whole-Tone Drift uses Climate Contrast. Muse uses protected Hold gates, Zillion and Whole-Tone use Stack polyphony, and the crystalline and long-form presets use Extend ties.

Factory presets preserve every relay's MIDI channel, fixed note, and CC A/B assignments while changing the ecology, comparator behavior, pitch modes, articulations, and shared scale. Random is more conservative: it changes the field, form, thresholds, feedback, refractory times, and receptor topologies while preserving all MIDI assignments and the current pitch and articulation configuration.

Save and Load write or restore the complete Relay state as an .s3gpreset file using the suite preset folder. Host project state remains independent and automatic.

External Ecological Injection

The Inject Output View owns Relay's MIDI input. Input Source accepts Notes, one selected CC, or both; Input Channel can be Omni or one channel. Incoming messages are converted from sample position to host beat and applied on the first ecology tick at or after the event. They do not pass through to Relay's MIDI output. The field must be advancing under the host transport for an injection to take effect.

Input Map determines where the force enters. Node Address maps note number modulo 20 to one exact pentad role. Cluster Address maps modulo four and distributes the force across that complete pentad. Relay Address first looks for a relay whose fixed output note matches the incoming note, falling back to note modulo eight, then injects at that receptor's cluster tap. Diffuse distributes the event across all twenty nodes. The chosen Input CC uses its controller number as the address.

With Impulse, Note On adds a force that recedes over Input Decay beats; Note Off does not create a second impulse. With Gate, velocity remains a continuous force until Note Off. A selected CC is always continuous after its first received value. Excitatory maps velocity or CC 0…127 to 0…1. Signed maps it to −1…+1, so lower values inhibit and higher values excite. Input Depth scales the complete external contribution. The Inject pentads and halos in Field show the signed force currently reaching each node.

Generic MIDI and Sample-Family Use

Relay is not coupled to a receiving plug-in. Each of its eight relays owns a MIDI channel, note, two generic controller lanes, base-gate multiplier, and refractory interval. With Sample-family instruments, notes can select files, slices, decks, or articulations. Each CC lane chooses one of twelve sources: Receptor, signed Cluster, Cluster Energy, Register Population, the legacy Energy + Register blend, four gestated climate traits, Gestation, Form Phase, or Plasticity Drift. Minimum and Maximum scale the source into any MIDI 0…127 range and may be reversed for an inverted mapping. Curve bends the response toward its lower or upper region, and Slew smooths changes before 7-bit quantization.

Controllers are sampled at CC Interval, independently of note triggers; Off assignments and repeated 7-bit values emit nothing. For backward-compatible behavior, CC A defaults to the signed receptor mapping and CC B defaults to the 72% cluster-energy / 28% register-population blend. Climate-trait sources expose the gestated signed card value itself, so their range does not collapse when the global Climate influence is reduced.

The default notes are 36, 38, 40, 41, 43, 45, 47, and 48. The default CC A assignments are CC 20–27; CC B begins Off. All use channel 1 and remain fully editable and stored with the host project.

Each relay independently selects Fixed or Scale Logic as its Pitch Mode. Fixed emits the relay's exact MIDI Note assignment. Scale Logic derives a degree address from rotated register taps, the signed receptor band, relay identity, and climate cell, then quantizes it through the shared Root, Octave, Scale, and Range controls. Setting the relay's MIDI Note to Off suppresses notes in either mode, so a relay may remain CC-only.

Articulation determines what happens when a relay fires before its current gate has finished. Restart ends its active notes and reattacks immediately. Hold ignores the new note firing until the configured gate completes, making Base Gate × Gate Scale a protected minimum duration. Extend pushes a matching pitch's Note Off later; when Scale Logic chooses another pitch it releases the old pitch and starts the new one. Stack allows up to four simultaneous voices per relay and steals the oldest voice when that pool is full.

Across eight relays, Stack can address a polyphonic synthesizer with as many as 32 scheduled voices. Relay coalesces simultaneous owners of the same MIDI channel and note: it sends the first Note On and waits for the final owner before sending Note Off. This prevents one relay from cutting off another relay that has converged on the same scale pitch. Standard MIDI cannot identify two independent copies of the same channel/note pair, so coalescing treats those duplicates as one safely shared sustained pitch.

The four-column Scale menu uses the complete 101-scale catalog shared across s3g-dsp. It spans core major/minor and modal families, pentatonic and blues collections, bebop and diminished sets, regional scales, modern symmetric scales, and Messiaen modes. Fixed and scale-driven relays can coexist—for example, R1–R4 can address drum or Sample-family triggers while R5–R8 generate a changing pitched layer.

Timing and Boundaries