All work

Pocket Circuit.

A 16-pad browser sampler and beat looper with a playable demo kit, waveform slicing, and local saving.

Role
Creator & frontend engineer
When
2026
Built with
Next.js, React, TypeScript, Web Audio API, IndexedDB

Pocket Circuit is a personal browser-based sampler and beat looper. It starts with a synthesized kit so someone can play immediately, then lets them import audio, slice a waveform, assign sounds to pads, and record patterns.

  • Playable demo kit with no setup
  • Sample slicing and pad assignment
  • Patterns and audio saved in the browser

How it works.

  1. Choose sounds

    A synthesized demo kit plays instantly; local files or permitted tab audio can be imported and sliced.

  2. Play & record

    Sixteen pads with keyboard and pointer input, and a two-bar sequencer timed against the audio clock.

  3. Save locally

    Project state and imported audio persist in IndexedDB—no account or backend required.

The challenge

A sampler should feel playable on first use without requiring an account, a backend, or a folder of audio files. Imported sounds and recorded patterns also need to remain available when the browser reloads.

What I did

I built a 16-pad interface around a ready-to-play demo kit, keyboard and pointer input, waveform-based sample editing, and a two-bar sequencer. Local file import and a user-controlled tab-audio capture flow feed the same slicer; tab capture depends on the browser's sharing permission.

Under the hood

A gesture-activated Web Audio engine handles synthesis, playback, and effects. The transport schedules events against AudioContext time using a short look-ahead window, while IndexedDB stores project state and imported audio. The waveform is drawn from decoded samples.

Where it landed

The result is a responsive, browser-local instrument that supports immediate demo playback, imported samples, recorded loops, and restoration of saved projects. Audio capture and codec support remain dependent on the browser and the user's permissions.