Ich finde, dieser Beitrag gehört nicht in K&T, weil er ja doch definitiv was mit Programmierung zu tun hat. Außerdem ist er recht lang. Es könnte passieren, dass ihr während des Lesens einschlaft. Sorry schonmal dafür.
Ich hab heute mal aus reinem Interesse die Vita vom Facebook-Mitbegründer
Mark Zuckerberg gelesen. Da fand sich unteranderem ein kleiner Satz über
Synapse, einen Mediaplayer den Mark zusammen mit Adam D'Angelo geschrieben hat. Irgendwann ist dieser (= der Player) aber in der Versenkung verschwunden, vermutlich, weil er grad an nem Webprojekt gearbeitet hat...
Ich finde jedenfalls die Idee dahinter nicht schlecht, und stelle mir dabei sowas wie eine "intelligente Shuffle-Funktion" vor.
Man kennt das ja. Wenn man die Shufflefunktion seines Mediaplayer nutzt, werden einem zufällig Songs präsentiert. Im Regelfall ist man, gerade bei großen Datenbanken, dann aber eher damit beschäftigt, den Song zu skippen, weil man bspw. nachm Soundtrack von Inception gerade keinen Bock auf die Schmusestimme von James Blunt hat. Wie umgeht man das Problem heutzutage meist? Man erstellt sich Playlists, vielleicht nach Stimmung sortiert, vielleicht nach Künstlern oder Genres. Im Regelfall skippt man aber einfach weiter und nimmt es so hin, denn eigentlich hat man für die Erstellung von Playlists auch keine Zeit. Was könnte man dagegen tun?
Zum einen könnte man gucken, wie oft welche Lieder abgespielt werden. Das mag zwar hilfreich sein, ändert aber nichts daran, dass, wenn ich mir bspw. James Blunt anmache, weil ich gerade in einer traurigen Stimmung bin, ich nun keinen Bock auf Iron Maiden habe, auch wenn es die Tage davor rauf und runterlief, und entsprechen oft gespielt wurde.
Wie wäre es aber, wenn der Mediaplayer in der Lage wäre, zu erkennen, was wir in welcher Stimmung hören wollen und welche Lieder zusammenpassen? Nehmen wir an, wir haben die Lieder A,B,C,D,E,F...Z. Wenn der Player jetzt intelligent wäre, könnte er während der Benutzung dazu lernen. Um einen Startpunkt zu haben, analysiert man erstmal die BPM aller Lieder. Da das bei einer großen Datenbank entsprechen lange dauern wird, kann man dies im Hintergrund tun. Ist man fertig, hat man schonmal ein paar Verknüpfungspaare. So weiß man bspw, dass die Lieder A-E, J-L und X-Z alle im selben BPM Bereich sind, bspw. 120. Es wäre also eine gute Idee, wenn Lied D abgespielt wird, dann im Shuffle Modus ein Lied aus den Blöcken J-L oder X-Z zu benutzen.
Und jetzt kommt der User ins Spiel. Es geht dann darum, Verknüpfungen zwischen den einzelnen Liedern aufzubauen. Wenn der User Lied A spielt, dann Lied C und dann Lied I (und zwar bewusst dahinspringt), dann kann man als Programm davon ausgehen, dass die Lieder für den User eine Einheit bilden. Kommt dies häufiger vor, wird die Bindung zwischen den einzelnen Liedern immer stärker.
Im Prinzip würde die Anforderung an den Player lauten: "Erinnere dich daran, was ich als nächstes gehört habe. Wenn du mir die Lieder liefern sollst, dann erinnerst du dich an meine Auswahl." Denn wenn man mal in sich geht und überlegt, dann weiß man selbst eigentlich immer am Besten, welche Lieder zueinander passen und welche nicht.
Natürlich kann man die Liedgruppen nicht isoliert betrachten. Es könnte bspw sein, dass Lied R nach Lied X und nach Lied A fast gleichoft gehört wurde. Diese Tatsache könnte man aber auch geschickt nutzen, in dem man die Liedgruppen A,C,I und X-Z über das Lied R miteinander verknüpfen könnte, quasi als geschickter Übergang.
Natürlich gibt es noch andere Sachen, die man bedenken muss. Bei so einem System hätten neue Lieder, die neu in die Liste geladen werden, ein Problem. Dem könnte man entgegenwirken, in dem die Bindungen über die Zeit wieder schwächer werden, sodass auch neue Songs die Chance haben, in das System eingebunden zu werden. Außerdem sollte es bspw. bei der Gruppe A,C,I egal sein, in welcher Reihenfolge sie gespielt werden.
Jetzt gibt es nur eine technische Überlegung: Wie setzt man sowas am geschicktesten um? Über ein System ähnlich neuronaler Netze? Und wie speichert man die Verbindungen zwischen den einzelnen Liedern ab. Fragen über Fragen... Und eure Ideen sind mir dazu Willkommen. Mein ihr, sowas wäre sinnvoll?