ARTIFACT X-II
Put a finger on the reel while it is spinning and the music stops under your hand. Lift it, and the song runs on.
A handheld music player where the reel is the interface. It spins while the track plays, so the song is visibly moving. Turn it and you move through the track by feel, forwards or backwards, at whatever speed your hand chooses. Let go and it picks up where you left it.
Why
Everything used to answer back. A cassette door pushed shut. The weight of a Walkman's play button giving way under your thumb. A volume knob in an old car with the click landing somewhere behind the wood. You did not look at those machines. You felt them, and they told you where you were.
Now it arrives through a flat pane of glass that feels identical whether you are playing a song, paying a bill, or watching an evening disappear. Eyes do all the work. Hands and ears sit idle.
Where it started
In 2022 I began keeping a list of everything I resented about carrying a smartphone, and everything I still needed from one. Three older devices kept appearing on it.
The Sony Walkman, for being a machine that only wanted to play music and was proud of it. The Nokia N900, for a real keyboard under real Linux, back when phones still allowed that. Teenage Engineering's TP-7, where the hardware itself is the interface rather than a shell wrapped around a screen.
The list stayed a folder of datasheets for a long time. The build started in April 2026, on weekends.
The audio path
A Raspberry Pi 4 feeds an ES9038Q2M DAC over I2S. The board is sold as the InnoMaker HiFi DAC PRO and silkscreened SkyLark DAC, same hardware.
I benchmarked around fifteen DAC chips before choosing it. At 129dB SNR and -120dB THD it sits ahead of the best onboard audio you can buy on a flagship motherboard, which lands near 120dB while sharing an electrical environment with a 300W graphics card. This board connects straight to the Pi over I2S rather than through USB, and carries its own 45.158MHz and 49.152MHz oscillators instead of borrowing the Pi's clocks.

Playback is bit perfect. No resampling, no format conversion, no software mixing in the signal path.
The controls, and where each came from
The reel. Three hairline machined spokes at 120 degrees rather than finger holes. Early sketches used holes, like a tape reel or a rotary phone, and at full size they read as a toy. The reel sits recessed into the deck rather than proud of it, following a principle borrowed from conceal carry holster design: nothing standing above the surface, nothing to catch on a pocket before you mean it to.
The triggers. Straight, flat faced skeleton blades, because that is what precision rifle shooters use. A curved trigger changes your finger's leverage as pressure builds and a flat one does not, which is a solved problem in an unrelated field that maps neatly onto a control needing to feel identical every time. They are momentary and spring loaded for fast forward and rewind, running at a fixed rate for as long as you hold them, with no ramping and no guessing. They sit beside the screen rather than at the centre of the edge, because that is where an index finger rests in a one handed grip, the same place a phone puts its volume rocker.
The volume knob. On the top edge, in the corner where a walkie talkie puts its antenna. Moving it off the face makes it something you find by feel without looking, and leaves the face to the reel. Each step is a detent, aiming at the weight and sound of a mechanical latch rather than a soft plastic click, since volume gets touched more than anything else on the device.
The mode button. Same size and construction as the power button, on the edge opposite the upper trigger, marked M. One press switches between tape and vinyl. It lights warm gold while vinyl is engaged, so the device tells you which personality it is running without you reading anything.
The status light. A flat illuminated bar set into the nameplate rather than a round pinhole LED, taking after the indicator on an OWC drive enclosure. White when idle, dark oxide red while playing, dead grey in standby.
The keyboard. A direct homage to the N900, with uniform key sizes and spacing except the space bar, and secondary characters printed in the same warm red the original used. It exists because tagging a track by spinning a wheel through fifty characters is a genuinely bad experience.
Handedness. Left and right layouts mirror properly rather than flipping the artwork. The blade geometry that makes sense hinging from one side does not make sense from the other, so the mirrored version gets its own correct trigger shape, its own pivot side, and the volume knob on the opposite corner. Rifles solve this with mirrored parts, not mirrored pictures.
The screen. Five palettes, applied to the text and graphics rather than as a tint over the glass: bone, brass, phosphor, tube, ice. On the silver chassis the display inverts to dark text on a pale ground, the way a positive LCD reads. The counter runs in hundredths, like a tape counter, not in minutes and seconds like a file.

Two personalities
In tape mode it is a library player: gapless, bit perfect, with a proper queue, playback modes, and tag editing.
In vinyl mode the audio device is handed to a scratch engine and the reel becomes a platter. Variable speed from reverse through to double, a brake that spins down rather than cutting, and audible scrubbing under your hand. Same reel, two jobs, one button between them.
Phase 1, completed
Audio
- Bit perfect FLAC and MP3 through the ES9038Q2M, verified at native sample rates
- Gapless playback with queue, repeat, and single track modes
- Software volume with the DAC's hardware mixer available
- HDMI audio removed so the DAC cannot lose a boot order race
- ALSA device addressed by name rather than index, so it survives renumbering
Reel and controls
- Reel scrubbing with configurable seconds per turn
- Grab to pause, with playback resuming on release
- Release momentum and inertia
- Momentary fast forward and rewind triggers at fixed speed
- Ratcheting volume with configurable step size
- Tape and vinyl modes with variable speed, reverse, and a spin down brake
- Live feel tuning for scrub ratio, trigger ramp, and detent step
Library
- Queue reordering
- Track removal, and deletion from disk behind a confirmation
- Tag editing using the on screen keyboard
- Drag and drop upload from a desktop browser, file picker from a phone
- Automatic library rescan and queueing after upload
Interface
- Runs headless, controlled from any browser on the network
- Live state pushed over WebSocket, so every open client stays in sync
- Two chassis finishes, black and silver
- Five screen palettes
- Ambidextrous layout
- Two model sizes, with and without the keyboard
- Standby, and a shutdown flow requiring confirmation on a second control
- Output error reporting, so a failed audio device shows on screen instead of playing silence
A driver bug worth sharing
Audio through the i-sabre-q2m ALSA driver came out as recognisable music buried in harsh noise, with zero buffer underruns to explain it. MPD played perfectly. speaker-test did not.
Seven wrong suspects later: the driver advertises S16_LE support, but in 16 bit mode the I2S bit slots misalign on the ES9038Q2M, which wants 32 bit frames. Anything shipping 24 or 32 bit audio never sees it. Anything asking for 16 bit gets noise.
The fix is an ALSA plug device forcing S32_LE before the hardware. Full details are in the build instructions.

Where this sits
Phase 1 is the player, and it is complete. The controls are currently a browser interface while the physical parts are built.
Phase 2 is the motor, encoder and driver, turning the on screen reel into one you can actually hold. Phase 3 is the enclosure, after which the whole thing closes up into a single device with a real reel, real triggers and a real knob.
Beyond that, there is a full Linux machine under the reel, so the same body can carry offline maps for places with no coverage, long range radio for places with no network, a control surface for a desk full of gear, and a local assistant that answers without sending the question elsewhere. Parts you add, not apps you install.
Licence
The Phase 1 player code is released under the Apache Licence 2.0, matching the licence of the SmartKnob project this build descends from. Hardware designs will follow.
Standing on shoulders
The haptic architecture descends from Scott Bezek's SmartKnob, which solved motor plus encoder plus closed loop torque control in the open, and did the unglamorous work of identifying a gimbal motor that does not cog.
Vinyl mode runs on an engine descended from xwax by way of SC1000 and ScratchTJ, who worked out how to drive a scratch engine from a magnetic angle sensor rather than timecode vinyl.
Teenage Engineering taught everyone what digital audio hardware could feel like.
Noman Shah