Luthier
Pull a string sideways and let it go.
What you hear is not a recording and not a synthesiser preset. It is that string: a wave equation solved 48,000 times a second, and the curve moving on screen is drawn from the same numbers the sound comes from. Picture and sound are the same object.
Almost nothing here is a feature. There is one equation for a stiff string, one friction curve for the bow, and one damped oscillator for the bridge — and everything a string player recognises falls out of them unasked:
- Touch a string at exactly half its length and you get the octave, because a node is a node.
- Press it at a third and the pitch rises a fifth, because the sounding length changed.
- Pluck near the bridge and the tone turns thin and bright.
- Draw the bow too fast and the note flips to a squealing octave — a real boundary that cellists spend years learning to stay inside.
- Tune two strings in unison, pluck one, damp it, and hear the other one singing.
None of those behaviours appear anywhere in the source. There is no code that knows what a harmonic is. They are consequences.
Playing it: Pull (Z), Bow (X), Harmonic (C), Fret (V), Damp (B); keys 1–0 pluck directly. Click a string's name to retune it or change its material — steel, nylon, gut or glass. Four benches come strung: guitar, harp, cello, and a glass rig that rings for an unreasonably long time. On a touchscreen it is multi-touch, so one finger can fret while another plucks.
What is not simulated, because the rule of this piece is to say so: the instrument body is four resonant filters, the room is a synthetic impulse response, and a soft-clip protects your speakers. Everything else — strings, fingers, bow, bridge, tuning — is simulation.
The bench even tunes itself by listening: it plucks each string silently, measures the pitch from a spectrum, and corrects the tension until the error is under half a cent. The frequencies printed beside each string are measurements of the running simulation, not the targets it aimed at.
Source, physics tests and the full story: https://github.com/chrisjz/luthier
Best with headphones.
| Published | 14 hours ago |
| Status | Released |
| Category | Tool |
| Platforms | HTML5 |
| Author | cjros |
| Genre | Simulation |
| Tags | Audio, Experimental, Instrument, Music, Physics, Sandbox |
| AI Disclosure | AI Assisted, Code, Graphics, Sounds, Text |



Leave a comment
Log in with itch.io to leave a comment.