poke

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.

The POKE panel: a chip's die under a microscope in gold dots on black, its bond wires fanning out to the edges, BEND on the middle of the die and a square light in each of its four blocks. White labels for the knobs POLY, FRAME, VOICES (printed 1 to 4) and BEND, the switch CLOCK (15K, 64K, 16 BIT) and the jacks IN, POLY CV, FRAME, BEND CV, V/OCT, PITCH, GATE and OUT. poke at the top, daylight noise at the bottom.

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.

Everything but the four spoken lines is made in the page as you listen. Headphones help.

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.

What it hears

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

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

CLOCK picks the chip's clock, and each setting costs something.

Poly

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

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

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.

Pitch out

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.

The panel

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.

Inside

The POKE panel playing, its four lights lit cyan, its knobs on.

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.

Specs

Format

Width
20 HP
Depth
about 21 mm behind the panel, its power header included
+12 V
about 115 mA, 175 mA at the most (the four lights at full, GATE high)
−12 V
about 6 mA
+5 V
not used; 10-pin header
Panel
1.6 mm FR4: ENIG gold through black mask, white labels
Controls
4 knobs (BEND's big, VOICES in four positions) and a three-way switch

I/O

IN
audio, ±5 V with room to ±9; 100 k
FRAME
clock, rising past about 1.2 V; 100 k
POLY CV, BEND CV
±5 V, a tenth of the knob a volt
V/OCT
1 V an octave, −2 to +8 V
OUT
mono: 8 V for all four channels at full, about ±4 V; 1 k
PITCH
1 V an octave, 0 V at middle C, −3 to +5 V; 1 k
GATE
0 or 5 V; 1 k

Engine

Brain
RP2350, both cores, 46.875 kHz, 32-bit float
Converters
PCM1808 in, PCM5102A out, on one I2S clock; a 12-bit DAC for PITCH
The chip
four channels at its 1.79 MHz master clock, a pulse at a time
Listening
43 ms of IN a frame: one FFT and a pitch tracker, up to 60 frames a second free
Lights
four 5 mm square flat-top cyan LEDs, about 15 mA each at full
Firmware
over USB-C or the debug header, on the back

Nothing's for sale yet.

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.