Barabbas
Anmeldungsdatum: 31. März 2007
Beiträge: 1651
Wohnort: Münster
|
Hallo zusammen! Ich skizziere gerade meine ersten Entwürfe für einen Jamendo Audio- Player. Das Ding soll in Python geschrieben werden, eine Tk- Oberfläche haben und folgende Funktionen bieten:
Streamen von Jamendo- Tracks Download von Jamendo- Tracks (lowfi) BitTorrent- Download von Jamendo Alben Media- Center (oben links auf dem Bild) Tracklist (unten links auf dem Bild) Playlist (unten rechts auf dem Bild) Playlist- Infos (oben rechts auf dem Bild)
Ungültiges MakroDieses Makro ist nicht verfügbar ←-Kleiner Entwurf Für das Streaming habe ich moc im Auge, der BitTorrent- Download könnte entweder über libtorrent oder (noch einfacher) einen externen Torrent- Downloader erfolgen. Unter "Media- Center" stelle ich mir einen Bereich vor, in dem der Benutzer aktulle Alben, Künstler und andere datenbankgenerierte Informationen findet (Top 10...). Weiterhin werden in diesem Bereich einzelne Künstler und Alben vorgestellt, wenn der Benutzer auf ein Künstler bzw. Album geklickt hat. Also etwa Beschreibung, Bild, Genre etc. Weiterhin wäre hier beispielsweise eine Tag- Cloud denkbar. In der Tracklist werden alle Tracks eines Künstlers (wenn im Media- Center ein Künstler betrachtet wird) bzw. alle Tracks eines Albums (wenn im Media- Center ein Album betrachtet wird) angezeigt. Von der Tracklist aus können Tracks in die Playlist geschoben werden. Die Playlist ist - wäre hätte es gedacht - eine einfache Abspielliste. Hier könnte man ggf. die Benutzer- Playlists von Jamendo einbinden. Bei den Playlist- Infos werden Infos zum abgespielten Stück angezeigt (Dauer, Album + Bild, Künster (evtl + Bild), Tags, Lizenz) Das Ganze sieht nach einem Haufen Arbeit aus, aber ich glaube, es lohnt sich wirklich. Bisher scheint nur Rythmbox Jamendo zu unterstützen. Dummerweise a) finde ich RB nicht besonders gut, b) hat RB Probleme mit meiner (etwas größeren) Audio- Bib und c) ist die vom RB- Jamendo- Plugin angebotene Künstlerliste mehr als unübersichtlich. Bei über 4000 Künstlern und über 7000 Alben braucht man einfach eine etwas andere Darstellungsform, die über Top10, "soundslike", Genres und ähnliche Verknüpfungen funktioniert. Die Möglichkeit zu suchen täte dann das Übrige. Was meint ihr? Lust darauf? Ich bin bisher kaum angefangen, habe gerade mal drei Listboxen, die mir Künstler ⇒ Album ⇒ Track ausgeben und diese dann nach Wahl abspielen. Aber ich denke, "pyjama" ist ein nettes Projekt, dass für viele interessant wäre. Schreibt hier einfach eure Anregungen, Tipps und Hilfeangebote rein, wer sich interessiert kann hier einiges zur Musiclist- API und "Free Music API" nachlesen. Einen Launchpad- Account habe ich hier angelegt. Der bisher vorhandene Code ist dabei aber wirklich nur als Machbarkeitsstudie zu verstehen. lG Barabbas
|
Lunar
Anmeldungsdatum: 17. März 2006
Beiträge: 5792
|
Barabbas hat geschrieben: Ich skizziere gerade meine ersten Entwürfe für einen Jamendo Audio- Player. Das Ding soll in Python geschrieben werden, eine Tk- Oberfläche haben und folgende Funktionen bieten:
Ich bezweifele stark, dass Tk die richtige Oberfläche ist. Es lässt moderne Widgets wie Dock-Widgets vermissen, sieht zumindest in Versionen kleiner als 8.5 auf den meisten Systemen bescheiden aus und bietet in diesen Versionen auch keine Möglichkeit zum Theming. Zudem integriert es sich schlecht bis überhaupt nicht in vorhandene Desktop-Umgebungen. Ich würde ein modernes Toolkit wie Qt4 oder Gtk nutzen, die wesentlich bessere Möglichkeiten zur Oberflächengestaltung bieten, die du in der gezeigten Oberfläche auch gut einsetzen kannst (z.B. ein ausblendbares Dock-Widget für die Album-Informationen.
|
fred.reichbier
Anmeldungsdatum: 14. Dezember 2006
Beiträge: 350
|
Hallo, gute Idee. Allerdings stimme ich Lunar zu, Tk ist für sowas nicht so sehr geeignet. Ich habe sowas schon einmal in D realisiert, zusammen mit einem last.fm-Scrobbler. Wenn du das noch hinzufügen würdest, wäre pyjama mein neuer Jamendo-Standardplayer 😀 Falls es dich interessiert: Hier gibt es den D-Quellcode 😀 Zum Streaming: warum nicht gstreamer, bzw. sein Pythonbinding python-gst0.10 verwenden? Ich habe damit bei Jambalah gute Erfahrungen gemacht. Gruß Fred
|
Barabbas
(Themenstarter)
Anmeldungsdatum: 31. März 2007
Beiträge: 1651
Wohnort: Münster
|
hm, Tk ist sicherlich etwas "veraltet", was ich aber schätze ist, dass es bei Python standardmäßig dabei ist, recht schlank wirkt und man es auf KDE und Gnome gleichermaßen einsetzen kann. Ich finde es immer schrecklich, mein Gnome mit Qt- Bibs zu verseuchen oder umgekehrt... Aber wahrscheinlich habt ihr recht und das sind alles recht schwache Argumente.... da ich in GTK bisher weniger gemacht habe als in Tk werde ich aber weiterhin erstmal versuchen, die wichtigsten Funktionen in Tk zu implementieren, um dann schnell ein GTK- Interface bauen zu können. Das hält dann auch gleich zu einer anständigen Abstraktion an 😉. @fred.reichbier: Gstreamer ist auch eine gute Idee, zwar das gleiche Problem wie oben, aber wahrscheinlich sollte man sich einfach mal entscheiden 😉. Von Jambalah habe ich bisher noch gar nichts mitbekommen, werde mich mal schlau machen, wie mans kompiliert und einen Blick drauf werfen... . Welche API hast du denn benutzt, ich habe momentan den Eindruck, dass die neure API (Free Music API) sehr viel schlechter dokumentiert und potent ist, als die vorherige (Musiclist- API). lG und danke für eure Hinweise, brb
|
fred.reichbier
Anmeldungsdatum: 14. Dezember 2006
Beiträge: 350
|
Hallo, Jambalah ist deshalb sehr unbekannt, weil ich es nur im deutschsprachigen D-Forum vorgestellt habe. Und D-Programme sind nun wirklich (noch) nicht so schön zu kompilieren, vielleicht hilft es dir mehr, wenn du dir nur die jamendo.d-Datei anguckst 😀 Lustig übrigens, so lange ist die Entwicklung Jambalah garnicht her, aber trotzdem gibt es schon eine neue Jamendo-API. Ich habe noch die MusicListAPI benutzt, empfand die allerdings als furchtbare Fummelei. Die MusicList2 API kommt mir dagegen etwas flexibler und klarer vor. Betreffend gstreamer: Welches Problem meinst du? Gstreamer ist nicht unbedingt gnome-abhängig, und das gibt es wohl auch für Windows, was ich gehört habe. Gruß Fred
|
jklö
Anmeldungsdatum: 22. Mai 2007
Beiträge: 102
|
Die Idee finde ich gut ... ich wäre da durchaus ein potentieller Nutzer. Hast du schonmal darüber nachgedacht, das ganze in Quod Libet zu integrieren? Das ist auch in Python geschrieben (zwar in GTK und nicht TK, aber ich muss den anderen hier zustimmen dass TK nicht mehr ganz zeitgemäß ist). Vieleicht könntest du dir damit auch einige Arbeit sparen (Standard-Player-Features musst du nicht mehr neu implementieren) - und für mich als Anwender wäre der Vorteil, dass ich zum Jamendo hören das gleiche Programm benutzen kann wie für meine lokale Musik auch.
|
Barabbas
(Themenstarter)
Anmeldungsdatum: 31. März 2007
Beiträge: 1651
Wohnort: Münster
|
jklö: Eine Integration in Quod Libet wird es wohl nicht werden, weil ich QL zum Einen gar nicht kenne und nicht glaube, dass es sonderlich verbreitet ist und zum Anderen, weil eine QL- Integration wahrscheinlich aussehen würde, wie das Jamendo- Plugin für RythmBox. Meine Vorstellung sieht aber etwas anders aus, ich möchte einen Media- Center, das den Benutzer auf vielfältige Weise neue Musik von Jamendo präsentiert. fred.reichbier: Ach, dachte tatsächlich, dass gstreamer eher Gnome- abhängig ist, aber habs damals auch irgendwie immer auf meinem KDE gehabt, bevor ich zu Gnome gewechselt bin 😉. Komme sehr langsam voran, die API finde ich total frustrierend. Überlege gerade, ob ich nicht einfach die DB runterlade, als Sqlite einbinde und dann immer lokal abfrage. Gerade komplexere Joins und größere Abfragen sind mit api2 ein Ärgerniss, zumal die bedeutend weniger Felder hat als die alte API. Momentan mache ich erstmal einen Mischmasch aus beiden APIs und versuche deren jeweilige Stärken zu kombinieren. lG und schönen Tag noch, brb
|
Lunar
Anmeldungsdatum: 17. März 2006
Beiträge: 5792
|
Barabbas hat geschrieben: jklö: Eine Integration in Quod Libet wird es wohl nicht werden, weil ich QL zum Einen gar nicht kenne und nicht glaube, dass es sonderlich verbreitet ist und zum Anderen, weil eine QL- Integration wahrscheinlich aussehen würde, wie das Jamendo- Plugin für RythmBox. Meine Vorstellung sieht aber etwas anders aus, ich möchte einen Media- Center, das den Benutzer auf vielfältige Weise neue Musik von Jamendo präsentiert.
Du solltest dich aber im mindesten darum kümmern, dass man aus den Playern auf dein Media-Center zugreifen kann. Ein Nutzer wird schwerlich sein Lieblingsplayer aufgeben, damit er dann nur noch Jamendo hören kann, ebenso wie jemand sicherlich Jamendo-Lieder direkt in seine Sammlung integrieren möchte. Um ein Beispiel zu geben: Ich persönlich würde die Software auch daran messen, wie gut sie sich in Amarok integriert, weil ich das Interface und die Möglichkeiten von Amarok schätze! Barabbas hat geschrieben: Komme sehr langsam voran, die API finde ich total frustrierend. Überlege gerade, ob ich nicht einfach die DB runterlade, als Sqlite einbinde und dann immer lokal abfrage.
Du wirst Schwierigkeiten haben, deinen Nutzer zu erklären, warum sie sich erst langwierig ein Datenbank-Update ziehen müssen, nur um die neusten Alben zu sehen. Ich würde sqlite zwar auch einbinden, aber nur als lokalen Cache, der bereits abgerufene Album-Daten speichert, da diese sich ja recht selten ändern. Im Übrigen solltest du vorher die Nutzungsbestimmungen von Jamendo darauf hin überprüfen, ob sie lokale Kopien der Datenbank überhaupt dulden. Immerhin unterliegen Datenbanken als Sammlungswerke dem Urheberrechtsschutz und sind folglich auch entsprechend zu behandeln.
|
Barabbas
(Themenstarter)
Anmeldungsdatum: 31. März 2007
Beiträge: 1651
Wohnort: Münster
|
Hi Lunar, danke für deine Hinweise. Ich selbst habe eine recht große Musiksammlung, die ich sorgfältig in Amarok eingepflegt habe. Dennoch möchte ich einen eigentständigen Jamendo- Player schreiben, Listen- Plugins, die einfach nur alle vorhandenen Künstler von Jamendo ziehen gibt es bereits genug und gerade sowas möchte ich ja nicht. Meine Idee lässt sich wohl schwer mit Amarok & Co verbinden, darum also eine Standalone- Lösung. Ich habe zwar die Lizenz der Datenbanken noch nicht geprüft, in den Entwicklerforen wird immer wieder auf die Dumps verwiesen, weswegen ich mal davon ausgehe, dass das denen recht ist. Davon abgesehen verwendet Rythombox auch die lokale DB. Zu guter letzt ist die DB entpackt ca. 40 MB groß, gepackt ca. 8.... eine einmal wöchtentliche Aktualisierung sollte ausreichen, weswegen ich nicht glaube, dass das für den Benutzer ein großes Problem sein dürfte. Schönen Gruß, brb
|
Barabbas
(Themenstarter)
Anmeldungsdatum: 31. März 2007
Beiträge: 1651
Wohnort: Münster
|
Hallo zusammen, ich habe die Woche fleißig an "pyjama" getüftelt und wollte euch die ersten Bilder zeigen. Hier einmal die Alben- Übersicht. Sie lässt sich bereits nach verschiedenen Kriterien sortieren (neuste, beliebteste, beliebteste in der Woche / im Monat, meistgehörte, am öftesten in Playlisten etc.)
Ungültiges MakroDieses Makro ist nicht verfügbar Und hier einmal die - noch sehr minimale - Alben- Detailübersicht. Unten kommt noch eine Liste hin, die alle enthaltenen Tracks anzeigt, die man dann in die Playlist ziehen kann. Zur Zeit werden noch alle Tracks automatisch an die PL angefügt. Die PL seht ihr rechts, man kann bereits skippen, stoppen und das Abspielen starten. Ein Volume- Slider gibt es auch, unten kann man die Liste verwalten (einen Eintrag entfernen, Liste leeren, speichern, laden). Davon ist bisher aber nur das Leeren der Liste implementiert.
Ungültiges MakroDieses Makro ist nicht verfügbar lG brb
|
Barabbas
(Themenstarter)
Anmeldungsdatum: 31. März 2007
Beiträge: 1651
Wohnort: Münster
|
Hallo nochmal, ich habe hier noch ein paar Screenshots reingestellt, falls jemand sich noch dafür interessiert 😉. Guten Morgen 😉 brb
|
Barabbas
(Themenstarter)
Anmeldungsdatum: 31. März 2007
Beiträge: 1651
Wohnort: Münster
|
So, wer mag kann sich die aktuelle Version ansehen. Es ist noch weit davon entfernt, fertig zu sein, es fehlen noch ein paar Features, die ich von so einem Programm erwarte, außerdem ist gstreamer noch nicht implementiert, was das Ganze relativ hässlich macht. Ich denke, bevor ich daran weiter arbeite, muss ich den Code erstmal entwirren, zumindest finde ich es momentan noch zu prozedural. Würde mich freuen, wenn ihr einen Blick drauf werfen würdet. Zwar werden schon Themes unterstützt, momentan wird es aber noch ganz ohne ausgeliefert....
|
Barabbas
(Themenstarter)
Anmeldungsdatum: 31. März 2007
Beiträge: 1651
Wohnort: Münster
|
Ungültiges MakroDieses Makro ist nicht verfügbar Und Hallo nochmal! Auch auf die Gefahr hin, dass dieses Thema zu einem Monolog verkommt: Ich habe eine kleine bescheidene Bitte und hoffe, dass mir jemand helfen kann: Ich glaube, Pyjama hat mittlerweile einen guten Status erreicht und lässt sich schon recht gut benutzen. Auch wenn hier einige Kommentatoren das Projekt eher in Richtung "Integration in bestehende Lösungen" getriben hätten, habe ich den Eindruck, dass es durchaus einige Liebhaber gibt - immerhin hat sich irgendwer die Mühe gemacht Arch- und OpenSuse-Pakete zu schnüren. Danke dafür 😉. Um es kurz zu machen: Wer mag mir helfen, Pyjama für Windows fitt zu machen? Es gibt m.E. noch immer keinen guten Jamendo-Player für Windows und Pyjama ist als Python-App eigentlich recht leich zu portieren. Ich habe es sogar schon unter Windows zum Laufen gebracht - allerdings ohne Sound, da Gstreamer den Dienst verweigerte. Also brauche ich entweder eine Gstreamer-Pipe, die auch unter Windows ihren Dienst tut oder eine Implementierung mit einem anderen Sound-Framework, das sich eher für Windows eignet. Kennt ihr eines? Ich würde mich wirklich freuen, wenn sich jemand die Mühe machen würde. Liebe Grüße, Daniel Einige Links Pyjama bei Launchpad Pyjama Dokumentation
|
PhotonX
Anmeldungsdatum: 3. Juni 2007
Beiträge: 4471
Wohnort: München
|
Habs mal ausprobiert und hab ein paar Kleinigkeiten zu meckern: 1. Wenn man ein Lied in der Wiedergabeliste löscht, sollte das Lied davor oder danach markiert werden - sonst muss man zum Löschen mehrerer aufeinander folgenden Lieder jedes einzelne markieren. Und es wäre auch gut, mehrere Lieder mit Strg/Shift+Mausklick auswählen zu können. 2. Ein Klick aufs Tray-Icon sollte das Hauptfenster ins Tray verstecken. 3. Die Tags sollten alphabetisch angeordnet werden (kann man zwar in den Einstellungen ändern, aber auch die Vorgabewerte sollten schon sinnvoll angeordnet sein). 4. Wenn man über ein Album mit dem Kursor drübergeht, erscheinen drei Kontrolltasten und das Cover wird nach links verschoben. Es würde besser aussehen, wenn das Cover nicht hin und her springen würde, sondern einen festen Platz hätte (man müsste für die Kontrolltasten eben genug Platz daneben reservieren). 5. Beim kleinen Fenster, das beim ersten Start kommt, während die Datenbank synchronisiert wird, ist der rechte Teil des Textes abgeschnitten. 6. Das kleine Fenster, das bei jedem Öffnen eines Albums kurz aufpoppt ist ziemlich nervig. ☺ Könnte man nicht stattdessen eine entsprechende Meldung in die Statusleiste unten einbinden? edit: Ich merke gerade, es kann auch mal länger dauern... Da wäre dann ein "Abbrechen"-Button gut, sonst hängt das ganze Programm, bis eine Antwort von Jamendo eingetroffen ist. 7. Weiß nicht, ob es schwer zu realisieren ist, aber die Navigation Vorwärts/Rückwärts mit Alt+Rechts/Links wäre super. Ansonsten ein super Teil! Sehr selbsterklärend und einfach in der Benutzung, sieht bis auf ein paar Kleinigkeiten super aus, Tray-Icon mit Notifications inklusive und entweder bin ich doof oder es dauert über einen normalen Browser wirklich sehr viel länger, bis bei Jamendo ein Lied geladen worden ist. 😀
|
Barabbas
(Themenstarter)
Anmeldungsdatum: 31. März 2007
Beiträge: 1651
Wohnort: Münster
|
Hallo PhotonX, vielen Dank für deine Kritik - ist immer willkommen. PhotonX schrieb: 1. Wenn man ein Lied in der Wiedergabeliste löscht, sollte das Lied davor oder danach markiert werden - sonst muss man zum Löschen mehrerer aufeinander folgenden Lieder jedes einzelne markieren. Und es wäre auch gut, mehrere Lieder mit Strg/Shift+Mausklick auswählen zu können.
Das Markieren des nächsten Eintrages nach dem Löschen wird sicher kommen. Eine Mehrfachauswahl hatte ich auch schon im Auge, verlangt aber einen Haufen weitreichender Änderungen. Hört sich komisch an, aber irgendwie unterscheidet sich das Auslesen des markierten Eintrages bei Einfachauswahl von der Mehrfachauswahl so grundlegend, dass ich große Teile meines Codes umschreiben müsste. Da waren mir andere Sachen bisher wichtiger.
2. Ein Klick aufs Tray-Icon sollte das Hauptfenster ins Tray verstecken.
Genau diesen Effekt hatte das Tray-Icon lange Zeit - da haben sich aber auch User beschwert. Darum ist es jetzt so, wie es ist. Mit "x" oder ALT+F4 erreicht man ja den gleichen Effekt.
3. Die Tags sollten alphabetisch angeordnet werden (kann man zwar in den Einstellungen ändern, aber auch die Vorgabewerte sollten schon sinnvoll angeordnet sein).
Wird gemacht!
4. Wenn man über ein Album mit dem Kursor drübergeht, erscheinen drei Kontrolltasten und das Cover wird nach links verschoben. Es würde besser aussehen, wenn das Cover nicht hin und her springen würde, sondern einen festen Platz hätte (man müsste für die Kontrolltasten eben genug Platz daneben reservieren).
Auch richtig. Aber dann wäre das Cover nicht mehr mittig ausgerichtet und das Ganze würde breiter werden. Vielleicht blende ich einfach eine Art Kontextmenü ein, wenn die Maus über den Cover ist (man denke an einen div-Layer).
5. Beim kleinen Fenster, das beim ersten Start kommt, während die Datenbank synchronisiert wird, ist der rechte Teil des Textes abgeschnitten.
*Räusper*. Danke. Faulheit.
6. Das kleine Fenster, das bei jedem Öffnen eines Albums kurz aufpoppt ist ziemlich nervig. ☺ Könnte man nicht stattdessen eine entsprechende Meldung in die Statusleiste unten einbinden? edit: Ich merke gerade, es kann auch mal länger dauern... Da wäre dann ein "Abbrechen"-Button gut, sonst hängt das ganze Programm, bis eine Antwort von Jamendo eingetroffen ist.
Das Fenster wird durch das Plugin "Jamendo Query Indicator" (jam-query) eingebunden. Du kannst es unter Erweiterungen einfach deaktivieren. Stimmt aber: Es ist keine gute Lösung, allerdings fand ich es fürs Erste besser als gar keine Rückmeldung zu geben. Einen Abbrechen-Knopf wird es aber so schnell wahrscheinlich nicht geben - wahrscheinlich aber einen schnelleren Timeout.
7. Weiß nicht, ob es schwer zu realisieren ist, aber die Navigation Vorwärts/Rückwärts mit Alt+Rechts/Links wäre super.
Gar kein Problem, werde ich gerne machen. Die Frage ist allerdings: Verwirrt das den Benutzer nicht vielleicht etwas, aus Browsern kennt man ja eher, dass damit die History durchblättert wird?
Ansonsten ein super Teil! Sehr selbsterklärend und einfach in der Benutzung, sieht bis auf ein paar Kleinigkeiten super aus, Tray-Icon mit Notifications inklusive und entweder bin ich doof oder es dauert über einen normalen Browser wirklich sehr viel länger, bis bei Jamendo ein Lied geladen worden ist. 😀
Vielen Dank! Daniel
|