Playlist Tree, ou comment profiter de ses super tags avec foobar

Playlist Tree, ou comment profiter de ses super tags avec foobar - Traitement Audio - Video & Son

Marsh Posté le 04-10-2005 à 19:09:57    

Alors, à force d'en parler ici et là, et voyant le besoin se faire sentir (surtout ici), je me décide enfin à ouvrir un petit sujet sur ce (merveilleux) plugin pour foobar.
 
foo_playlist_tree est une média librairie avec affichage hiérarchique. Il permet l'utilisation de playlists statiques et dynamiques. Il est intégrable dans le column_ui, et offre un affichage sur deux vues d'une part l'affichage arborescent et d'autre part l'affichage de la liste des pistes correspondant au noeud de l'arbre sélectionné.
 
Avertissement: j'utilise la version 1.7.6 du 18 septembre, à l'heure ou j'écris le dernière version est la 1.7.9, que le langage de script des queries et de l'affichage est en pleine mutation, que les nouvelles fonctionnalités vont me faire revoir (grandement alléger) pas mal de mes queries.
 
Les Liens officiels:

Citation :

files for the project can be found at
http://foobar.bowron.us/
 
new users are encouraged to use the "stable" version available here: http://foobar.bowron.us/foo_playlist_tree-STABLE.zip
latest binaries: http://foobar.bowron.us/foo_playlist_tree.zip
source: http://foobar.bowron.us/foo_playlist_tree_src.zip
extras: http://foobar.bowron.us/foo_playlist_tree_extras.zip
screenshot: http://foobar.bowron.us/prev.png
Discussion, feature requests and bug report forum: http://www.bowron.us/forum
Tutorial: http://foobar.bowron.us/Tutorial/
Wiki: http://www.bowron.us/wiki/
 
extras contains msvcrtd.dll which some people may need to use the dll and a bitmap that can be editted to customize the display.


 
Le tutorial est indispensable pour bien commencer et assimiler les concepts de base. Même si il est totalement out to date, les fonctionnalités et variables présentées existent encore, mais plein de nouvelles ont été rajoutées.
 
Comme je ne vais pas refaire un tutorial en français, je pense plutôt traiter le sujet par l'exemple, et vais donc faire le point sur mes tags personnels, et l'utilisation que j'en ai grâce à ce plugin.
 
