Thanks for the well thought out feedback on the audio! It's my first experiment with procedural music, and it was definitely an experiment haha. I think in the future, I'd try to create an underlying, hidden arpeggiating scale, and whenever a note is struck, it would play the current note from that arpeggio.
It was a bit tough as well because of the variation in levels. Currently, audio is triggered when you click, or when a white block is eliminated. Because some of the levels have far more or far fewer white blocks that others, it made it tricky to have a relatively silent baseline track. Not entirely sure how I would best address this in a long term project, but I suspect I'd want to come up with additional ways of generating notes for these levels.