Thank you! And for sure, needed to spend a little more time tweaking the timing numbers for perfect/great/good/ok hits. Thinking about it, I think the issue for that is because initially I had hit detection be based on the visual notes and how close they were to the hit zone, but then I switched to purely timing-based detection (player hits key, code gets time of audio player, checks against array of all note timings extracted from the MIDI file)
Thank you for playing!