Laden...

Freundlicher Audio Player

Erstellt von jaensen vor 16 Jahren Letzter Beitrag vor 16 Jahren 3.516 Views
jaensen Themenstarter:in
2.760 Beiträge seit 2006
vor 16 Jahren
Freundlicher Audio Player

Hallo Community,

ich habe vor ca. 3 Jahren mal angefangen eine Playersoftware (damals noch in Delphi) zu entwickeln die einige besonderheiten aufweisen sollte.
Leider ist mir das damals mangels Kentniss nicht gelungen und die Sourcen sind auch verschwunden (Ich hasse IBM / Hitachi IC35-Festplatten).

Das ganze sollte ursprünglich ein Hardwareplayer auf Basis eines 3,5" SingleBoard Computer nebst VGA Display und WindowsXP-Embedded mit WLan werden.

Die Idee dahinter:
Der Player hält sich eine Datenbank und speichert zu jedem Track ein "Profil" welches so Sachen wie durschnittliche Frequenz (Vocals, Basslastig oder anderes) sowie BPM und weitere Faktoren beinhaltet (Ich hatte mal eine Spec dazu, hab ich schon gesagt das ich IBM / Hitachi IC35-Festplatten hasse?). Aus diesen Daten werden Gruppen. Der Standardabspielmodus wäre so eine Art Shuffle der allerdings prüft wie lange der Benutzer einen Track anhört bevor er weiter skipt, da die Musik in Gruppen (eher eine FuzzyLogic) organisiert ist kann man wenn der Benutzer z.B. dreimal hintereinander den Track innerhalb von 5 sek. oder so gewechselt hat davon ausgehen das ihm diese Gruppe nicht wirklich gefällt (zumindest zu dem Zeitpunkt nicht) und zu einer anderen Gruppe springen von der man wieder einige Tracks anspielt usw. bis der Benutzer einen Track länger hört. Sollte das der Fall sein, kann man sagen das sich der Player eher in die richtung der gerade laufenden Gruppe bewegen soll und verwandte Musik aussuchen soll. Das ganze könnte man dann noch mit einem neuronalen Netz stützen.

Ein weiteres Feature sollte über die integrierte WLan Karte realisiert werden nämlich Filesharing zwischen verschiedenen Geräten (Rechner andere Player dieses Typs usw.) weitergesponnen sollte dieses Feature später ein dezentrales Netzwerk zwischen verschiedenen Geräten erstellen können über das dann weitere Features realisiert werden könnten (VoIP, Messenger, IP-Routing quasi als eine Art repeater usw.)

Ausserdem sollte man dann das Gerät auch als USB / LAN wlan-Stick nutzen können um am heimischen PC ins Internet zu gehen (Dank XPEmbedded sind einem da wenig Grenzen gesetzt).

Das ist zwar ein recht Tollkühnes Projekt aber ich habe mir gedacht wo sich hier doch so viel Komptenz auf einem haufen tummelt einige Meinungen über dieses Projekt einfangen zu können oder es gar zu realisieren.

Freue mich über eure Ideen.

Achso, zu der Hardware die ich mir besorgt hatte:
3,5" Singleboard Computer mit Transmeta Cruseo Prozesser und irgendeinem strangen Chipsatz mit integrierte 8MB 3D Grafik (evtl. für ein paar Games auf 460 x 480 ausreichend), 256MB Ram CF-Slot und Displaycontroller. Einige USB(1.1) Anschlüsse, 100Mbit Lan ,PS2 und halt allem was man noch so braucht...

L
333 Beiträge seit 2007
vor 16 Jahren

Hey, das hört sich stellenweise sehr vertraut an! 🙂 Ich habe hier auch ein paar Pläne für einen Musik-Player rumliegen. Allerdings habe ich etwas andere Anforderungen und wollte daher andere Technik verwenden. Zuerst hab ich an eine normale Desktop-Anwendung gedacht, also für PCs. Naja, nicht so ganz normal, sondern etwas, das zur 1ft- und zur 10ft-"Experience" passt, also teilweise auch aus größerer Entfernung ablesbar ist, wie bei einem Fernseher (à la Media Center / eHome). Die Wiedergabe könnte ein bisschen wie in meinem WinampPresenter im Vollbild aussehen. Da ich meine Musik auf dem Notebook komprimiert abgelegt habe und sich dafür das AAC-HE-Format (AACplus v.2 mit 64 kbit/s) gut eignet, brauche ich natürlich auch was, das diese Dateien abspielen kann. Außer Winamp ist mir leider nichts bekannt. An einer Code-Lizensierung ist man bei Coding Technologies scheinbar nicht interessiert. Außerdem hat Winamp immerhin ein bisschen Cross-Track-Fading, besser als gar keins. Und so habe ich vor, mir win gekidnapptes Winamp einzuspannen. Die Anpassung des Programms und die Fernsteuerung klappen schon ganz gut.

Außerdem werde ich vermutlich dieses Projekt zum Studieren von WPF (Windows Presentation Foundation) hernehmen. Also geht meins doch in eine etwas andere Richtung. Was aber ähnlich ist, ist die automatische Auswahl der Musik. Ich will für alle Stücke Tags vergeben, die in einer einfachen hierarchischen Struktur definiert sind. Danach können die Musikstücke dann auch verglichen und ausgesucht werden.

Das mit dem Wechseln der Richtung beim Skippen hab ich mir genau so auch ausgemalt. 😉 Wobei es dabei auch einige Spezialbedingungen zu beachten gilt. Ich hab mir z.B. gedacht, dass ich Lieder beim schnellen Skippen oder vollständigen Hören negativ bzw. positiv bewerte. Wenn sich über eine lange Zeit nichts tut, soll das Gewicht der Bewertungen aber sinken, da der Benutzer schon lange verschwunden sein könnte und nicht mehr zuhört. Wenn mehrere Lieder übersprungen werden und die Richtung gewechselt wird, muss die negative Bewertung der Lieder nur mit der vorherigen Musikrichtung verbunden werden, denn dazu haben sie scheinbar nicht gepasst. Ein Löschen der negativen Bewertungen beim Richtungswechsel wäre auch zu erwägen, wenn man die Lieder nicht schlecht findet und sie zur Richtung passen, aber man sie jetzt eben einfach nicht hören will.

Naja, Speicherung der Daten in einer Datenbank (welche steht noch nicht fest, entweder SQLite oder was mehr ".NETtiges"), keine ID3-Tags (die mag ich nicht, passt auch nicht zur DB-Verwendung), Verwaltung vieler Playlists (z.B. für Alben) und Export von Playlists (z.B. für die MP3-CD fürs Auto). Ideen hab ich schon viele gesammelt, das Screen-Layout ist recht weit gereift. Die Technik ist da, fehlt nur noch die Zeit, tatsächlich eine Oberfläche dafür zu erstellen und all die netten Automatikfunktionen zu implementieren. 🙂

jaensen Themenstarter:in
2.760 Beiträge seit 2006
vor 16 Jahren

Ja, vor allem stellen sich da auch einem immer wieder unerwartete Steine in den Weg.
Zu den ID3-Tags: Ich würde sie beibehalten falls du die Musik irgendwann mal wieder woanders anhören möchtest, vielmehr würde ich sie paresen und in der DB speichern (Was dann nachher Gridmäßig angepasst werden könnte). Die Files wollte ich in einigen Verzeichnisen unterbringen und den Dateinamen kodieren und als Index benutzen.
Beim DBMS hab ich an sowas simples wie JET gedacht.