Quite fun! The choice of music helps to make it more addictive to keep trying!
The main thing I would suggest is varying the speed of balls per level. Because every obstacle moves at the same speed, except for a brief moment between level transitions, the fact that they player can move left and right doesn't have a mechanical use. This will probably make coding the game logic more difficult, since you've clearly set it up avoid any impossible situations (where there's no gap for the player to fit through,) but I feel that it would be worth it. :)