Script de recherche

Pour les discussions en francais

Moderator: Blake

Gilles Pas already in use

Script de recherche

Post by Gilles Pas already in use »

Je voudrais créer un script qui recherche despistes dans la bibliothèque pour les ajouter à la lecture en cours.
Je ne sais pas ajouter à la lecture en cours. je croyais le faire avec : SDB.SelectSongList.Add (objSongListiterator.item)

sub RechArtisteAlbumEgaleArtiste
Dim objSongListiterator

Set objSongListiterator = SDB.Database.QuerySongs("Songs.Artist = Songs.AlbumArtist")
While Not objSongListiterator.EOF
SDB.SelectSongList.Add (objSongListiterator.item)
objSongListiterator.Next
Wend
Set objSongListiterator = Nothing
End Sub


(Pour diverses raisons, je n'affecte pas toujours les même données dans artiste et artiste de l'album.
Mais MM 3 entre met automatiquement à l'identique les valeurs Artiste et Artiste de l'album.
C'est vrai qu'il y a une case à cocher dans la fenêtre propriétés, mais on ne pense pas toujours à la décocher,souvent la modification n'est pas très visible...
Et je me retrouve régulièrement avec des artistes de l'album effacés...)
Gilles pas already in use

Re: Script de recherche

Post by Gilles pas already in use »

Bonjour,

N'ayant pas reçu beaucoup d'aide... j'ai adopté une solution provisoire : mettre à jour un tag (Perso5), puis effectuer une recherche sur ce tag. Le script devient :

sub RechArtisteAlbumEgaleArtiste
Dim list
Dim objSongListiterator

Set list = SDB.NewSongList
Set objSongListiterator = SDB.Database.QuerySongs("Songs.Artist = Songs.AlbumArtist")
While Not objSongListiterator.EOF
objSongListiterator.item.Custom5 = objSongListiterator.item.AlbumArtistName
list.Add (objSongListiterator.item)
objSongListiterator.Next
Wend
Set objSongListiterator = Nothing
list.UpdateAll
End Sub

Après exécution du script, il suffit de rechercher perso5 "est connu"
Eyal
Posts: 3116
Joined: Sun Jun 26, 2005 9:27 am
Location: Québec

Re: Script de recherche

Post by Eyal »

Salut Gilles,

Je ne saisie le but du script en premier lieu.
Trouver les pistes où Artiste=ArtisteDeL'album et les ajouter à la Lecture En Cours ?

Pour ajouter des pistes à la Lecture En Cours, il est plus simple d'utiliser:
SDB.Player.PlaylistAddTrack() --> [Une piste] ou
SDB.Player.PlaylistAddTracks() --> [Une liste de pistes]
--- http://www.mediamonkey.com/wiki/index.php/SDBPlayer ---
L'avantage sur SDB.SelectSongList c'est qu'il ne dépend pas du focus actuel dans MM.

Ex.:

Code: Select all

SDB.Player.PlaylistAddTrack(objSongListiterator.item)
:~)
Skins for MediaMonkey: Cafe, Carbon, Helium, Spotify, Zekton. [ Wiki Zone ].
Gilles pas already in use

Re: Script de recherche

Post by Gilles pas already in use »

Bonjour Eyal

Tout d'abord désolé de répondre si tard, j'avais abandonné l'espoir d'avoir une réponse sur le forum, et merci pour ta réponse.
Mon objectif est de corriger les modifications effectuées par MM "à l'insu de mon plein gré" : je ne compte pas le nombre de fois où j'ai du re-taguer les artistes de l'album parce que MM a décidé que ça devait être la même chose que l'artiste. Or la musique que j'écoute est surtout classique, en tout cas celle que je tague, et pour cette musique il est rare d'avoir l'artiste qui interprète ses oeuvres. Je me sers aussi du tag compositeur, mais en musique classique, il arrive d'avoir des oeuvres transposées ou arrangées par un autre artiste que le compositeur. Donc je garde l'artiste (comme depuis les tags v1) pour y mettre le compositeur et les arangeurs (séparés par ;), et dans le compositeur je note par exemple "Beethoven, Ludwig arr Liszt, Ferenc ". Dans artistes de l'album, je mets le ou les interprètes (orchestre, choeur, instrumentistes, chanteurs,.. séparés par ;).
De cette façon je peux retrouver facilement les compositeurs et arrangeurs par l'artiste, je vois sur une piste si c'est un arrangement et par qui par le tag compositeur, et quand Rachmaninov joue du Ravel, je sais que Ravel est le compositeur et Rachmaninov l'interprète.

C'est vrai que je ne joue jamais avec les playlist, sans raison particulière d'ailleurs... Mais maintenant, j'ai un ensemble de scripts qui fonctionnent sur la SelectSongList .
D'où l'interêt pour moi d'obtenir la liste, comme on l'obtient par une recherche, dans la lecture en cours.
Avec ton idée, il faudra ensuite que je charge la playlist dans la lecture en cours, ce qui n'est finalement pas plus facile que de positionner un tag... Mais l'avantage est de ne pas modifier les fichiers. Je vais donc chercher dans cette direction.

Merci donc pour cette bonne idée

Cordialement
Post Reply