20 HP · impression machine
Feed it anything and it comes out as an early-80s games console's sound chip trying to play it: four square waves on dividers that can't play in tune, noise from shift registers, sixteen volumes, told what to play only so many times a second. A chord comes out as an arpeggio, a hiss as chip noise, a voice as a bleeping, half-intelligible chip voice. BEND circuit-bends it, and it gives you back the pitch it heard.
Turn a knob: drag it, roll the wheel over it or use the arrow keys; a double click puts it back. CLOCK steps on with a click.
example patches
The module's own engine, running in your browser: the firmware's chip and its impression, ported from its C and checked against it bit for bit. The lights are lit by it, as the module's are.
On every frame POKE looks at the last 43 ms of IN, its spectrum and a pitch tracker's guess at the note, and tells the chip what to play, the way a composer of the time would have.
VOICES clicks from 1 to 4: how many channels play the impression. When there are more strong notes than voices, the voices take turns through them, a note a frame, low to high. That's how chords fitted onto too few channels then, and it's what turns a pad into a chip arpeggio.
With two voices or more, a pitch the tracker is sure of keeps its own channel and the rest take turns: the melody or the bass held, the chord broken up round it.
CLOCK picks the chip's clock, and each setting costs something.
The chip's noise comes from shift registers 4, 5, 9 and 17 bits long, running at its master clock and read by each channel's divider. POLY says how much of the impression is noise and grit.
FRAME is how often the chip is told what to play: once to 60 times a second, 60 at the top, which is how often the console did it, once a picture. Turned down, the impression steps: a sample and hold of what you feed it, played by the chip.
Patch a clock into the FRAME jack and each rising edge is a frame. The knob then multiplies it, one frame an edge at the bottom to eight at the top, spread evenly through the last interval. Clock it in sixteenths and a pad becomes chip stabs on the grid.
V/OCT transposes the impression before it goes on the chip's dividers, 1 V an octave. At 0 V it plays what it heard.
Each frame's writes reach the chip 11 ms after the frame: the time the module's second core takes to listen. Frames come at most about 90 a second, however fast the clock.
BEND, the big knob, circuit-bends the chip from clean to broken. Each bend comes in at its own place on the knob and grows from there.
POKE is also a pitch-to-CV. PITCH is the tracker's pitch, 1 V an octave with 0 V at middle C, unquantised, updated each frame, and held at its last value when nothing's pitched. GATE is high while it hears a pitched note above a floor. Sing into it and the rack follows: in the last example patch, a voice plays the track's bass through a quantizer.
Twenty HP, every part on the line's staggered grid and mirrored about the middle. The art is a chip's die under a microscope, in gold dots on black, its bond wires fanning out to the edges. BEND sits on the middle of the die with a light in each of its four blocks: 5 mm square flat-top cyan LEDs, their faces flush with the panel's, channels 1 and 2 above BEND and 3 and 4 below, each as bright as its channel's volume, changing only on a frame. In 16 BIT each row shows one joined voice.
Drag to look around. Lift the panel: the four lights stay standing on the board, their square tops where the panel's face was. One RP2350 does it all: one core runs the chip at its own clock, the other listens.
POKE is designed and its firmware builds. Nothing has been made, so the numbers here are the design's and the engine's, not measurements, and there's no date.