Orbit Mods is a tiny browser orbit sequencer: each dot is a note, the rotating arm triggers notes, and the mod buttons reshape the rhythm, echoes, bass, mirrors, trails, and motion. It is a single static page with no build step and no external runtime dependencies.
It is meant for anyone who wants a quick musical sketchpad without opening a full DAW: students learning rhythm, developers who like browser toys, or anyone who wants to make a short looping pattern and share the encoded result.
Live demo: https://bte808.github.io/fun-20260517-orbit-mods/
- It turns rhythm into something visible, draggable, and easy to understand.
- It gives an immediate Web Audio playground without accounts, uploads, or API keys.
- The pattern code in the textarea can be copied, pasted, and loaded again later.
- Saved loops stay in local storage, so a few favorite sketches are one click away on the same browser.
- Saved-loop sets can now be copied as a small JSON bundle and imported into another browser.
- Dragging notes around the orbit changes the loop instantly.
- Mods like Mirror, Echo, Bass, Drift, Trail, and Pulse make one pattern feel different without needing music theory.
- Three starter loops show off soft drift, mirrored echo, and slower bassline moods before you design your own.
- Randomize creates a fresh loop, but the user can still shape it by hand.
- Saving a loop makes it feel more like collecting tiny musical charms instead of losing every happy accident.
- Open the page and press
Test Toneif you want to confirm audio first. - Press
Playto start the rotating sequencer. - Drag dots to change when and how high notes sound.
- Try
Sunrise Drift,Mirror Echo, orSlow Basslineif you want an instant example loop. - Toggle mods to reshape the loop.
- Press
Randomizefor a new pattern, orCopy Patternto keep/share the current one. - Paste a saved pattern code into the textarea and press
Loadto restore it. - Press
Savein the saved-loops row to keep a local favorite, then useLoadorDeletefor that saved slot. - Press
Copy Setto share your local loop shelf, or paste that JSON into the textarea and pressImport Set.
This pass adds a shareable saved-loop shelf. Copy Set writes the saved loops as a compact JSON bundle, and Import Set merges that bundle back into local storage without replacing unrelated loops. The update also refreshes asset cache-busters so GitHub Pages and local preview ports do not serve stale controls.
Today's scan turned up a few nearby ideas:
- Hacker News, "Ask HN: What are you working on? (May 2026)" included browser/procedural music experiments and the phrase "music with source code": https://news.ycombinator.com/item?id=48085993
- Product Hunt's browser sequencer category showed that small, immediate music scratchpads are still a fun format: https://www.producthunt.com/products/super-simple-sequencer
- Recent Superbooth coverage highlighted sequencers blending playability with algorithmic generation: https://www.musicradar.com/news/live/superbooth-2026-all-the-latest-synth-news-from-berlin-live
This repo borrows only the broad idea of an interactive browser music toy; all code, layout, and wording here are original.
Open index.html directly in a browser, or serve the folder:
python3 -m http.server 4173Then open:
http://127.0.0.1:4173
Audio starts only after pressing Play, as required by browser audio policies.
npm run checkThe check verifies that the static entry point, canvas app, Web Audio usage, audio fallback/resume feedback, saved-loop controls and set export, pattern export, responsive CSS, and README source links are present.
If a preview browser does not expose Web Audio, the app falls back to short generated WAV tones through HTML audio. The Test Tone button gives an immediate sound check before starting the orbit.
If a preview browser exposes Web Audio but will not resume it, Play still starts the visual orbit and reports a muted status instead of appearing stuck.
- Add MIDI export for the current orbit pattern.
- Add a small scale editor and chord-mode mod.
- Export and import the saved-loop library as a tiny JSON file.
- Add a sampler lane for short user-recorded taps.