vibes.diy Live
home / music-studio
Dr. Deas Music Suite

Three tools.
Two generations.
Build yours.

A drum machine, a pattern library, and a chord synthesizer — deployed with npx vibes-diy. Clone any of them, or build fresh from the specs below.

Originals
3
Remixes
3
Author
og
Audio
Web API
01 — Original run

The Originals

Three instruments deployed from short prompts. Shipped, used, iterated.

Original 01 / 03
Dr. Deas Drum Machine

Dr. Deas Drum Machine

Style-generated patterns. Custom samples. Solo and mute.

Describe your beat — dark trap, four-on-the-floor, reggaeton break — and all 8 tracks fill in at once. Adjust BPM, save patterns by name, solo and mute for mixing.

Want a 12-track version with custom Latin percussion voices, or a 4-track minimal techno sequencer? Clone it and rewrite the track list and sound synthesis.

// build fresh →
Step sequencer drum machine, 8 tracks, BPM control. AI beat generator: describe style and genre, fills all tracks. Solo, mute, save patterns by name.
Original 02 / 03
Dr. Deas Pattern Saver

Dr. Deas Pattern Saver

Instrument-first workflow. LEVEL, TUNE, DECAY per track.

Select a drum voice, program 16 steps, dial in the feel. LEVEL, TUNE, and DECAY controls per instrument. Pattern generator and demo patterns included.

Your workflow is sample-based, not synthesis-based. Clone this and swap the procedural voices for a file-drop sample loader per track.

// build fresh →
Drum machine with instrument-first 16-step sequencer. Per-track LEVEL, TUNE, and DECAY controls. AI generate button and demo patterns. Save patterns by name.
Original 03 / 03
Dr. Deas Chord Synthesizer

Dr. Deas Chord Synthesizer

MIDI import, AI progressions, auto-rhythm.

Drag in a .mid file and hear it as chord progressions. Or describe your mood and get a progression with rhythm patterns generated automatically.

You want to explore modal jazz voicings specifically, with Dorian and Lydian scale support. Clone it and extend the scale selector and diatonic chord grid.

// build fresh →
Chord synthesizer with AI progression generator and MIDI file import. Auto-detect chords, generate rhythm patterns. Classic analog synthesis sounds.
2026 Remix
Same tools, rebuilt by hand: lookahead Web Audio scheduler, DynamicsCompressor + tube warmth WaveShaper on the master bus, richer controls, zero regressions. Expand any spec below to build your own version.
02 — Hand-tuned

2026 Remix

Rebuilt from the OG source: polish, bug fixes, showcase features. Expand any spec to build your own version.

2026 Remix 01 / 03
Drum Studio

Drum Studio

Pattern chains. Tube warmth. Dynamics compression.

Lookahead scheduler, DynamicsCompressor + WaveShaper tube warmth on the master bus. 16-step grid grouped by beat, per-track volume and tune.

You need a polyrhythm mode where each track can run its own step count independently. Clone it and add a per-track length selector alongside the BPM control.

// full build spec →
Show spec
Build a 16-step drum sequencer with 8 tracks: Kick, Snare,
Open Hat, Closed Hat, Hand Clap, Crash, Cowbell, Clave.

Audio engine — Web Audio API, all sounds procedural:
  Kick: sine oscillator, exponential frequency sweep 200Hz to 40Hz
    in 80ms. Amplitude envelope: attack 0ms, decay 300ms.
  Snare: filtered white noise (bandpass 180Hz to 2kHz) mixed 60/40
    with a 200Hz sine, 150ms decay.
  Closed hat: white noise through highpass at 8kHz, 60ms decay.
  Open hat: same noise chain, 400ms decay.
  Clap: 4 noise bursts 8ms apart, shared 200ms tail.
  Crash: bandpass noise, 800ms decay.
  Cowbell: two square waves at 540Hz and 800Hz, 8ms attack, 600ms decay.
  Clave: sharp click, 40ms total.

Timing: lookahead scheduler. Schedule notes 100ms ahead, tick every
25ms via a scheduling interval. Never use setInterval or setTimeout
to fire audio events directly — only for the scheduling loop itself.

Step grid: 16 toggles per track, arranged as 4 groups of 4, with a
thin visual rule separating each group. Active steps use the accent
color. Playhead highlights the current step in a distinct pulse color.

