Skip to content

Latest commit

 

History

36 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

live-rig

Working notes, diagrams, and show sheets for a hybrid audio–video performance rig.

This repo exists so that future-you can walk into a venue, open one page, and remember:

  • what plugs into what,
  • which device lives on which MIDI channel,
  • and how the visuals are being driven by hands and by sound.

It’s not firmware. It’s the field manual for the whole ecosystem: audio, MIDI, analysis, and video endpoints.

If you need the library/catalogue view of boxes, runtimes, manuals, and muster steps, start with:

  • equipment/INDEX.md
  • equipment/MUSTER_MATRIX.md
  • equipment/MANUALS.md

If you need the actual current studio picture rather than the stable architecture, start with:

  • 12_current-studio-rig.md
  • 13_hardware-registry.md
  • 14_external-sources.md
  • docs/SCENES.md

If something is failing right now, start with:

  • docs/TROUBLESHOOTING.md
  • HELP_REQUEST.md
  • npm run doctor:helper
  • npm run collect:debug

QUICKSTART (start order)

  1. Clock first - decide who owns clock tonight, then keep it singular. DrumKid often fills this role; REAPER can do it in DAW-led sets.
  2. Audio + analysis - mixer -> Horizon / PA; frZone fed from a post-fader bus.
  3. Visuals + bridge - start SCapps / Processing endpoints, then the bridge/router.

Quick start (show-night sanity check)

If you’re standing in a basement / club / warehouse right now, start here.

  1. Clock (one boss only)

    • If REAPER owns clock tonight:
      • Enable the DrumKid MIDI output in Preferences → Audio → MIDI Devices.
      • Right-click it → Enable output + Send clock/SPP.
      • Keep Edirol/frZone tracks off that output: current DrumKid firmware accepts CC 16–31 on every MIDI channel.
    • If DrumKid owns clock tonight:
      • Keep REAPER out of transport ownership.
      • Use DrumKid to fan clock to SQ-64 or other devices if needed.
  2. Audio (mixer → Horizon → PA)

    • Patch sources and devices according to 02_audio-mixer-fx.md.
    • Confirm main mix → Horizon → interface / PA.
    • Send a post-fader bus (e.g. Bus 1) to frZone (and LineLight, if it shares that feed).
  3. Video (SCapps chain up)

    • Launch the appropriate SCapps chain from 05_scapps-rigs.md
      (Frame Buffer, Maelstrom, SC Video Mixer, etc.).
    • Confirm capture/camera → SCapps is working (or that your bridge app is feeding them).
  4. Control (Edirol + frZone)

    • Move each Edirol fader/knob on the video-control channel and watch the bridge / SCapps respond.
    • Play audio and confirm frZone shows activity and is issuing CC on its analysis channel.
    • If Maschine MK1 is present, confirm only the intended safe/scene/event pads are armed; it should not own transport.
  5. Safety

    • Verify you have a reliable blackout / safe scene you can trigger instantly.
    • After the set, jot any weirdness in notes/ so it can feed back into the docs.

Once those five are green, you can start pushing things into the red.


Mental model

Three lanes, one rig:

  • Audio lane
    Sources → mixer → Horizon / other FX → PA / recording.
    frZone and LineLight tap a post-fader bus here to “listen” to the mix.

  • Control lane
    One device owns clock at a time.
    DrumKid often serves as the active clock controller.
    REAPER can take that role in DAW-led sets.
    SQ-64 and AE rack handle voices.
    Edirol sends visual macros.
    frZone sends analysis CCs. Maschine can optionally add a small scene/event deck.

  • Video lane
    Capture / camera feed flows into a chain of Signal Culture modular video apps (“SCapps”).
    These are video endpoints:

    • They receive video (capture / Syphon)
    • They receive control (MIDI/OSC) from Edirol, frZone, and any optional semantic deck routed through the bridge
    • They do not own the global logic; they just react beautifully.

This repo describes how those three lanes weave together for different shows and projects.


File map (what lives where)

