midigym (still beta)
A chord symbol typing test. Aims to be a robust, customizable way of practicing and measuring your chord-reading skills.

- Highly customizable: before beginning your test, you have fine-grained control over which root notes and chord types you'd like to play.
- Simplistic interface: kind of like monkeytype in that it only shows you what you need to see.
- Free: ad free, payment free, scam free, formaldehyde free, free next week, you name it. ⭐️STAR THIS REPOSITORY⭐️ if you appreciate it!
- MIDI keyboard support: uses WEBMIDI.js to deliver you stunning low-latency midi-enabled goodness.
- Regular keyboard support: uses javascript event listners to deliver you stunning, low-latency computer keyboard support.
- Learn mode: a mode that highlights the notes you need to play for each chord.
Please see the issues page: https://github.com/Archonic944/midigym/issues
You may also submit feature requests to the issues page using the "enhancement" label.
- Disperse game logic outside of a single +page.svelte
- Implement local storage for user records
- Implement online leaderboards...? (might need help with this one)
- Enhanced statistics, such as per-chord times and average times
- Chord inversions
- Fix Settings pane in Results
The site is polished, but is missing a couple features it would need to be considered "comprehensive". When you play, please to contact me with any small suggestions/personal gripes you may have with the site. If you find a reproducable bug or have a comprehensive suggestion for a new feature, please make a new post on the issues page.
I am open to any and all code contributions!
No, not desparate enough...
PLEASE PLEASE PLEASE CONTRIBUTE!!! Fork and make a pull request, suggest new features, mail patches to my house, ANYTHING!!
Large additions are ok, but try not to go overboard (or at least open an issue so we can talk about it before you do)!
This project uses:
- SvelteKit
- tonaljs
- WEBMIDI.js
A sincere thank you to the developers maintaining those projects.