Track row controls:
  Name label (click to select that track). Solo [S] and mute [M]
  buttons. Volume slider 0 to 100. Tune slider -12 to +12 semitones,
  default 0. Selected track row is highlighted with a subtle tint.

Transport: BPM slider 60 to 200, default 120, with numeric readout.
Play / Stop button. Clear active track only. Clear All with a
confirmation dialog before wiping.

Pattern management: Name input field. Save writes the complete state
(all 8 tracks of steps, BPM, per-track volume and tune) to localStorage.
Saved patterns panel: list of names, click any to load. New button
creates a blank pattern. Patterns auto-save on every change with a
"saved" indicator that fades out after 1 second.

AI pattern generator: Text description input (e.g. "dark trap, heavy
bass") plus genre dropdown (House, Trap, Drumline, Reggaeton, Jazz,
Metal). Generate fills all 8 track grids. Show a loading spinner in
the button during generation.

Master effects chain, applied after all tracks mix:
  1. DynamicsCompressorNode with four labeled knobs:
       Threshold: -60 to 0 dB, default -24 dB
       Ratio: 1:1 to 20:1, default 4:1
       Attack: 0 to 200ms, default 3ms
       Release: 50ms to 2000ms, default 250ms
  2. WaveShaperNode with a tanh soft-clip curve. A pre-gain stage
     (0.5x to 3x) feeds into it. Expose as a single Tube Warmth knob
     (0 to 100) that maps linearly to pre-gain. Show the current
     pre-gain value as a numeric label beside the knob.
  3. Master volume GainNode, exposed as a final volume slider.

All knob and slider values shown as numeric labels.
Group the three master chain controls in a panel labeled "Master Bus".

Persist the full session to localStorage on every change.
Restore the last session on mount. Show a brief "session restored"
toast on successful restore.
2026 Remix 02 / 03
Pattern Vault

Pattern Vault

Tags, shareable URLs, two-panel layout.

Your patterns, organized: tag them, search them, share them as encoded URLs. Left panel browser, right panel sequencer, full library in localStorage.

You want a shared library your whole band can access, not just your local localStorage. Clone it and swap the storage layer for a Fireproof sync backend.

// full build spec →
Show spec
Build a drum pattern library with a two-panel layout:
300px left panel (pattern browser) and flex-1 right panel (live sequencer).

Right panel — step sequencer:
  8 tracks: Kick, Snare, Open Hat, Closed Hat, Hand Clap, Crash,
  Cowbell, Clave. 16 steps each.
  Web Audio API procedural synthesis: kick = exponential freq-sweep
  sine; snare = noise burst + short sine; hats = filtered noise at
  different decay lengths; clap = burst of noise pulses; cowbell =
  two square waves mixed.
  Per-track controls: volume slider 0 to 100, mute button.
  BPM slider 60 to 200. Play / Stop / New / Save buttons.
  Playhead animates during playback. Steps group visually into 4 beats.

Left panel — pattern browser, scrollable:
  Each saved pattern as a card: name, tag chips, BPM label, and a
  mini 8x16 dot-grid preview (read-only, each step a 4x4px dot).
  Clicking a card loads it into the right panel sequencer.
  Active card highlighted. Sorted by most recently saved first.

Tags: free-text tags on each pattern. On Save, show a modal: name
input and tags input (type and press Enter to add each tag, click chip
to remove). Tag filter row above the pattern list — clicking a tag
filters to patterns with that tag only. A "Clear filter" button resets.
Search input filters by name substring in real time.
Tags are case-insensitive and de-duplicated.

Pattern URL sharing: encode the full pattern state (8 tracks of 16
booleans, BPM, per-track volumes, pattern name) as base64 JSON in
window.location.hash. A Share button copies the current URL to clipboard
and briefly shows "Copied!" beside the button.
On mount, if a hash is present decode it and load the pattern directly
(skip localStorage restore). Handle malformed hash with an error toast
and load empty state instead.

Import / Export:
  Export: download the full library as a JSON file. Each entry has
    id (uuid), name, tags array, bpm, tracks (object mapping track
    name to 16 booleans), volumes object, createdAt ISO timestamp.
  Import: file picker for .json, parse and merge into localStorage.
    On name collision, append " (imported)" suffix.
    Show a count toast: "Imported 5 patterns."

