Ein neues Projekt: LibDanceTag

Es ist mal wieder Zeit ein neues Projekt anzukündigen, welches bei mir nebenher mit relativ niedriger Priorität läuft. Das sagt aber gar nichts über den Nutzen der Software aus…

Das Projekt, um das es geht nennt sich LibDanceTag, wobei es sich – wie man schon vom Namen her raten kann – um eine Programmbibliothek handelt. Diese Bibliothek ist in der Lage, Audiodateien wie z.B. MP3 oder OGG Dateien mit Informationen zu den Tänzen zu versehen, welche man zum enthaltenen Musikstück tanzen kann.

So können z.B. Anfänger im Standard- und Lateintanz sehr einfach den richtigen Tanz für ein Musikstück erfahren. Wenn z.B. das Musikstück “Marlon Roudette – New Age” gespielt wird, wird LibDanceTag herausfinden, dass man ChaChaCha oder Foxtrott dazu tanzen kann. (aber beides nur mittelmäßig gut) Es ist auch möglich, seine Musik nach Tänzen zu durchsuchen und Anfragen wie “zeig’ mir alle Songs, zu denen ich Quickstep tanzen kann” zu stellen.

Ich habe zwar mal im Rahmen eines anderen Projektes versucht, eine künstliche Intelligenz Tänze raten zu lassen, das hat aber nicht wirklich funktioniert, da der Vorgang doch komplexer war, als ich zuvor gedacht hatte. Daher benutzt die LibDanceTag die online-Tänzedatenbank Tanzmusik-Online.de als Datenquelle. Diese Datenbank ist meines Wissens im gesamten Internet in dieser Form einzigartig.

Schon vor ca. einem Jahr habe ich den Autor und Betreuer der Datenbank, Simon Franz, kontaktiert um über eine Software wie LibDanceTag zu sprechen. Er hatte da zunächst noch Bedenken, da es in der Vergangenheit wohl schon vorgekommen ist, dass Leute die DB mittels eines Scriptes heruntergeladen haben und versuchten, diese kommerziell zu verwerten. (was, um es mal deutlich zu sagen, echt asozial ist) Mit einer TMO.de API wäre Missbrauch dann theoretisch noch einfacher.

Dieses Problem ist aber inzwischen gelöst, ebenso wie das, die Last auf dem Server möglichst gering zu halten.

Die LibDanceTag ist eine simple C-Bibliothek, welche von jedem beliebigen Mediaplayer oder Musikverwaltungsprogramm verwendet werden kann. Durch GObject-Introspection existiert eine Anbindung an jede Scriptsprache, die GI unterstützt. Aber eben weil es eine C-Lib ist, kann man z.B. ein Amarok-Plugin nicht so leicht schreiben, da Amarok die Verwendung externer C-Libs verbietet. Allerdings teilen über die LibDanceTag alle Anwendungen das selbe Stück code, um Tanzinformation zu laden und zu speichern, was ich persönlich sehr praktisch finde. (Außerdem habe ich mit diesem Projekt ganz früher meine Vala-Kenntnisse erprobt :P)

LibDanceTag ist noch immer ein sehr experimentelles Projekt, momentan implementiere ich gerade Unterstützung dafür in meinem derzeitigen Lieblings-Musikplayer Clementine.

Wie ich weiß, liebt ihr Bilder, hier sind also ein paar:

Okay, das ist jetzt noch nicht viel, aber wie gesagt, das Projekt ist in Arbeit 😉

Wie immer ist der LGPL-lizenzierte Code auf Gitorious zu finden. An alle, die das Ganze jetzt mal eben ausprobieren wollen: bitte behaltet im Hinterkopf, dass das Projekt gerade erst gestartet wurde und die API der LibDanceTag und die von TMO.de sich mit ziemlicher Sicherheit noch ändern wird. (Zudem ist die lib eher als “quick-hack” zu verstehen) Momentan würde ich noch jedem von der Nutzung der Software abraten.

Sobald das Projekt fertig ist, gibt’s aber natürlich auch wieder eine Ankündigung 🙂

Zum Schluss noch eine Bitte: Wie fast jedes freies Non-Profit-Projekt sucht natürlich auch Tanzmusik-Online nach Helfern… Wer also Lust hat, mal die aktuellen Charts in die Datenbank einzutragen oder sich anderweitig zu beteiligen kann das auf der Website unkompliziert tun.

Wer LibDanceTag-Unterstützung für $MEDIAPLAYER will, kann die natürlich auch ganz einfach selbst implementieren 😉

Dieser Artikel erschien zuerst in Englisch.

3 Comments

  • Catscrash commented on 26. September 2011 Reply

    sehr gute idee, wirst du das plugin für clementine auch bereitstellen?

    vg
    Catscrash

    • Ximion commented on 26. September 2011 Reply

      Ja, sobald es fertig ist auf jeden Fall. Wenn der Clementine-Maintainer mit dem Code zufrieden ist, wird das dann auch standardmäßig in Clementine integriert.

  • Lina commented on 12. February 2016 Reply

    Напиши коментар Можете да използвате тези HTML етикети и атрибути:

Leave a Reply

Your email address will not be published. Required fields are marked *