Guidonica: High-performance sight-reading & solfège engine
In the eleventh century, Guido d'Arezzo devised the Manus Guidonica—a spatial mnemonic mapping intervals to physical landmarks on the hand, laying the foundation for Western musical literacy.
Guidonica translates this pedagogical objective into an uncompromising, client-only web instrument.
Rather than turning pages or reading static sheets, procedural notation streams continuously across a fixed playhead in sample-accurate synchronization with a synthesized metronome. The musician's eye is trained to read ahead of the pulse.
Engineering principles:
- Zero Frameworks: Vanilla TypeScript driving native Canvas and Web Audio directly. No virtual DOM overhead.
- Hardware-Locked Timing: Visual translation and synthesized metronome pulses are bound to AudioContext.currentTime. Zero drift.
- Single-Pass GPU Blitting: Offscreen vector rasterization rendered once; animation loops execute bit-block transfers at 60/120 FPS (< 1% CPU).
- Constant Memory Footprint: A bounded ring-buffer keeps only active measures in memory (~35 MB).
- Pure Client Sovereignty: 0 bytes of audio samples downloaded. No tracking, no accounts, no evaluation friction.
Free and open-source under AGPLv3.
Application: guidonica.it
Source: github.com/Hand-Lock/guidonica
#MusicTheory #SightReading #Solfege #MusicEducation #ClassicalMusic #OpenSource #FLOSS #WebAudio #TypeScript #FOSS
GitHub - Hand-Lock/guidonica
Contribute to Hand-Lock/guidonica development by creating an account on GitHub.GitHub
lauseta likes this.