draft: false Name: BlackBox short-description: A sealed system of audio, voltages and pulses, freshly generated by each press of Z. Vary its inputs and observe its outputs to learn what it does. summary: | *It is not necessary to enter the black box to understand the nature of the function it performs.* (Stafford Beer) Each time Z is pressed, the card builds a new system: voices, voltages, rhythms and the connections between them. Its workings stay sealed. What remains open are its inputs, its outputs and its behaviour. Vary an input, observe what changes, and repeat until the behaviour makes sense. Each system is unique and impermanent; press Z again and there is a new one to understand. Language: C++ (Arduino-Pico + ComputerCard) Creator: James Saunders Version: "0.9.0" Status: Beta date-created: 2026-09-27 date-updated: 2026-09-27 tags: - generative - synthesizer - sequencer - random - cybernetics - experimental contact: email: jamessaundersalloneword@gmail.com website: https://www.james-saunders.com panel: inputs: - id: AudioIn1 name: Audio In type: audio description: Always acts on sound. Depending on the patch it is processed by an effect, excites a plucked string, ring-modulates or gates a voice, drives an envelope follower, or secretly modulates a parameter by its loudness. Unplugged, the patch uses internal sources instead. - id: AudioIn2 name: Audio In type: audio description: As Audio In 1, with its own independent role. - id: CVIn1 name: CV In type: cv description: Bends one or two internal settings, like a voltage-controlled knob. Can reach voices, CV and rhythm generators, or tempo. Does nothing when unplugged. - id: CVIn2 name: CV In type: cv description: As CV In 1, with its own destinations. - id: PulseIn1 name: Pulse In type: pulse description: Each rising edge does one job, chosen per patch. It may replace the internal clock (most often on this jack), or reset, trigger, reroll or sample-and-hold part of the patch. Does nothing when unplugged. - id: PulseIn2 name: Pulse In type: pulse description: As Pulse In 1. Occasionally the clock input, more often a reset, trigger, reroll or sample-and-hold. outputs: - id: AudioOut1 name: Voice / Effect 1 type: audio description: One of a synth voice, FM, plucked string, filtered noise, bytebeat, wavefolder, granular, tape delay or ring modulator. Drone or rhythmic. Level is set automatically when the patch is built. - id: AudioOut2 name: Voice / Effect 2 type: audio description: A second, independent choice from the same set. Sometimes it processes Voice 1. - id: CVOut1 name: CV Generator 1 type: cv description: One of a step sequencer or Turing machine (quantised to the patch's scale, calibrated 1V/oct), LFO, smooth random, Lorenz chaos, envelope, or envelope follower. Often plays the same melody as one of the voices. - id: CVOut2 name: CV Generator 2 type: cv description: A second, independent CV generator from the same set. - id: PulseOut1 name: Rhythm 1 type: pulse description: One of a clock divider, Euclidean pattern, probability gate, burst generator, comparator, or additive grouping (such as 3+3+2). Often secretly triggers a voice or sequence too. - id: PulseOut2 name: Rhythm 2 type: pulse description: A second rhythm generator, steered toward a different clock from Rhythm 1 so the two pull against each other. controls: switch: middle: name: Play description: Normal running. up: name: Play (reserved) description: Same as middle. Reserved for saving patches in a future version. down: name: Mutate description: Hold for about 0.6 s to mutate the current system. It keeps its character, with 2–3 things changed (a resting point, an internal connection, the scale, the tempo, a sequence or waveform). tap: name: New Patch description: Briefly press and release to discard the current system and build a new one. About half a second of measuring, then it fades in. The old patch is gone for good. knobs: - main: name: Variable 1 description: Moves internal settings on two of the six outputs, sometimes plus tempo. No effect at 12 o'clock, so start there and sweep both ways. x: name: Variable 2 description: Moves internal settings on two other outputs, sometimes plus tempo. Neutral at 12 o'clock. y: name: Variable 3 description: Moves internal settings on the remaining two outputs, sometimes plus tempo. Neutral at 12 o'clock. Between them the three knobs always reach every output. leds: - display: list items: - id: LED0 name: Audio 1 level description: Brightness follows the level of Audio Out 1. - id: LED1 name: Audio 2 level description: Brightness follows the level of Audio Out 2. - id: LED2 name: CV 1 voltage description: Off at about -5 V, half at 0 V, full at about +5 V. - id: LED3 name: CV 2 voltage description: As LED 2, for CV Out 2. - id: LED4 name: Rhythm 1 description: Flashes on each pulse from Pulse Out 1. - id: LED5 name: Rhythm 2 description: Flashes on each pulse from Pulse Out 2.