The Machine · Elements
System
Shared by every unit
Every unit listens to one shared signal. Building any instrument here means building this too.
This is one way to meet the principles, not a rule for anyone else. The technologies are choices for this attempt.
Every unit
Standalone
Self-contained, with nothing shared with the rest of the ensemble.
Wireless
No cables to the controller or to any other unit.
Receive-only
Listens to the broadcast and never transmits.
Power independent
Carries its own power.
Adding or removing any unit has no effect on transmission or on the rest of the performance.
Every unit resets itself. Technicians never reset, rewind, or re-cock an instrument by hand: they bring it out, turn it on, and walk away. Anything that winds down, drops, or runs out must restore itself automatically.
Frames and structure for this attempt are aluminum extrusion.
Control
- Broadcast to addresses. Each unit's address is set on the unit itself. A missing unit is silence; two units on one address play in unison.
- No handshakes, pairing, or sessions. This rules out Bluetooth MIDI and RTP-MIDI.
- Continuous state refresh: the controller rebroadcasts each address's current state many times a second, so a unit joining mid-piece catches up immediately.
- One-shot events are sent 2 to 3 times with a sequence number; units ignore duplicates.
- Scheduled commands: units keep a local clock corrected by timing beacons from the controller. Time-critical commands ("lock on beat N") are broadcast repeatedly ahead of time and executed by each unit's own clock, so wireless jitter doesn't smear the moment.
- Loss of signal: a unit that stops hearing the controller winds down safe and quiet.
First tests
ESP-NOW broadcast, the connectionless mode of ESP32 boards. An ESP32 bridge takes MIDI from the computer over USB and broadcasts it; each unit has its own ESP32.
Later candidate
Wireless DMX hardware. DMX refreshes at up to about 44 times a second, so trigger timing can wobble by tens of milliseconds. Test before committing.
Timing
- Free-run
- The unit keeps its own tempo and tuning, and drifts.
- Locked
- The unit follows the broadcast clock and tuning.
- Switching
- Moving between the two is a scheduled command.
- Instruments that strike (pluckers, mallets) snap to the grid instantly.
- Instruments that move (windmill, pendulum) can't change phase instantly. They converge silently during a lead-in, pick retracted and strings damped, and become audible exactly on the beat.
- Pitch set by string tension can glide into tune as an effect, or damp during retuning for a snap.
Power and safety
- One power-tool battery platform across all units, so packs are swappable.
- A physical stop switch on every unit, hit by the technician before lifting it. Part of the choreography.
- Rotating units are balanced, slow, and guarded; hinged parts latch in every position.
Audio
Each unit's sound can reach the PA without breaking the standalone, wireless rule: a pickup on each unit with wireless audio, room mics capturing the acoustic sound (rotating units move sound around the room), or a mix.
Milestones
These prove the system before any real instrument exists, using trivial test units: an ESP32, an LED, a buzzer.
- 01
One unit receives a broadcast and plays on command.
- 02
Two units on different addresses. Power one off and on mid-performance with no effect on the other or the controller.
- 03
Hot join: a unit switched on mid-piece picks up the current state within one refresh.
- 04
Loss of signal: kill the bridge; every unit goes safe and quiet.
- 05
Scheduled lock: units free-running, then all lock on beat N with no audible smear.
- 06
Hidden convergence: a rotating or swinging unit locks phase silently and enters on the beat.