Skip to content
The Liberation Engine

Things to make / Recipe 12 of 13 · Play

A pocket music machine

Tap out a beat in one file, no samples or music software needed.

What the agent made

Ran it for real with Claude Code 2.1.292 and OMP 18.8.5 on 2026-10-08, in an empty session with no saved memory. Your result will differ.

The same prompt in OMP made its own version: open what OMP made. Two runs, two different results: that is normal.

Make your own

  1. Get the files

    Make an empty folder called cli-practice in Downloads. No downloads: start in an empty folder.

  2. Open your agent in that folder

    Open a terminal in cli-practice and type claude or omp --approval-mode always-ask. First time? Set up in about five minutes, with steps for Mac, Windows, and Linux.

  3. Paste this prompt

    In this practice folder, make beat.html, a self-contained four-step sequencer with labeled kick, snare, and hi-hat rows. Use Web Audio oscillators and generated noise, not audio files. Sound must begin only after a Play click; provide Stop, tempo control, Mute, and a visible current step. Let mouse, touch, and keyboard toggle cells. Make each sound distinct, and display an unsupported-browser message if needed. Use ASCII punctuation throughout. No external assets or network calls. Do not edit inputs, leave this folder, install packages, use APIs, or fetch anything.

    The prompt asks the agent to stay in this folder; it cannot enforce that. Read each file change and command before you approve it.

  4. Check it yourself

    Open cli-practice/beat.html in your web browser (double-click it), then:

    Human check: Toggle one cell in each row, press Play and hear three distinct sounds at their steps; change tempo, then test Mute and Stop.

    When we checked the recording above: Opened beat.html in Chromium; toggled isolated Kick, Snare, Hi-hat cells and clicked Play for each. Browser Web Audio analyser measured nonzero output (peak RMS 0.418, 0.214, 0.035): kick oscillator, snare oscillator plus noise, hat noise only. Sound starts after click, current step advances, tempo moved 120 to 121, Mute dropped signal near zero, Stop to zero; Space and Enter toggled cells, no JS errors or remote requests. Headless environment does not provide an audible speaker check.

Why an agent, not a chat window

An agent writes the grid, sound synthesis, and playback controls into an offline instrument you can actually use.