UX rules:
  New: clears sequencer state only, does not affect saved patterns.
  Save with an existing name: confirm overwrite with an inline prompt.
  Delete: per-card icon button with inline "Sure?" confirm (no modal).
  Auto-save draft to a separate localStorage key every 10 seconds
  so no changes are lost between explicit saves.

Mobile (viewport narrower than 768px): single column; a toggle button
switches between Browse and Play panels. Animate the panel transition
with a 200ms slide.
2026 Remix 03 / 03
Chord Studio

Chord Studio

Arpeggiator, voicings, piano visual, tube warmth.

Chord synth rebuilt: close/open/drop-2 voicings, rate-gated arpeggiator, two-octave keyboard visual, tube warmth + reverb master chain.

You want a guitar-oriented version with a fretboard visual instead of a piano keyboard, and open-string chord shapes highlighted. Clone it and swap the keyboard for a fretboard grid.

// full build spec →
Show spec
Build a chord synthesizer in three sections: chord selector (top),
keyboard visual (middle), controls and playback (bottom).

Chord selector:
  Root note picker: C through B, 12 chromatic buttons in a row.
  Scale dropdown: Major, Natural Minor, Harmonic Minor, Dorian,
  Phrygian, Mixolydian, Pentatonic Major, Pentatonic Minor, Blues.
  Diatonic chord grid: all chords built on each scale degree, labeled
  with Roman numerals (I, ii, iii, IV, V, vi, vii) and chord names
  (e.g. Cmaj, Dm, G7). Clicking a chord plays it. Octave selector 3 to 6.

Voicing selector (global, applies to every chord):
  Close: all notes stacked within one octave in thirds.
  Open: notes spread across two octaves — root, fifth up one octave,
    third up two octaves.
  Drop-2: take close voicing, lower the second-highest note one octave.
  Voicing changes the exact MIDI note numbers triggered.

Keyboard visual: two-octave piano starting at the root note.
  When a chord plays, highlight all active notes in the accent color.
  In Arpeggio mode, highlight each individual note as it fires.
  Non-diatonic keys for the current scale are visually dimmed (not hidden).

Two playback modes (radio toggle):
  Chord mode: all notes trigger simultaneously on click. Sustained
    until a new chord is clicked or Stop is pressed.
  Arpeggio mode: notes fire one at a time in a repeating loop.
    Controls: Rate (1/4, 1/8, or 1/16 note at current BPM),
    Direction (Up, Down, Up-Down, Random), Gate (20% to 100% — ratio
    of note-on time to step duration). BPM input 60 to 200.
    Each arpeggio step re-triggers the amplitude envelope:
    attack 10ms, release equals gate multiplied by step duration minus 10ms.
    Stop ends the loop cleanly without cutting mid-note.

Synthesis per note:
  OscillatorNode with waveform selector: sine, triangle, sawtooth, square.
  Each note through a GainNode amplitude envelope: attack 10ms, release
  400ms. All note gains mix to a shared master bus.

Master chain:
  1. DynamicsCompressorNode: threshold -20dB, ratio 6:1, attack 5ms,
     release 100ms. Hardcoded — not exposed as user controls.
  2. WaveShaperNode: tanh soft-clip with pre-gain stage. Tube Warmth
     knob 0 to 100 controls pre-gain 0.5x to 3x. Show numeric value.
  3. ConvolverNode reverb: synthetic impulse response (exponential white
     noise decay, 1.5s length). Reverb Mix knob 0 to 100 controls
     wet/dry ratio via two parallel GainNodes.

AI chord progression generator:
  Text input: describe mood or genre.
  Length selector: 4 chords or 8 chords.
  Generate returns a sequence of diatonic chord names from the
  current root and scale. Display as a row of numbered step buttons.
  Play Sequence: plays each chord in order, one chord per bar at
  current BPM. Highlight the active step. Works in both Chord and
  Arpeggio modes. Stop halts cleanly.

MIDI file import:
  Drag-drop zone for .mid files. Parse note events, group notes
  within a 50ms window into a chord, identify chord names. Display
  the detected sequence in the same step-row UI. Play button runs it.

Saved progressions:
  Name input plus Save stores the current sequence to localStorage.
  Load dropdown lists all saved progressions. Delete button per entry.
// start building

Build your own instrument.

One command, one prompt. Vibes DIY deploys a live React app in under a minute. No bundler, no config, no account required.

Stay in the loop

Get notified when we publish new templates and tools.