This is perfectly normal (or, at least, common). Okay, I have no idea if it's either of those things, but I know I get a very similar thing.
A few good ways to keep motivated are:
1. Know why you are doing this. If you have a clear goal in mind, you can motivate yourself towards that goal when the project itself is not motivating/stimulating/interesting (e.g. you've done the fun bits of the coding, and now have to do the non-fun parts that make it work nicely).
2. Have a clear roadmap, with milestones that are achievable every few months (or some other finite period - I think we all have different 'milestone horizons' within which the milestone is motivating). It's hard to motivate yourself with an endless project. It's easier if you know you are working towards a certain feature, a certain number of clients, a certain musical piece played well.
3. Do something else. The initial rush phase is great, and you can get a lot done in that time, but for the long haul you need to give yourself space from certain things. Make sure you're not doing the same thing all day, or spending all your free time doing it.