myspoti
Native Android client for Spotify, built with Jetpack Compose
Play and visualize a Lissajous‑curve keyboard with sound and export 3D model
AI summary · website content
MediaJavaScript · HTMLGitHub @willmskinnerOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗An interactive Lissajous-curve visualizer driven by a piano keyboard — play notes (via MIDI, your computer keyboard, or clicking the on-screen piano) and watch their combined oscillations trace the curve in real time, with live audio synthesis and six historical tuning systems.
Runs entirely in the browser — no install required. Open index.html
locally or use the published GitHub Pages link. Pure vanilla HTML/CSS/JS, no
build step, no dependencies. Uses:
2D — a 4-note chord, two notes summed per axis:
x(t) = sin(r1·t) + sin(r2·t + φx)
y(t) = sin(r3·t + φxy) + sin(r4·t + φxy)
3D — a 3-note chord, one note per axis, rendered as a true 3D curve you can drag to rotate, shown alongside its three 2D projections (top / front / side).
Toggle between them with the button in the top-right corner. Piano, temperament, audio, and presets are shared across both modes.
[ ] shift octave · 1–4 / Tab select note slot · Space = sound on/offSing or play into a mic and every active note on the keyboard becomes a harmony voice, in the spirit of Jacob Collier's harmonizer and Bon Iver's "Messina". Click Voice off to turn it on, then pick a character:
and a way of playing:
Harmonies follow the selected temperament, so Just gives pure-interval chords. Up to 8 voices.
How it works: harmonizer-worklet.js detects the input pitch (YIN).
Signal chain. Send the dry voice to your monitors or PA through your audio interface's direct monitoring or a mixer. Only the harmonies go through the browser:
Mic ─► interface ─┬─► direct monitor / mixer ─► PA / headphones (dry, no delay)
└─► browser ─► harmony voices ─► interface out ─► mixer
file://. It uses only standard
Web Audio, and has been tested in Chrome and Firefox.Save/browse/delete curves locally (stored in the browser via localStorage),
each with an embedded PNG snapshot. Export to a shareable .json file and
import one someone else sent you.
python3 -m http.server 8000
# open http://localhost:8000
Ported from lissajous_keyboard.py,
a Python/matplotlib desktop app with the same core math. That branch still
exists but is no longer actively developed — this web version is the primary
project going forward.