Check out beaTunes,
an advanced music analysis and library management tool. It provides intelligent ways
to fix music metadata and uses sophisticated algorithms to compute content-based data
like tempo (BPM) or key.
Its smaller cousin is BeatGauge, a very simple and beautifully
designed tool that helps people determine the tempo of songs in their Music.app library.
Without readily available libraries, most modern application development is unthinkable, because it's too expensive. Leveraging existing work can increase productivity dramatically. If an available library is a good fit for the problem at hand: Use it.
Unlike brick and mortar artifacts like bridges and roads, most software products have not
been built a thousand times before. Each project requires both
continuous, intensive communication and co-operation between all parties involved.
Individual skill, experience, and agile methods can help to avoid the
worst pitfalls. But the urge to understand problems and constraints, driven by
curiosity, is still essential to arrive at satisfying solutions.
Additionally, a little scientific research may help.