These are the files currently in the repo and their jobs:

  • 01_system-overview.md
    Big-picture map of the rig: audio, MIDI, and video lanes, plus where SCapps sit.

  • 02_audio-mixer-fx.md
    Mixer channel layout, FX loop, how Horizon sits on the master bus, and how frZone / LineLight tap the audio.

  • 03_midi-clock-video.md
    Clock topology and MIDI routing, including how DrumKid- or REAPER-led clock setups coexist with the video-control lanes.

  • 04_scapps-overview.md
    Overview of the SCapps in use (Frame Buffer, Maelstrom, SC Video Mixer, etc.):
    what each app does, what it expects for video in, and what MIDI/OSC it listens to.

  • 05_scapps-rigs.md
    “Whole-world” video setups: which SCapps are chained together for a given set or EP, and how Edirol’s controls are mapped for each rig.

  • 10_maschine-mk1-lane.md First-pass field-manual page for the optional Maschine MK1 scene/event deck: pad intent, stable IDs, safety logic, and interop guidance.

  • 11_repo-roles-failover.md Authority-side registry for repo roles, survivability tiers, failover paths, and show-night failure cards.

  • 12_current-studio-rig.md Snapshot of what is actually in the studio now: core, dormant, planned, and under-documented nodes.

  • 13_hardware-registry.md Flat current-rig registry of hardware nodes, their current roles, their sources of truth, and the next documentation move for each.

  • 14_external-sources.md Provenance map for manuals, local repos, vendored code, and other off-page sources this rig still depends on.

  • equipment/ Field-library atlas for anything that can be remembered, taught, loaned, patched, revived, or called into service. This is the broader equipment truth, separate from the current show-ready rig truth.

  • docs/TROUBLESHOOTING.md Symptom-first recovery guide for audio, visuals, controller, clock, frZone, safety states, export drift, and hardware-source confusion.

  • HELP_REQUEST.md Copy/paste intake sheet for getting help without losing time to vague state gathering.

  • docs/PROFILES.md Mission profiles for show readiness: required devices, optional devices, controllers, endpoints, and clock doctrine.

  • docs/CONTROLLERS.md Semantic controller maps for the physical surfaces and the web control surface.

  • RigMap.drawio.png Current hand-built studio diagram: the fastest way to see which nodes are actually active right now.

  • interop/
    Interop contract + play rules: mappings schema, authority contract, exported runtime profile, endpoint behavior, naming conventions, bridge expectations, and consumer notes in docs/INTEROP_EXPORTS.md.

  • tools/rig-doctor.js
    Profile-aware preflight command for show readiness, environment checks, runtime context, safety mapping summaries, export freshness, and capture JSON.

  • tools/collect-debug.js Builds a timestamped logs/live-rig-debug-* packet with doctor JSON, selected profile, scene file, controller maps, interop export, package metadata, and git state.

  • docs/PREFLIGHT.md Show-night preflight guide with 5-minute and 20-minute checklists.

  • vendor/greyBox/ Vendored snapshot of the current greyBox / Growser sketch family so the source is available from this repo alone.

  • hardware/ Backwards-compatible pointers to moved equipment passports. Use equipment/ for new per-node pages.

  • snapshots/ Last-known-good or documented-placeholder snapshots of profile, devices, clock, endpoint, safety anchors, and things not to change before the next test.

  • 06_frzone-linelight.md
    How frZone and LineLight listen to the audio bus, what CCs frZone emits, and how those CCs bias SCapps parameters.

  • 07_show-2025-12-15-basement-noise.md
    A specific basement show plan: cabling, minimal rig choices, and one-off routing notes.

  • 08_midi-mapping-2025-03-15-basement-noise.md
    MIDI / OSC mapping sheet for that set: which controls go where for that particular performance.

  • ep-i-hope-the-sky-will-still-take-us/
    EP-specific notes, mappings, and rig snapshots connected to i hope the sky will still take us.

  • notes/
    Scratch questions, experiments, troubleshooting logs, and post-show notes that should eventually feed back into the main docs.


MIDI channel grammar

This is the default mental model for channels. Per-show files can override, but treat this as home base.

System realtime (no channel)

  • Active clock boss → followers: clock, start, stop
  • DrumKid may forward clock to SQ-64 and other devices.

Device → channel summary

Device Role MIDI Ch How it’s used now
DrumKid Clock controller/follower + drums — May own clock or follow another master; drives drum audio; can fan clock.
SQ-64 Main sequencer varies Sends notes/gates; AE rack on its track set to Ch 16.
AE Rack Modular voices 16 Receives note/gate patterns from SQ-64.
Edirol PCM-30 Visual “mission control” 10 Faders/knobs/buttons send CC/notes to bridge → SCapps.
frZone Audio analysis → CC 15 Emits CCs (bands) for SCapps to use as modulation.
Horizon Master FX / bus processor — Front-panel for now; Ch 9 mentally reserved for future MIDI.
Lo-Fi Sampler Clocked audio texture — Audio + clock in; no CC/note I/O yet.
LineLight Audio-reactive lamp — Follows an audio bus; no MIDI.
SCapps Video processing chain (endpoint) n/a Receive video + CC/OSC from Edirol (Ch 10) & frZone (Ch 15).
REAPER (DAW) Hub / router n/a Routes audio/MIDI and may own clock in DAW-led sets.

