then convert that to a tempo in BPM for a desired speed (that's like a five minute math problem there, to quote my math profs, it's an exercise for the reader)
then play songs within 5% of that BPM.
Boom. Pace yo self.
As an extra advanced trick: adjust the stride length for incline changes ... though I don't know how you get that information accurately enough!
But in my experience, a good way to improve your pace, become more consistent, and improve your running form in general, is to NOT WEAR HEADPHONES. You need to be very aware of your surroundings, mindful of your breathing and heartrate, and aware of your cadence to really have a good sense of your form and speed. Seeing an elite runner wearing headphones during a race is very rare; most claim it's because they need to _concentrate_.
Playing music while running not only makes is harder for you to hear what's going on around you, hear your own footsteps, etc, but it's a huge mental distraction (for me at least). If I'm listening to music, even passively, I'm more likely to revert to a sloppier form, change pace, etc.
But developing discipline to know your own body and abilities might just be the most important part of training. Hopefully this helps you be more aware, not less.
(FWIW, after 8 months of training, I've learned to run miles within 10 seconds of each other, without a metronome.)
Is there any such thing as an "Android audience?" Calling it a "Samsung Galaxy S4 audience" or "Moto X audience" might be more accurate, right? Because if you want to reach that so called entire Android audience, you have to target much older operating systems and set that as your lowest common denominator.
The big problem with testing is interacting with OEM and 3rd party apps for your own core app functionality. Such as launching an external camera to take a picture: who knows what camera app the user has installed, and what it will return back to your app.
Instead of too fast, it would make an insane buzzing sound if too slow. The problem I would think is accuracy. You hit a bad area, suddenly you are being annoyed even though you are on target.
I found what worked, was that if I was walking with someone I'd normalize my speed. Because other people somehow can pace them selves, I can't. Wonder if it's related to ADHD.
With Pace.fm, I can set a desired speed and the app will help me stay approximately on-pace.
There's usually someone there who takes it upon themselves to rein in the speed on longer runs.
It's said that putting the treadmill at a 1-2 degree incline can correct for this discrepancy, and there's actually been a few scientific studies on this as well (e.g. http://www.ncbi.nlm.nih.gov/pubmed/8887211).
I'm a novice runner, so I tend to run too fast for my fitness level and burn out too early.
For the HNers not used to running, every long-distance running is more a matter of strategy than speed. Even in the Olympics. Go watch a 5,000 meters of any Olympic Finals and try to analyze why the losers sometimes could have easily ran faster than the time of the winner (according to their historic results) and still they didn't.
I started running in March of this year, after having lived 35 years of my life believing that there was something wrong with me that physically prohibited me from running. Every time I tried running, I would end up gassed very quickly, with my heart rate shooting up to 180 bpm. I tried all sorts of things, but it turned out, I just ran too fast. Surprisingly, this isn't something anyone thinks to tell beginning runners: slow down. I found that I had to focus on running slower than was comfortable in order to get my endurance up. It required real, conscious effort to slow down.
I don't know how many people experience this problem, but I know it was a giant hurdle for me. Your app seems like a really fantastic idea.
It's easy to think "I want to run fast so I have to train fast" but it's harder to get into a mindset of "I want to run fast so I better not tire out as quickly". Long steady runs are the best way to build this up (long being relative to your level, of course)