timelorde singleton
timelorde · modulationSingleton master clock. Internal or external BPM, twelve clock-divider outputs. Its two transport controls name their own states — RUNNING / STOPPED beside GATES LIVE / MUTED — because a stopped clock and a muted one are silent in exactly the same way at all thirteen jacks, so seeing both is the only way to tell which one is silencing your rack. A TAP pad sets the tempo by ear: tap twice in time to lock the BPM, keep tapping to refine it (median of the recent intervals, ~2s timeout starts a fresh count); the Spacebar taps it too while TIMELORDE is the selected node. TAP does nothing while an external clock is patched into CLOCK IN — the measured external tempo owns the BPM then, and your own setting is put aside and handed back when you pull the cable out. The big display shows the owl painting whose YELLOW EYES and BLUE BORDER brighten in time with the beat (the body stays steady); patch a feed into VIDEO IN and it becomes a live monitor while VIDEO OUT passes the feed through (TIMELORDE can sit inline in a video chain). A SCREEN switch hides the display to reclaim its space — the picture keeps being made either way, so VIDEO OUT never goes dark.
the faceplate
inputs
| id | cable | what it does |
|---|---|---|
clock | gate | External clock input: while patched, TIMELORDE locks its master tempo to the measured period between incoming rising edges, so every division output tracks the external pulse train. Unpatch and it falls back to the internal BPM after a couple of beats — and to the BPM YOU set, not to the tempo the hardware happened to be running: the lock puts your setting aside rather than overwriting it. One beat of lock-in is unavoidable: a period needs two edges to measure, so the FIRST incoming beat has its 2x / 4x / 8x subdivisions laid out at whatever tempo the BPM knob says instead. They are all still there — the spacing is off for one beat, nothing is dropped — and from the second beat on the multipliers ride the measured tempo. Set the knob near the incoming tempo and even that beat lands where you expect. gate / trigger; trigger — fires once per rising edge |
start_in | gate | Transport START: a rising edge resumes the clock from wherever it was last stopped (musical position is preserved, like a DAW play button). Wire MIDICLOCK's start here to slave the rack's transport to a hardware MIDI device. gate / trigger; trigger — fires once per rising edge |
stop_in | gate | Transport STOP: a rising edge halts the clock — phase, sample counter and pending pulses all freeze and the outputs go low. This is a real transport stop (distinct from the card's MUTE, which silences the gates but keeps the clock turning). Wire MIDICLOCK's stop here for the matching stop side. gate / trigger; trigger — fires once per rising edge |
gate | gate | Wizard show/hide control — a level-sensitive (not edge-triggered) gate: while it is held high the neon WIZARD graphic is shown, while it is low the wizard is hidden. It converges on the same state as the on-card wizard toggle (the button is a manual override, this input is external control). Card-visual only — the clock ignores it. gate / trigger; gate — acts while the level is high (reacts to both edges) |
video_in | video | Cross-domain video input: patch a video feed here and the card's big display becomes a live monitor of that feed (the wizard steps aside) and the feed passes through to VIDEO OUT, so TIMELORDE can sit inline in a video chain. RGB video stream |
outputs
| id | cable | what it does |
|---|---|---|
1x | gate | Quarter-note clock — one pulse per beat at the master BPM. The reference division everything else is built from. gate / trigger; trigger — fires once per rising edge |
8x | gate | 32nd-note clock — eight pulses per beat (the fastest subdivision tap). Like the other multipliers it is exact from the very first beat: the subdivision is computed from the tempo you set, not measured from a beat that has already gone by, so its first pulse lands on the downbeat together with 1x. (With an EXTERNAL clock patched there is one exception that cannot be avoided — see CLOCK IN.) gate / trigger; trigger — fires once per rising edge |
4x | gate | Sixteenth-note clock — four pulses per beat. Exact from the first beat, same as 8x. gate / trigger; trigger — fires once per rising edge |
2x | gate | Eighth-note clock — two pulses per beat. Exact from the first beat, same as 8x. gate / trigger; trigger — fires once per rising edge |
1/2 | gate | Half-note clock — one pulse every two beats. gate / trigger; trigger — fires once per rising edge |
1/3 | gate | One pulse every three beats (dotted/triplet-feel longer division). gate / trigger; trigger — fires once per rising edge |
1/4 | gate | One pulse every four beats — once per bar in 4/4. Like every divider it fires on the FIRST beat of its group, coincident with 1x, so it lands on the downbeat. gate / trigger; trigger — fires once per rising edge |
1/8 | gate | One pulse every eight beats — once every two bars. gate / trigger; trigger — fires once per rising edge |
1/12 | gate | One pulse every twelve beats — once every three bars. gate / trigger; trigger — fires once per rising edge |
1/16 | gate | One pulse every sixteen beats — once every four bars. gate / trigger; trigger — fires once per rising edge |
1/32 | gate | One pulse every thirty-two beats — once every eight bars. gate / trigger; trigger — fires once per rising edge |
1/64 | gate | One pulse every sixty-four beats — once every sixteen bars (the slowest tap, for very long-form modulation). gate / trigger; trigger — fires once per rising edge |
swing | gate | A SHUFFLED copy of whichever division SRC selects (1x by default): its on-beats fire dead on time and its off-beats are held back by the SWING amount, so the pulses alternate long-short instead of arriving evenly. At SWING 0 it is an exact duplicate of the source, which makes it safe to patch permanently and dial the shuffle in later. Patch it where you want a swung rather than straight clock. gate / trigger; trigger — fires once per rising edge |
video_out | video | Cross-domain video output: the picture the card's big display shows — the live feed when something is patched into VIDEO IN, otherwise the beat-pulsing wizard — passed on for downstream video modules. RGB video stream |
params
| id | label | range | default | curve |
|---|---|---|---|---|
bpm | BPM | 10..300bpm | 120 | log |
swingAmount | Swing | 0..90deg | 0 | linear |
swingSource | Src | 0..11 | 0 | discrete |
muteOutputs | Mute | 0..1 | 0 | discrete |
running | Run | 0..1 | 1 | discrete |
wizardOn | Wizard | 0..1 | 1 | discrete |
controls
| control | what it does |
|---|---|
| BPM | BPM — the master tempo every division output is derived from (10–300). While an external clock is patched into CLOCK IN the measured external tempo takes the control over, so everything that reads the tempo (the outputs, LIVECODE's clock, a collaborator's screen) agrees with the hardware. Your own setting is not lost while that happens: it is put aside and handed back the moment you pull the clock cable out, and if you re-set the tempo during the lock it is that later setting you get back. |
| Mute | MUTE — silences every gate output while the internal clock keeps running underneath (so LIVECODE's clocked() callbacks and other tick subscribers stay alive). Bound to the card's MUTE button. Different from a transport STOP, which actually halts the clock — but NOT different at the jacks: a muted clock and a stopped one both send nothing at all down every one of the thirteen outputs, so a cable cannot tell you which one is silencing your rack. The card's TRANSPORT readout names the state (RUNNING / STOPPED / MUTED / STOPPED + MUTED); read it before you go hunting for a broken patch cable. |
| Run | RUN — the transport state (1 = clock advancing, 0 = halted with phase frozen). It is driven by the START/STOP gate inputs as well as the card's transport button, and is saved so a stopped rack reloads stopped. Halting is a real stop: the phase accumulator, the sample counter and the pending pulses all freeze, so nothing downstream advances (unlike MUTE, which only silences the gates). Because both states look identical from a patch cable, the card's TRANSPORT readout is the thing that tells them apart — and note that STOPPED + MUTED is its own state: un-muting a rack that is also stopped will not start it. |
| Swing | SWING — how far the SWING output's off-beats are pushed late, as an angle of the SOURCE division's own pulse interval (0–90°, so at most a quarter of the way to the next pulse); 0 is dead-straight, higher values deepen the shuffle. Because it is measured against the SRC train rather than the master beat, the same setting means the same feel whichever division you swing. |
| Src | SRC — which clock division feeds the SWING tap (0–11, one per gate output in the order 1x, 8x, 4x, 2x, 1/2, 1/3, 1/4, 1/8, 1/12, 1/16, 1/32, 1/64), so you can shuffle a faster or slower subdivision than the default 1x quarter-note. |
| Timelorde tap {n} | TAP — set the tempo by ear: tap it twice in time with the beat and the BPM locks to the interval you tapped, then keep tapping to refine it (it takes the median of your recent taps, so one mistimed tap does not drag the estimate, and a pause of about two seconds starts a fresh count). It writes the ordinary BPM control, so the value persists and syncs to everyone in the rack. While an external clock is patched into CLOCK IN it does nothing at all — the measured external tempo owns the BPM then. |
| Wizard | WIZARD — whether the owl display is shown (1) or hidden (0); it pulses with the beat while running. Driven by both this switch and the level on the gate input, which converge on one state. Display-only — not used by the clock, and VIDEO OUT keeps passing the picture on either way. |
source
timelorde.ts on GitHub.