Most of all, I'd display the controls at all times - ideally showing them in combination with the obstacle it controls (so you know what they look like). Ideally there should be a short tutorial level with one of each obstacle and you have to press each of them to make it, with a moderate distance between each obstacle and failing if you don't press it. I'd definitely try to make the controls more responsive too. And lower the volume of the music a bit. But great work - procedural generation definitely helps with making longer gameplay, and I wish I had time to do something like that for my game.