This is my take on delivering a good experience with such an app.
There's no sophisticated multi-level navigation – just your songs. Most hobby guitar players will only have between 10 and 30 songs anyway. A clear structure helps you to quickly identify the song you want to play.
If you happen to have a lot of songs, you can still use the search feature. But apart from showing you matchings songs from your favourites, this also searches for other matching songs through a remote API. In this way I was able to merge two features into a single UI element.
When you've decided for a song to play, you get an immersive, fullscreen experience. If you've ever been to a chords or tab website, you might notice that the positioning of the chords works without the need for a monospace font.
Furthermore, specific chords are always highlighted with the same colour, so if you've used the app for a bit, you might intuitively play the right chord just by subconciously noticing the respective colour.
From here you can also save the song as a favourite, or transpose the song up or down if you prefer to sing in a different pitch.
What enhances the experience is that the colour used for the play button is always computed dynamically from the shown image.
This is achieved through Color Thief – a small colour extraction library. It's really not much effort to implement, but I think it really improves the experience.
I'm also a big fan of guiding the user with subtle, appropriate animations. I like motion that feels natural and guides the user, instead of drawing attention to itself.
When a user is logged in, the collection of songs will be persistently saved in a remote database. So when a user comes back later, or even on a different device, she will find her favourite songs – just like she left them.
As it is mandatory for every personal project, I, of course, completely overengineered the app. So if, hypothetically, a registered user opens the app on two different devices at the same time, all changes to a song are synced in realtime.
This is achieved through a realtime Meteor backend.
Regarding technological aspects, the UI is built with Polymer, Google's response to modern web development. Polymer leverages Web Components, a new set of standards for building apps, that is being worked on by the W3C.
If you're a guitar player who is now convinced about using this app, I sadly have to disappoint you. As the legal aspects of chords and lyrics are fairly complex and the price for using such data isn't affordable with the earnings of a small app, I've put the project on hold and decided not to publish it.
But if you know better about these legal aspects, please let met know.