Ich hab mal einen kleinen Test gemacht, und ich glaube, ich weiß, warum dieses Feature noch kein Player implementiert hat.
Gehen wir davon aus, dass wir 5000 Lieder auf der Festplatte haben (jahrzehntelange Sammelwut). Baut man für die Initialisierung einen Graphen auf, bei dem jedes Lied mit jedem eine Verknüpfung hat, so kommt man auf die niedliche Datenmenge von insgesamt 25.000.000 Verbindungen. Das bedeutet, dass ich, halte ich diese Menge im Speicher vor, einen Speicherverbrauch von über eine Gigabyte habe. Serialisiere ich meine Liste in eine
XML-Datei, ist diese 2,8 Gigabyte groß. Das Hauptproblem ist also weniger die Rechenleistung, sondern eher die riesigen Datenmengen, die anfallen.
Poste mal das aktuelle
DB-Schema. Und nebenbei: riesige Datenmengen implizieren meist auch mehr erforderliche Rechenleistung. Man kann das minimieren, aber generell besteht da schon eine Beziehung.
Und laß ab von diesem
XML-Fanatismus.
XML hat seine Anwendungsbereiche, aber bei der Datenspeicherung sehe ich die absolut nicht. Denn im Gegensatz zu bspw. SQLite ist deine
XML-Datei am A.... wenn sich zwischendrin das Programm verabschiedet. Dann validiert die
XML nicht mehr weil diverse Tags nicht geschlossen wurden ... naja
Zu den bisherigen Antworten fällt mir auf, daß sie alle den Spaß etwas zu stark vereinfachen. Denn der Abstand für "Genre" mag X betragen, kann aber für "Stimmung" schon wieder Y sein. Bsp.: Oper und Requiem. Und um eine sinnvolle Wertung vorzunehmen
muß mehr als ein Merkmal gewichtet werden.
Ergänzung:
Ja, wie beim Aufbau der Matrix muss man die Ähnlichkeit zu jedem Lied ermitteln und dann in die Koordinaten umrechnen.
Mögliche Auswertungskriterien wären (mal gebrainstormt)
- frequenzspektrum (von n Frequenzbereichen die prozentualen Werte ermitteln)
- Dynamikänderungen (laut-leise Wechsel)
- USW.
Bin mir nicht sicher, daß Beethovens 9te da so anders abschneiden würde als manch "moderne" Musik. Abgesehen davon wäre das ein schutzwürdiger Aufwand, denn sobald sowas gelöst ist (ich entsinne mich einer Meldung auf Heise über ein Programm welches vorgespielte Lieder in Noten übersetzt), kann man auch eine Musiksuchmaschine bauen bei der der Suchende ins Mikrofon pfeift und dann ähnliche Titel angeboten bekommt die er dann kaufen darf. Und nun ratet mal warum iTunes usw. das noch nicht haben