Channel 10 – Visual macros (Edirol)

  • Source: Edirol PCM-30 (faders, knobs, buttons)
  • Destination: bridge (TD/Max/etc.) → SCapps

Conceptually:

  • Faders: big moves (clean ↔ processed, feedback amount, tunnel depth, etc.)
  • Knobs: fine shape (micro-glitch, warp, hue, bias between analysis and manual control)
  • Buttons: hard switches (harsh scene, soft scene, blackout)

The exact CC/Note map for each show lives in 03_midi-clock-video.md and 05_scapps-rigs.md.

Channel 15 – Analysis lane (frZone)

  • Source: frZone, listening to a post-fader bus from the mixer.
  • Destination: SCapps.

Typical mapping:

  • CC 20 = low band (bass energy)
  • CC 22 = mid band
  • CC 23 = upper-mid band
  • CC 24 = high band

SCapps (via the bridge) treat these as gentle bias inputs; Edirol’s macros ride on top.

Channel 16 – AE rack voices

  • Source: SQ-64 track configured for Ch 16
  • Destination: AE rack voices

Keeps the modular’s note lane clearly separated from the visual control lanes.

Optional Maschine MK1 scene/event lane

  • Role: dedicated 4x4 hardware deck for safe/show-state actions, named scenes, hybrid hits, and section cues
  • Preferred transport: OSC-first semantic commands, with hybrid MIDI+OSC only for bounded event pads
  • Invariant: not transport, not clock, not a replacement for Edirol, frZone, or live-rig-control

Use stable IDs such as:

  • masch.safe.blackout
  • masch.scene.intro
  • masch.event.noise_burst
  • masch.override.manual

Treat raw note numbers and any MIDI channel assignment as TODO until the hardware template is locked.

Channel 9 – Reserved for Horizon (future)

  • Planned for any future Horizon MIDI:
    • scene select
    • tilt / width / fold
    • wet/dry

Keeping one channel mentally reserved now avoids future routing chaos.


REAPER-specific notes

You don’t need a full how-to here, just a few anchors:

  • MIDI Devices

    • If REAPER owns clock tonight, enable DrumKid as an output and turn on Send clock/SPP.
    • Enable a virtual port (IAC / loopMIDI) for sending Edirol/analysis CCs into the bridge → SCapps.
  • Audio buses

    • Use a post-fader send from the master or a submix bus to feed frZone / LineLight.
    • If REAPER is feeding SCapps audio directly (for capture/feedback), document that routing in 02_audio-mixer-fx.md or 04_scapps-overview.md.

If you change those assumptions later, update this block and the relevant per-file notes.


How to grow this repo

For each new show / project:

  1. Duplicate the latest 07_show-… and 08_midi-mapping-… files as a starting point.
  2. Adjust only what really changes:
    • which devices are on the table,
    • which SCapps rig you’re running,
    • any special cabling or safety constraints.
  3. After the show, drop quick notes in notes/ and then:
    • update 01_system-overview.md if the rig itself has evolved, or
    • update 03_midi-clock-video.md / 04_scapps-overview.md if the logic has shifted.

The goal isn’t to keep this perfectly pristine; it’s to give future-you a single page of clarity before you start plugging things in and turning them up.


Interop (contract + routing rules)

The interop contract lives in interop/interop.md and is the source of truth for:

  • mappings schema (interop/interop.schema.json)
  • authority contract (interop/rig.contract.json)
  • authority contract schema (interop/rig.contract.schema.json)
  • exported runtime profile (interop/exports/live-rig.default.json)
  • export contract notes (docs/INTEROP_EXPORTS.md)
  • control lanes (macro vs analysis)
  • the optional Maschine semantic lane
  • naming conventions
  • endpoint behavior

Key invariant: endpoints follow clock; they never generate it.
If you’re wiring Processing endpoints, route CC/OSC through the bridge and follow the scene system notes in docs/SCENES.md (semantic scene IDs -> triggers -> router). If clock is required, forward it from REAPER/bridge into the same port.

Authority-side maintenance commands:

npm run validate:rig-contract
npm run validate:scenes
npm run validate:profiles
npm run validate:controllers
npm run doctor
npm run export:rig-profile
npm run validate:rig-profile

About

live performance set up

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages