You will need to make a fair bit of adjustments to the demo code, but it shouldn't be crazy. The core logic is all there - you'll just need to abstract what's there into something a bit more generic so that you can trigger the content as a "playlist". That's not precisely true, though. The demo code already performs look-ahead for the lead-in time. That is the system that allows you to see the notes falling before the music begins. Take a look at how the leadInTime, leadInTimeLeft, and timeLeftToPlay members are used in the RhythmGameController class. You should be able to abstract all of that code out into something like a "RhythmGameTrack" class that the RhythmGameController then uses as part of a list (a "playlist", if you will). Each RhythmGameTrack would then handle its own lead-in-time. The RhythmGameController class would then need to be updated to check whether the "next" RhythmGameTrack should begin or not. You will, of course, need to figure out how to get the looping to be "spot on". To do this, you will need to calculate how much time it takes for the gems to travel from the top of the screen to the bottom. That would then be your "next track's lead-in-time". I hope this is helpful!