Show HN: I built a music theory course with games and spaced repetition
gitori.comI’ve spent a year building a theory learning path that starts from scratch and goes all the way up to topics like Secondary Dominants and Borrowed Chords. It uses a combination of games, interactive lessons and spaced repetition to help you understand and remember concepts. Not just learn something new and forget it in a few days.
I’m trying to figure out:
1. Is the progression logical?
2. What am I missing that you’d like to see in there?
3. Where does it get confusing and could use more clarification? Nice job. Some Feedback: The AI‑generated images for the Circle of Fifths don’t make a lot of sense - why are there blurry Japanese kana/kanji on them? Clicking on the “Guitar” dropdown in the navbar doesn’t do anything. The dev console shows this error: Whoops! I’ll try and recreate the issue. Thanks for the tips. The relationship between chords matters more than memorizing individual chords. Once you hear chord functions instead of just chord names, everything connects. Music theory doesn't have to be complicated. Start with understanding why I-IV-V works, then build from there. You can get surprisingly far with just that foundation. The air particle visualization is really cool! However, I don't hear anything. I'm on chrome browser in linux. It wasn't clear how to get that to work. Thx hmm...I just tried it on Chrome on my Macbook and it worked for me. Does the sound on this game work for you? https://www.gitori.com/FBG-101 (Give it a 2-3 seconds to load the sounds and it should autoplay a note in the background) Yes the FBG-101 works after a few seconds. However in the original link it still doesn't work... I tried chrome and firefox. But here's a clue, when I pluck the guitar string several times, I sometimes here a little short scratch/static sound. hmm..let me look into this.
Personally, I'd recommend doing some more manual testing before deployment. Remember to test all the paths twice (logged in and logged out). TypeError: Cannot read properties of null ('email')