Almost can play any MML. Ampersands give it some trouble and I've identified two test cases that show where the issue is. After that, I might consider making the code into a much nicer state machine and remove much of the copypasta spaghetti code.