Je vais quand même commencer par souligner quelques points fondamentaux de ce plugin :

  • Le point négatif, à mon sens : Les Queries sont calculées "d'un bloc", l'intégralité de l'arborescence générée par la query est stocké en mémoire et dans un fichier. L'arborescence ne sera vraissemblablement jamais utilisée dans son intégralité, d'où une surcharge de ram et de calcul regrétables. (J'aurais préféré une gestion dynamique avec création de chaque branche au moment de l'ouverture du noeud père, ce qui aurait sûrement permis d'alléger la mémoire, mais doit être bien plus compliqué a coder).

Le reste, que du bonheur :

  • utilisation de #tag# pour le traitement séparé des multiples valeurs d'un même tag. (marche même dans les $if()
  • @any<> : (nouvelle syntaxe) permet de rassembler plusieurs tags et d'y appliquer un même filtrage, affichage
  • $drop() : permet de prendre pour source de données le contenu d'un répertoire spécifique
  • $playlist() : la même mais depuis une playlist
  • $node() : ajoute a une query le contenu d'un autre noeud de l'arbre
  • $playing() : permet de récupérer les tags du morceau en cours, et donc de faire des queries avec update dynamique, qui sont mises à jour en fonction du morceau joué (ex: albums de l'artiste en cours, différentes interprétations du morceau en cours...)
  • $first, $sum, $avg : fonctions applicables aux tags contenus dans la query
  • @limit<> : limite le nombre de fils d'un noeud


Voyons maintenant l'interface.
On a donc une fenêtre de navigation principale qui peut être soit fixe, soit dans column_ui, son affichage se fait sous forme arborescente uniquement.
Un affichage secondaire permet de lister le contenu du noeud en cours, il existe deux possibilités:

  • D'une part la "Library Playlist" qui est une playlist standard automatiquement mise à jour a partir de Playlist Tree

http://foobar.bowron.us/Tutorial/Figure%207.png

  • D'autre part, le "Browser" qui est une fenêtre indépendante affichant sous forme de liste

http://foobar.bowron.us/Tutorial/Figure%208.png
 
Pour vous donner une idée de ce que l'on peut faire avec playlist tree, et également d'où en est mon tagging & affichage, voici deux copies d'écran de mon foobar :
http://img362.imageshack.us/img362/9751/complet0hb.th.jpghttp://img289.imageshack.us/img289/6612/complet25ib.th.jpg
 
Ainsi qu'une copie d'écran en déployé de mon playlist tree :
http://img362.imageshack.us/img362/6453/playlisttree5vq.th.jpg
On peu noter que dans Jazz/60's, on voit bien le même album apparaitre sous différents noms.
 
Enfin, pour donner une idée des tags que j'utilise, voici une vue déployée de mon menu contextuel:
http://img384.imageshack.us/img384/4892/menus6cl.th.jpg
L'agencement ainsi que le contenu peuvent être discutés, mais le plus important c'est de voir que y'en a une tripotée, et qu'ils me servent tous et ce grace au Playlist Tree.
 
Bon, on vois donc que j'utilise pas mal de tags persos, que j'en profite d'une part dans mon affichage et d'autre part dans mon playlist tree.
 
On va maintenant décortiquer
quelques exemples de queries intéressantes:
 

  • Bandes Originales

http://img349.imageshack.us/img349/803/pltreebo8gu.jpg
Label: Bandes Originales
Query: (soundtrack IS *)  AND (__replaygain_album_gain IS *)  
[x] foo_playlist_gen format
Format: ... (par album)
Max: 0
Sort Criteria: (.) display
 
En la décortiquant un peu qu'est ce qu'on peut voir :
Query:
- soundtrack IS * : toutes les pistes qui ont un tag soundtrack
- __replaygain_album_gain IS * : et un tag __replaygain_album_gain : filtrer sur __replaygain_album_gain me permet de virer les pistes qui n'en ont pas, et que donc a priori, je n'ai pas encore tagé.
Format: Mon format est super compliqué et pas vraiment lisible, c'est une conséquence directe de la quantité de mes tags... l'éléments intéressant à voir, aurait été le '|' qui permet de séparer les niveaux de l'arbre.
Max: 0 (= pas de max)
Sort criteria: par défaut, cad le tri par défaut que j'ai configuré dans les options de mon playlist tree.
 

  • Classique, par Référence Catalogues

http://img160.imageshack.us/img160/5789/pltreeclassique5fu.jpg
Label: Classique/Catalogues
Query: cat IS *
[x] foo_playlist_gen format
Format: %composer%|%cat% - %title%[' ( in '%mode%' )']|%director% - %date%|$if(%mvtnumber%,$num(%mvtnumber%,2)' - ')[' ['%tempo%']'] $if2(%mvt%,%title%)
 
Affichage totalement différent pour les oeuvres de classique triées par référence catalogue:
Query: toutes les pistes ayant la valeur %cat%
Format: Compositeur|Cat - Nom_De_L'Oeuvre (in mode)|Chef - Date|Num_Mouvement - Tempo - Nom_Mouvement
 

  • Singles, par Ambiance

http://img349.imageshack.us/img349/9213/pltreesingles9rq.jpg
Label: Singles - par Ambiance
Query: ("single title" IS *) OR ((__replaygain_album_gain MISSING) AND (__replaygain_track_gain IS *)) AND (mood IS *)
[x] foo_playlist_gen format
Format: $replace(%mood%,Zen,1 - Zen,Soft,2 - Soft,Medium,3 - Medium,Mouv,4 - Mouv,Speed,5 - Speed)|$num($mod($rand(),1000),3) - %artist% - %title%[' ('%date%')']
 
Affichage de mes singles triés par ambiance.
Query:
- Soit le tag %single title% est présent (identifie un single présent dans un album)
- Soit j'ai un __replaygain_track_gain et je n'ai pas de __replaygain_album_gain (identifie un single venant de mon répertoire ne contenant que des singles)
- Et : %mood% a une valeur (donc j'ai attribué un tag ambiance)
Format: affiche le 1° niveau l'ambiance (trié par "niveau" ), puis un numéro aléatoire entre 000 et 999, l'artiste et le titre (+ la date)
Le nombre aléatoire me permettait d'avoir un ordre aléatoire dans mes singles, cette bidouille n'est plus nécessaire maintenant, car avec la dernière version on a un 1° tri avant filtrage et un 2° tri après filtrage.
 

  • Top 50 des Écoutes

http://img301.imageshack.us/img301/8171/pltreetop505ng.jpg
Label: Top 50 des Écoutes
Query: play_counter IS *
[x] foo_playlist_gen format
Format: %artist% - %title%[' ('%date%')']
Max: 50 (.) tracks
Sort criteria: $num(%play_counter%,3)
(.) custom
 
Ca se passe de commentaire...
 

  • Albums écoutes, Par Lettre, Artiste, Notation

http://img256.imageshack.us/img256/3935/pltreelettre5vu.jpg
Label: Ecoutes/Par Lettre/Artiste/Album-*
Query: (various MISSING)  AND (artist IS *) AND (__replaygain_album_gain IS *) AND (play_counter IS *)
[x] foo_playlist_gen format
Format: $upper($cut(#artist#,1))|#artist#|$repeat($char(9733),%rating%)$if(%various%,VA,$if(%album artist%,%album artist%,#artist#)) - '('[%date%]')' [%album%]|... (affichage de l'album)
 
Query:
- various MISSING : exclure les albums VA
- artist is * : le champ artist existe
- __replaygain_album_gain IS * : l'album est tagé
- play_counter IS * : la piste a déjà été écoutée
Format:
- $upper($cut(#artist#,1)) : 1° lettre de l'artiste avec gestion tags multivalués
- #artist# : artiste (gestion tags multivalués)
- Album, précédé de sa notation
 

  • Titre en cours:

http://img283.imageshack.us/img283/7701/pltreeplaying4gy.jpg
Label: @playing<%title%>
[x] Refresh automatically
Query: title IS @playing<%title%>
[x] foo_playlist_gen format
Format: '['%date%']' %artist% • %album%
 
Label: il est automatiquement mis à jour avec la piste en cours
Refresh automatically: permet de mettre a jour la query sur chaque action de foobar
Query: idem, on matche les pistes ayant le même nom que la piste en cours
 
 
Voilà, je pense avoir fait un petit tour d'horizon de ce plugin, et espère que ça intéressera du monde.


Message édité par Solt le 05-10-2005 à 13:34:10
Reply

Marsh Posté le 04-10-2005 à 19:09:57   

Reply

Marsh Posté le 04-10-2005 à 19:41:59    

Fascinant, je dois dire. Je n'avais pas moindre idée de la richesse de ce plugin.  :jap: Si seulement ils implémentaient là-dessus un mode navigation par panels avec les pochettes.  :cry:

Reply

Marsh Posté le 04-10-2005 à 19:57:44    

je ne pense pas que ça soit au programme...

Reply

Marsh Posté le 04-10-2005 à 22:47:29    

Y'a pas un topic Foobar déjà ? Voire même plusieurs.
 
Pour la navigation dans les pochettes, AudioGrail le fait et peut lancer la lecture dans Foobar si besoin.

Reply

Marsh Posté le 04-10-2005 à 23:17:59    

Salut,
Quand je DL foo_playlist_tree, j'ai un .dll
Que faut il que j'en fasse stp?
Merci :)

Reply

Marsh Posté le 04-10-2005 à 23:35:04    

Kyle_Katarn a écrit :


Pour la navigation dans les pochettes, AudioGrail le fait et peut lancer la lecture dans Foobar si besoin.


Mets des screenshots de tout ça sur ton site ou sur ton topic, parce qu'il y a deux jours j'ai installé/désinstallé ton soft après en avoir fait le tour en 5 minutes. Soit je suis vraiment crétin, soit les 3/4 des fonctionalités sont soigneusement cachées, soit on ne parle pas de la même chose.

Reply

Marsh Posté le 05-10-2005 à 00:01:01    

Kyle_Katarn: oui, mais point de topics sur playlist_tree, et comme c'est un composant qui remplis une fonction essentielle et qui en même temps n'est pas spécialement connu des foobarmaniacs, je pense qu'il peut être pas mal de lui consacrer un fil, histoire qu'il ne soit pas perdu au milieu d'un fil fleuve.
 
Audiograil permet il une indexation perso des albums? et est ce qu'il gere les tags persos? car sinon, la recherche par pochette n'a que peu d'interet pour moi, si on ne peut pas l'associer aux tags persos.
 
megadez: tu mets la dll dans le répertoire "components" de ton foobar, et tu redémares foobar. tu aura ensuite la conf dans Preferences/Components, le pannel que tu pouras rajouter dans ton column_ui, et un nouvel onglet dans le menu "Components".


Message édité par Solt le 05-10-2005 à 00:06:37
Reply

Marsh Posté le 05-10-2005 à 09:20:52    

Merci pour cet intéressant topic  :jap:

Reply

Marsh Posté le 06-10-2005 à 20:03:58    

Version 1.7.10 sortie : nouvelle fonction @browse_as<> qui permet de choisir, suivant les queries, les colonnes affichées dans le browser.

Reply

Marsh Posté le 06-10-2005 à 21:07:46    

J'ai toujours pas eu le temps de m'intéresser à ce composant mais merci pour cette initiative, cela facilitera l'apprentissage le moment venu.

Reply

Marsh Posté le 06-10-2005 à 21:07:46   

Reply

Marsh Posté le 03-01-2006 à 22:57:30    

[:drapo]  
 
Joli topic Solt. Pour ma part j'attends la sortie de la 0.9 finale pour changer mon foobar, donc playlist_tree attendra aussi, mais une chose est sure ca sera un des 1ers composants que j'installerai :jap:  
 
PS : utilises le png pour tes captures d'écran, ca pèse moins lourd et c'est plus joli ;)

Reply

Marsh Posté le 03-01-2006 à 23:04:49    

une chose que je me demandais si tu nous fais un zip de ton repertoire foobar entier, ça va etre direct configuré comme ça ???  :whistle:  
 
Bon je sais je suis feignant, allez jeté moi des pierres :o

Reply

Marsh Posté le 03-01-2006 à 23:20:58    

Oui. 2 problèmes toutefois : tu devrais te taper de retagger toute ta zik comme il l'a fait, et c'est illégal (à cause de trucs de Nero inclus dedans que seul Le Très Honorable P.P. a le droit de distribuer)

Reply

Marsh Posté le 03-01-2006 à 23:27:50    

:jap:

Reply

Marsh Posté le 04-01-2006 à 11:10:56    

Avec les dernières versions, on peut maintenant faire encore plus fou :
 
Albums écoutes, Par Lettre, Artiste, Notation
 
http://img256.imageshack.us/img256/3935/pltreelettre5vu.jpg
Label: Ecoutes/Par Lettre/Artiste/Album-*
Query: (various MISSING)  AND (artist IS *) AND (__replaygain_album_gain IS *) AND (play_counter IS *)
[x] foo_playlist_gen format
 

  • Pour avoir un affichage uniquement sur le champ artist :

Format: $upper($cut(#artist#,1))|#artist#|$repeat($char(9733),%rating%)$if(%various%,VA,$if(%album artist%,%album artist%,#artist#)) - '('[%date%]')' [%album%]|... (affichage de l'album)

  • Pour avoir un affichage sur l'album artist si il existe, et sur l'artist sinon :

Format: $upper($cut($if(%album artist%,#album artist#,#artist#),1))|$if(%album artist%,#album artist#,#artist#)|$repeat($char(9733),%rating%)$if(%various%,VA,$if(%album artist%,%album artist%,#artist#)) - '('[%date%]')' [%album%]|... (affichage de l'album)

  • Pour avoir un affichage sur les deux champs en même temps :

Format: $upper($cut(@any<album artist,artist> ),1))|@any<album artist,artist>|$repeat($char(9733),%rating%)$if(%various%,VA,$if(%album artist%,%album artist%,#artist#)) - '('[%date%]')' [%album%]|... (affichage de l'album)
 
 
 
Query:
- various MISSING : exclure les albums VA
- artist is * : le champ artist existe
- __replaygain_album_gain IS * : l'album est tagé
- play_counter IS * : la piste a déjà été écoutée
Format:
- $upper($cut(#artist#,1)) : 1° lettre de l'artiste avec gestion tags multivalués
- #artist# : artiste (gestion tags multivalués)
- Album, précédé de sa notation


Message édité par Solt le 04-01-2006 à 11:11:51
Reply

Marsh Posté le 04-01-2006 à 12:35:51    

png on a dit :o

Reply

Marsh Posté le 04-01-2006 à 14:01:30    

C'est une ancienne image de la même série que les précédentes... promis, quand je trouve le temps, je les refais toutes en png.

Reply

Marsh Posté le 15-01-2006 à 03:41:59    

je viens de me lancer dans la configuration de ce plug in !
merci pour le topic !
 
j'ai un bug de temps en temps dans l'affichage : le premier element de ma liste est a une icone de dossier avec un F dessus ...
il ne se passe rien quand je cliue dessus, et je ne peux le supprimer ...
puis ildisparait apres quelques refresh ...
je ferais un screen quand ce se reproduira ...
 
edit : voila le screen :
http://gandalf.vef.free.fr/img/bug_playlist_tree.png


Message édité par gandalf-ze-wizard le 15-01-2006 à 14:48:48

---------------
<°)))>< ... n'hésitez pas à faire appel à moi !
Reply

Marsh Posté le 16-01-2006 à 15:57:03    

Désolé, j'ai jamais vu...
Le mieux est que :
- tu verifies que tu utilises bien la dernière version
Si ca persiste, va et expliques ton problème avec le contenu de ta query et ta copie d'ecran. Tu devrais trouver une réponse.

Reply

Marsh Posté le 14-02-2006 à 17:15:25    

génial, mais atroce, mon foobar est pass& de 10 Mo de RAM en conso à 50 !!! :'(

Reply

Marsh Posté le 15-02-2006 à 11:17:58    

eh ouais, c'est un peu le PB, plus tu fais de queries, et plus tu as de morceaux, et plus ça explose...
 
Ma solution, ne pas avoir toutes les queries calculées tout le temps, c.a.d, quand j'ai besoin de faire un type de recherche, je vais sur la query et je fais un "refresh", et quand je n'en ai plus besoin, je vais dessus et je fais un "remove/childrens" et je ne garde en mémoire que les résultats de celles qui me sont le plus utiles. Toutes les autres restent calculables au besoin.

Reply

Marsh Posté le 23-02-2006 à 14:23:10    

Comment on peut faire pour avoir un classement "by directory structure" comme avec l'album liste par ex ?

Reply

Marsh Posté le 19-04-2006 à 16:52:04    

zurman a écrit :

Comment on peut faire pour avoir un classement "by directory structure" comme avec l'album liste par ex ?


Je m'auto répond : $replace(%_path%,\,|) :pt1cable:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed