Orrery

A song with no score: five minutes of E minor at 112 BPM, from a gong at dawn to a gong at nightfall. Nothing tells the patch when to play what. There's no Arranger, only slow orbits. A Day rises for 200 seconds and sets in 100, and each voice waits for the Day to reach its height before it comes in, then leaves as the Day goes down. A Tide takes the rhythm away once and brings it back. Two clock gears, five bars and seven, meet every 35 bars, and each meeting is an eclipse.

This is how a modular player builds a piece that plays itself: patterns that move against each other, and slow voltages that decide who is up. The top level is the orrery itself. The clockwork and the orbits are in plain view, and each voice is a group you can open.

Load it: choose πŸ“š Examples β†’ Orrery in the toolbar and press β–Ά Play. It needs no keyboard. The patch file is patches/orrery.json.

Or play it here: press β–Ά Play in the corner. The full app is a click away under Open in Soba. The clockwork's dividers are at the top left, with the orbits beside them. Below them is "Who is up", one Logic module for each voice, waiting for its height. The voices and the mixing desk come last.

The song

There are no sections, only the Day. The names below describe where it is.

BarsTimeThe DayWhat happens
1–40:00DawnAn eclipse: a gong, and its ring. As it fades, the Moon begins to sway between two notes.
5–80:09A low E and B drone, and the steady Twin, which sets the bar.
9–120:17A heartbeat: a soft kick on beats 1 and 3.
13–160:26The Sun: a string pad, one chord every four bars. It dips with each kick.
17–200:34The drifting Twin, one eighth shorter, starts to slip against the steady one.
21–280:43MorningThe bass: a Berlin-school ostinato under the chords.
29–351:00The full kit: four on the floor, offbeat hats and a shaker.
361:15An eclipse: the gong and a crash. The Twins snap back into step.
49–681:43NoonThe Day passes halfway. The drums step up to their groove, with clap, ride and open hats, and a fill closes every eighth bar. The Moon now sings in wide arcs.
69–842:26The TideThe Tide is at its lowest, so the bass and drums rest. An eclipse rings out in the space (2:30), and the Comet arrives over the drone (2:34): a gliding lead that only flies near noon.
85–1053:00AfternoonThe rhythm comes back in, with the Comet over it.
1063:45An eclipse. Soon after (3:51), the Comet leaves.
117–1284:09DuskThe Day falls below halfway, and the drums step back down.
129–1404:34The kit goes, then the bass, then the pad and the drifting Twin. The heartbeat is the last pulse, and the Moon narrows back to its two-note sway.
1415:00NightThe last eclipse, a gong, rings out.

Left running, the Day rises again and a second day begins. The Tide is 80 bars round, not 140, so the second day's rest falls somewhere else.

What it teaches

  • Form from a slow LFO and a few thresholds. The Day is a triangle LFO, unipolar, so it runs 0 to 1. Each voice has a Logic module whose Above is high while the Day is over its Threshold: 0.02 for the drone, 0.06 for the heartbeat, 0.2 for the bass, 0.74 for the Comet. That gate rides the voice's fader through a Slope, so each one fades in and out. The order voices come in is the order they leave.
  • Read the orbits once a phrase. A Sample & Hold reads the Day every four bars, from a Clock Divider at Γ·64. So every entrance lands on a phrase, not wherever the LFO crosses the line.
  • Gears. Two dividers count bars, one at Γ·5 and one at Γ·7, and a Logic AND fires only where they meet: every 35 bars. Each meeting strikes a gong and resets both Twins. A smaller pair at Γ·5 and Γ·7 sixteenths ticks a woodblock where they meet.
  • A melody from two drifting orbits. Moon A and Moon B are LFOs 7.1 and 4.95 dotted eighths long. Mixed, and sampled every dotted eighth, they never repeat the same way twice. A Quantizer snaps them to E minor pentatonic, and the bell is struck only on its Trig, when the note changes. The Day sets how wide they swing: two notes at dawn, more than an octave at noon.
  • Phasing. The Twins play one two-bar figure of sixteen eighths on two Step Sequencers. One plays all sixteen steps and the other only fifteen, so it slips an eighth on every pass, the way Steve Reich's Piano Phase drifts. Panned apart, the two parts slide against each other and lock back together at each eclipse.
  • Set the meter before the cross-rhythms. The Moon strikes in dotted eighths, three sixteenths apart, which on its own suggests a different bar. So the steady Twin and the heartbeat come in first, leaning on the beats. By the time the Moon and the drifting Twin have something to cross, you already know where the bar is.

Modules

There are 177 modules of 27 kinds. The ones that do the work:

ModuleRole
ClockBPM 112, Div 1/16
Clock Divider Γ—10Eighths, dotted eighths, bars and phrases; the Comet's five-eighth clock; the last bar of every eight, for fills; and two pairs of gears (bars at Γ·5 and Γ·7, sixteenths at Γ·5 and Γ·7)
LFO Γ—7The orbits: the Day (triangle), the Sundial (saw) that sets the Day's dusk, the Tide (80 bars), the Breath (13 bars, which moves the bass), Moon A and B; and the Comet's vibrato
Logic Γ—20Who is up: one for each voice's height, two for the drums' steps, and the eclipses; two more let only the drums you hear through to Seoul
Sample & Hold Γ—5The orbits read once a phrase, and the Moon's and Comet's notes
Quantizer Γ—4The Moon's and Comet's scale, and two used as steady voltages to set the slowest LFO rates
Chord SequencerEm9, Cmaj9, G6, Dadd9, Em9, Am9, Cmaj7, Bsus4: a chord every four bars, for the pad and the bass's root
Step Sequencer Γ—4The Twins (16 and 15 steps), and the bass: notes in four patterns, chosen by the Breath, and accents
Trigger SequencerThe drums: a heartbeat (A), a beat (B), the groove (C) and the fill (D), stepped up by the Day
Drum Γ—9Kick, clap, closed and open hats, shaker, tom and ride; the eclipse's crash; the tick's woodblock
String Machine, FM Bell Γ—2, Pump Γ—2From the Library: the Sun's pad, the Moon and the gong, and the kick's pump on the pad
Ladder Filter Γ—3The bass, the Comet and the drone
NoisePink surf that swells with the Tide
Stereo DelaySync 1/8D, P-P and Tape on: the echo, with a hall of its own
Reverb Γ—2The hall everyone shares, and the echo's
Mixer Γ—4Sky, Earth, Pulse and Air, on one chain
TapeA little wow, saturation and age over the whole mix
Audio OutputVol 60%, Limiter and Character on
Link OutThe orbits and the drums, sent to the Seoul visualizer

The rest are the voices' own oscillators, envelopes, VCAs and filters, and the Attenuverters and Mixes that scale the orbits.

How it's built

The Day, and its dusk

A day that rises for 200 seconds and falls in 100 isn't a plain triangle, so the Day's rate changes at dusk. Its Rate knob is at 0.01 Hz, and a steady βˆ’2 V on its rate input takes it two octaves down, to 0.0025 Hz: a 200-second climb. At dusk, a gate adds +1 V, and the Day falls twice as fast as it rose.

That gate comes from the Sundial, a saw LFO once round the whole song, through a Logic at 2/3. The Day can't time its own dusk: a cable from its Phase back to its own rate would make a loop, and Soba leaves loops out.

The βˆ’2 V comes from a Quantizer. A Mix rounds off anything past about Β±1, so it can't sum to βˆ’2. The Quantizer's Transpose adds its semitones as volts (12 semitones is 1 V) to an Attenuverter's βˆ’1 V, and the dusk gate adds its +1 V through the Transpose input.

Who is up

[Day] ──> [S&H, every phrase] ──> [Logic CV]   Threshold: the voice's height
                                  [Logic Above] ──> [Slope] ──> the voice's fader
[Tide] ─> [S&H] ─> [Logic] ──ANDβ”€β”€β”˜  (for the bass, the heartbeat and the drums)

The bass, heartbeat and drums need the Day and the Tide, so each of their Logics also takes the Tide's gate on B and passes AND. The bass and the kit swell with the Day too: they come in quieter in the morning and play out in full at noon.

The drums climb

The Trigger Sequencer's Pattern input picks A, B, C or D from four quarters of its range. Three gates add up into it: past the kit's height, the drums step to B (+0.3); past halfway, to C (+0.25); and in the last bar of every eight, while the Day is past halfway, the fill (+0.3) takes them to D.

To Seoul

At the top right, a Link Out sends the orrery to Seoul, a music visualizer, so the picture follows the song's own orbits rather than guessing at them from the sound. It follows Seoul's lane convention, so any of Seoul's link-aware presets plays along:

LaneFromIn Seoul
CV 1The DayEnergy: the picture brightens toward noon and dims at dusk
CV 2The BreathColor, turning every 13 bars
CV 3The TideMotion, which slows while the rhythm rests
CV 4, CV 5Moon A and Moon BThe melody's two orbits, for presets that read them (Obangsaek's white and black)
Gate 1The heartbeat and kick, while the heartbeat is upThe kick
Gate 2The clap, while the kit is upThe snare
Gate 3The closed hats, while the kit is upThe hats
Gate 4Each eclipseA bloom, in Obangsaek

The Drums group runs its sequencer the whole song and leaves the faders to decide when it's heard, so its gates fire in the silence too. That's why gates 1 to 3 come through Logic ANDs with the same "who is up" gates the faders follow: Seoul sees only the drums you hear. The Drums group has Clap and Hats outputs for them, beside its Kick.

Link Out makes no sound, so the mix is exactly as it was. Try Seoul's Han River (fountains on the kick, fireworks on the clap) or Hongsalmun (a stride on every kick), and watch the city go dark through the Tide.

Variations

  • Line up the Twins. Open Twins β†’ Fifteen and set its sequencer's Steps to 16. The two parts now play the figure in unison, and the drift is gone. Set it back to 15 to hear them slide apart again.
  • A different noon. In "Who is up", the Logic at Threshold 0.74 is the Comet's. Raise it to 0.9 and the Comet flies only for the top of the Day, or lower it to 0.5 for a longer afternoon.
  • More eclipses. In "The clockwork", find the two gears clocked by the bar divider, at Γ·5 and Γ·7, and set the Γ·7 one to Γ·3. The gears now meet every 15 bars, and the gong and the Twins' reset come round more than twice as often.