It’s again time to announce a new project I’m working on. This is a low-priority project, so you don’t need to fear that the other stuff I’m doing will get less attention
This new project I’m talking about is LibDanceTag, which is – you might already have guessed it – a shared library. This library is able to tag music files, like MP3 or OGG files, with the dance-types of the music. So if you’re a beginner in ballroom dancing, you always know immediately what dance you can dance to a song. E.g. if you play the song “Marlon Roudette – New Age”, LibDanceTag will tell you that you can dance ChaChaCha or Foxtrott to it. You’ll also be able to search your music database for specific dances, e.g. “show me all Quickstep songs”.
This shared library uses the online dance database Tanzmusik-Online.de, which is – as far as I know – unique on the web.
The author & maintainer of this database, Simon Franz, created a nice API which my lib uses now. This API is a little bit limited at time, because people could otherwise use it to copy the whole dance-db. Some bad people already did this some time ago using a crawler and tried to sell it – which is not really what the db authors want.
LibDanceTag is a C library and can be used by nearly every mediaplayer out there, and – through GObject-Introspection – by every scripting language too. This also means, that e.g. an Amarok-Plugin is not easy to write at time. (I can’t use an external library there) But on the other hand it means that all mediaplayers share one piece of code for fetching dance-tags, which is great. It is also great that I learned Vala with this project
LibDanceTag is still alphaware. I’m implementing support for it in Clementine right now.
As always, you can find the LGPL’ed source code on Gitorious. But please have in mind that this project has just started and is not finished! Even the TMO.de database API is not stable, and we might change it in future.
P.S: Yes, the database is german, but the plugin is multilanguage. So if you don’t speak German, this shouldn’t be a problem, you can use the LibDanceTag anyway.