Um das im vorher beschriebene Verfahren zu nutzen, habe ich eine kleine Software geschrieben, die den Fingerabdruck erzeugt und eine Anfrage an einen entsprechenden Webservice stellt. Den Webservice werde ich in einem späterem Blog beschreiben.
Um die wird ein Benutzer und ein Passwort benötigt. Um die Software testen zu können, gibt es den Testbenutzer 'test' mit dem Passwort 'test1234'.
Beim Programmstart wird nach Updates gesucht, die Konfiguration geladen und anschließend die Programmoberfläche initialisiert.
Nach erfolgtem Update und laden der Konfiguration, wird der Benutzer aufgefordert sich einzuloggen.
Anschließend erscheint ein leeres Programmfenster mit lediglich drei Menübuttons.
Der erste Button öffnet eine Dialog über den der Benutzer einen Ordner laden kann - derzeit werden ausschließlich mp3 Dateien unterstützt.
Nach Auswahl eines Ordners werden alle in diesem Ordner liegenden (sowie Unterordnern) Dateien in dem Programmfenster angezeigt.
Über den +/- Button kann die Titelliste aus- bzw. eingeklappt werden.
Hinter den Titeln kann über den Button mit der Aufschrift "Titelinformationen" ein Dialog geöffnet werden. Dieser Button wird erst aktiv, wenn eine Benutzereingabe erforderlich wird.
In diesem Dialog kann der Benutzer entweder Titelinformationen eingeben und anschließend über "Hochladen" den Titel in das System einspielen, oder durch Auswahl eines Treffers in der Vorschlagsliste den ausgewählten Titel in der Benutzermusikbibliothek registrieren.
Der Vorteil an der Auswahl eines Titels liegt darin, dass die Daten nicht mehr hoch geladen werden müssen - der Nachteil ist, dass eventuell die Qualität des vorgeschlagenen Lieds schlechter ist, als die des Lieds des Benutzers.
Der zweite Button des Programmfensters öffnet einen Dialog in dem Einstellungen vorgenommen werden können.
Unter 'Upload' werden Uploadeinstellungen vorgenommen. Die Checkbox 'Delete folder from list after upload' sorgt dafür, dass Ordner dessen Lieder alle in das System eingespielt wurden, automatisch von der Liste gelöscht werden. Diese Funktion ist derzeit noch nicht implementiert.
Die Option 'Number of synchronous uploads' gibt die Anzahl der zeitgleichen Uploads an. Sie stellt aber auch ein, wie viele Lieder zeitgleich analysiert werden.
Von einem höheren Wert als 4 rate ich dringend ab, da die Analyse einen Kern einer CPU auf 100% Auslastung ansteigen lässt sowie der Speicherverbrauch stetig wächst da bei jeder Analyse eine Audiodatei komplett als pcm/wav in den Speicher geladen wird.
Hier kann ich kurz anmerken, dass der Speicherverbrauch des Programms recht groß ist und ich daher das Softwaredesign überarbeiten muss. Tipps und Anmerkungen sind daher erwünscht!
Die Quellen des Codes kann man unter http://sources.my-musix.com/ einsehen.
Der Einstiegspunkt ist 'MyMusixJava2', die Oberfläche sowie dessen Logik liegt aber unter 'MyMusixUploader'.
Um die Software builden zu können werden Sources & Bibliotheken in folgenden Ordner benötigt:
EuphonySymphony
MyMusixCommon
MyMusixI18N
MyMusixJava2
MyMusixLibShared
MyMusixUploader
MyMusixWSClient
Alle Dateien unter ...MyMusixJava2/Distributed stellen eine lauffähige Version dar, die aus den vorhanden Quellen erstellt werden kann.







Keine Kommentare:
Kommentar veröffentlichen