Involved People Node v1.3 (2009-09-01) [MM3]

Download and get help for different MediaMonkey for Windows 4 Addons.

Moderators: Peke, Gurus

k_r_eriksson
Posts: 185
Joined: Mon Aug 14, 2006 4:26 pm
Location: Gotland, Sweden

Involved People Node v1.3 (2009-09-01) [MM3]

Post by k_r_eriksson »

A new version is being developed by SimonORorke here: http://www.mediamonkey.com/forum/viewto ... =2&t=56275

Description:
Involved People Node adds an involved people node (D'oh!). The involved people field must use the mask "Role1: Name1; Role2: Name2" OR "Role1:Name1;Role2:Name2". The node now support filters.

Download:
Version 1.3
InvolvedPeopleNode.mmip

What is new:
v1.3: September 1, 2009
- Added support for filters.
- Fixed: Problem with sql.

v1.2: August 31, 2009
- Fixed: Error handling. The script doesn't quit if an involved people field uses the incorrect mask.
- Fixed: Showing tracks from names that are part of another name, for example "Contrabass" and "Bass".
- Changed: Involvement and Involvee to Role and Person.

v1.1: August 29, 2009
- Added: "By involvement" and "by involvee"
- Fixed: Mask needed less strict.

v1.0: August 29, 2009
- Added Involved People Node
- Created MMIP Installation Pack

Installation:
Just double click on the InvovledPeople.mmip file; if you are on Vista make sure you have MM3 set to "Run as Administrator"; if you downloaded the installation package with IE7 and it changed its extension to a .zip, you should first change it back to a .mmip.
Last edited by k_r_eriksson on Tue Sep 01, 2009 3:23 pm, edited 6 times in total.
Mizery_Made
Posts: 2283
Joined: Tue Aug 29, 2006 1:09 pm
Location: Kansas City, Missouri, United States

Re: Involved People Node v1.0 (2009-08-29) [MM3]

Post by Mizery_Made »

Dude! Dude! Awesome! *downloads*

I don't know if it's by design or not, but the functionality seems a little limited. I tested a file, entering "Vocals:Tech N9ne;Vocals:Big Scoob;Vocals:Messy Marv" in the IP field. Happy to then see a "Vocals" node, and have it open up and see those three names listed. However, clicking on the Vocals node, the test track appears in the Main Window as expected. However, clicking on the sub nodes (the names), nothing is added to the main window.

I figured I'd throw it out there as something to think about. A while back, I put up this post where I called for some improvements in the MM IP field, as well as a built in IP node. In it, I tossed around the idea of the node containing two sub nodes, which would allow you to browse either by name (so you can find a person, and then have sub-nodes showing their roles, as opposed to having to look for someone via their roles). This something that might be possible to accomplish?

EDIT: Nevermind on that first bit. Turns out it's because I didn't put spaces between the roles, names and such. Though, is it at all possible to handle a "Role:Name" the same was as you might "Role: Name"?
k_r_eriksson
Posts: 185
Joined: Mon Aug 14, 2006 4:26 pm
Location: Gotland, Sweden

Re: Involved People Node v1.0 (2009-08-29) [MM3]

Post by k_r_eriksson »

New version!!!

v1.1: August 29, 2009
- Added: "By involvement" and "by involvee"
- Fixed: Mask needed less strict.

@Mizery_Made
This version should give you what you want. It uses

Code: Select all

    | Involved People
    | \_ By Involvement
    |    \_ Drums
    |       \_ Rob Bourdon
    |       \_ Mark "C-Bass" Causley
    |       \_ Travis Barker
    |    \_ Guitar
    |       \_ Brad Delson
    |       \_ Dave "Phoenix" Farrell
    |       \_ Michael Scott
    |       \_ Phil Thacker
    |       \_ Slash
    |    \_ Keyboard
    |       \_ Mike Shinoda
    |    \_ Turntables
    |       \_ Joe Hahn
    |       \_ Tom Sawyer
    |    \_ Vocals
    |       \_ Chester Bennington
    |       \_ Mike Shinoda
    |       \_ Powerdise
    | \_ By Involvee
    |    \_ Brad Delson
    |       \_ Guitar
    |    \_ Chester Bennington
    |       \_ Vocals
    |    \_ Dave "Phoenix" Farrell
    |       \_ Guitar
    |    \_ Joe Hahn
    |       \_ Turntables
    |    \_ Mark "C-Bass" Causley
    |       \_ Drums
    |    \_ Michael Scott
    |       \_ Guitar
    |    \_ Mike Shinoda
    |       \_ Keyboard
    |       \_ Vocals
    |    \_ Phil Thacker
    |       \_ Guitar
    |    \_ Powerdise
    |       \_ Vocals
    |    \_ Rob Bourdon
    |       \_ Drums
    |    \_ Slash
    |       \_ Guitar
    |    \_ Tom Sawyer
    |       \_ Turntables
    |    \_ Travis Barker
    |       \_ Drums
I also made it handle "Role:Name" the same way it handles "Role: Name".
onenonymous
Posts: 374
Joined: Sat Feb 02, 2008 1:09 pm
Location: Texas

Re: Involved People Node v1.1 (2009-08-29) [MM3]

Post by onenonymous »

Great script. :D

I get an error on trying to expand the "By Involvee" node. Subscript Out of Range: '[number: 1]' - on line 194. Putting in an "On Error Resume Next" statement at the beginning of the procedure lets it work.

Also, my MusicBrainz Tagger script can fill the Involved People with entries like : "Instrument-DrumMachine Synthesizer: Alan Parsons; Instrument-Bass: David Paton; Instrument-Additional Drums: Stuart Elliott; Instrument-Guitars: Ian Bairnson". Could you enhance your script to split the involvement at the '-' into sub-nodes?

Code: Select all

 | Involved People
    | \_ By Involvement
    |    \_ Instrument
    |       \_ Additional Drums
    |           \_ Stuart Elliott
    |       \_ Bass
    |           \_ David Paton
    |       \_ DrumMachine Synthesizer
    |           \_ Alan Parsons
    |       \_ Guitars
    |           \_ Ian Bairnson
Mizery_Made
Posts: 2283
Joined: Tue Aug 29, 2006 1:09 pm
Location: Kansas City, Missouri, United States

Re: Involved People Node v1.1 (2009-08-29) [MM3]

Post by Mizery_Made »

Great update. I think the fact it can now handle entries with spaces and not gives the user a little more flexibility in what they determine "looks best" or is "easiest to enter." I love the addition of the Name tree, as I think it would be useful to find a person and see everything you've got for them, as opposed to going by Role. Go through the tree and find a person who normally does one role, open it up to see another and can be all, "Oh! I forgot about him doing this on that track, sweet! :)" You know? Haha.

You might play around with the names of the nodes a little though. I just tossed those two in as the only thing that came to mind at the time. "By Role" & "By Person" might work just as well, without sounding all... yeah. Up to you though, doesn't really effect the functionality or anything, just a cosmetic matter.

Oh, and I'm not getting an error like you are, One. While it also might be interesting to be able to further 'group' involvements, I'm not sure "-" would be a good choice for a splitter. Though, seeing as those roles are put there by MusicBrainz, you surely don't want to have to go through and convert the "-" to some other character for them to work, and you also run into the trouble of "Well we could use this character"... "But then it could get in the way of this entry." Haha. Only thing that jumps to mind though would be where someone is credited as a "Co-" something. *Shrugs*
k_r_eriksson
Posts: 185
Joined: Mon Aug 14, 2006 4:26 pm
Location: Gotland, Sweden

Re: Involved People Node v1.1 (2009-08-29) [MM3]

Post by k_r_eriksson »

You get an error when an involved people is missing the ":". It can turn up on three or four places. I'll have to rewrite some of the code. "On Error Resume Next" dosen't solve all of them.

I like Involvement and Involvee. Role and Person is also good. Allmusic calls it Credits and Name. I don't care that much so what do you think?

I can try to split the involvement at "-" into sub-nodes but first I like to ask you how to handle it.

"Instrument-Bass" will split into 3rd lvl "Instrument" and 4th lvl "Bass".
If no "Instrument-Keyboard" exist I'll put "Keyboard" as a 3rd lvl node
Where should I put "Bass"? As a 3rd lvl "Bass" or together with the 4th lvl "Bass"? If I put is as 3rd lvl I get Bass in two places. If I put it in 4th lvl I can turn up with Bass in lvl 4 and Keyboard in lvl 3 (if no instrument-keyboard exist). I can remove the instrument part and put "Instrument-Bass" as a 3rd lvl node "Bass". But that is no good too. And then we have the "Co-" problem. What do you think???
onenonymous
Posts: 374
Joined: Sat Feb 02, 2008 1:09 pm
Location: Texas

Re: Involved People Node v1.1 (2009-08-29) [MM3]

Post by onenonymous »

Yeah - I started thinking about those concerns after I posted my request. Since there are multiple possibilities, I'm not sure what to suggest.

As I was checking though, I did come across one thing. I have only one track with just Bass in it (as opposed to Instrument-Bass):

Code: Select all

Bass: Steven Gustafson
If I click on the Node for Bass though, it shows 46 files - it gets all of the tracks that have "Instrument-Bass:xxxx" as well as just "Bass:xxx". Expanding the Bass node shows the one Artist node for Steven Gustafson and clicking on him shows just the one track as it should.
Mizery_Made
Posts: 2283
Joined: Tue Aug 29, 2006 1:09 pm
Location: Kansas City, Missouri, United States

Re: Involved People Node v1.1 (2009-08-29) [MM3]

Post by Mizery_Made »

Regarding the naming of the nodes, I think it just might be a little problematic at times to have those two node names so close. "By Involvee" & "By Involvement," know what I mean? They also don't really look/sound as "user friendly" as a "By Role"/"By Person" set-up might for instance. Though I guess "Involvee" & "Involvement" fit, since it's the "Involved Person" node, haha. Like I said though, it's really just a minor thing, what's important is the functionality. :)
onenonymous
Posts: 374
Joined: Sat Feb 02, 2008 1:09 pm
Location: Texas

Re: Involved People Node v1.1 (2009-08-29) [MM3]

Post by onenonymous »

BTW- not that this isn't a great script :D - but you can also do it with MagicNodes...

Code: Select all

<Group|Name:Involved...>\Involved People-Role\<Involved people|Split by::|Statistic:Count(All)|Unknown:No>\<Involved people|Right of::|Right until:;>

Code: Select all

<Group|Name:Involved...>\Involved People-Person\<Involved people|Right of::|Right until:;>\<Involved people|Split by::|Statistic:Count(All)|Unknown:No>
Plus a few others:

Code: Select all

<Group|Name:Involved...>\Lyricists\<Lyricist|Statistic:Count(Tracks)|Unknown:No>\<Title>

Code: Select all

<Group|Name:Involved...>\Composers\<Composer|Statistic:Count(Tracks)|Unknown:No>\<Title>

Code: Select all

<Group|Name:Involved...>\Conductors\<Conductor|Statistic:Count(All)|Unknown:No>\<Album>\<Title>
k_r_eriksson
Posts: 185
Joined: Mon Aug 14, 2006 4:26 pm
Location: Gotland, Sweden

Re: Involved People Node v1.1 (2009-08-29) [MM3]

Post by k_r_eriksson »

onenonymous wrote:BTW- not that this isn't a great script :D - but you can also do it with MagicNodes...

Code: Select all

<Group|Name:Involved...>\Involved People-Role\<Involved people|Split by::|Statistic:Count(All)|Unknown:No>\<Involved people|Right of::|Right until:;>

Code: Select all

<Group|Name:Involved...>\Involved People-Person\<Involved people|Right of::|Right until:;>\<Involved people|Split by::|Statistic:Count(All)|Unknown:No>
Plus a few others:

Code: Select all

<Group|Name:Involved...>\Lyricists\<Lyricist|Statistic:Count(Tracks)|Unknown:No>\<Title>

Code: Select all

<Group|Name:Involved...>\Composers\<Composer|Statistic:Count(Tracks)|Unknown:No>\<Title>

Code: Select all

<Group|Name:Involved...>\Conductors\<Conductor|Statistic:Count(All)|Unknown:No>\<Album>\<Title>
First it exist a composer and a conductor node. No need for MagicNodes. Second you can't do this with MN not the way I want it. The two nodes you added here only add the first person involved. Involved People = "Bass:Michael Green;Drums:James Green". MN adds Michael and ignores James. I want them all. You can do better nodes with MN. One for each type of role or one for each person but that means a lot of nodes and MN can't handle two of the same role in one involved people field anyway. In one of my tracks I have two different choirs in involved people. The "right of" finds the first one and skips the second. Involved People = "Orchestra: London Symphony Orchestra; Choir: London Symphony Chorus; Choir: London Welsh Male Voice Choir; Choir Master: Stephen Westrop". MN adds "London Symphony Chorus" and ignores "London Welsh Male Voice Choir".

I LOVE MN and use it a lot but this time it wasn't enough. That's the reason I made this script. For me it works just the way I want (with a few exceptions). It's tricky to handle all mask possibilities. I don't think I can so I think I will leave it as it with 3 levels as it is now. I'm working on the error handling and the problem with names beeing part of other names "Bass" and "Contrabass" for example.
onenonymous
Posts: 374
Joined: Sat Feb 02, 2008 1:09 pm
Location: Texas

Re: Involved People Node v1.1 (2009-08-29) [MM3]

Post by onenonymous »

k_r_eriksson wrote:The two nodes you added here only add the first person involved. Involved People = "Bass:Michael Green;Drums:James Green". MN adds Michael and ignores James. I want them all.
:oops:
k_r_eriksson wrote:I LOVE MN and use it a lot but this time it wasn't enough. That's the reason I made this script. For me it works just the way I want (with a few exceptions). It's tricky to handle all mask possibilities. I don't think I can so I think I will leave it as it with 3 levels as it is now. I'm working on the error handling and the problem with names beeing part of other names "Bass" and "Contrabass" for example.
Did I mention "great script"... :)
ZvezdanD
Posts: 3257
Joined: Thu Jun 08, 2006 7:40 pm

Re: Involved People Node v1.1 (2009-08-29) [MM3]

Post by ZvezdanD »

onenonymous wrote:you can also do it with MagicNodes...
Not now, but most probably with the next version. It would allow additional level(s) which I like in CATraxx (band member, guest musician, production) and it would work with any field, not only Involved people, e.g. Grouping, Custom1-5...

By the way, k_r_eriksson really made a great script. :)
Magic Nodes 4.3.3 / 5.2 RegExp Find & Replace 4.4.9 / 5.2  Invert Selection/Select None 1.5.1  Export/Create Playlists for Child Nodes 4.1.1 / 5.4.1  Expand Child Nodes/Expand All 1.1.2  Event Logger 2.7  Filtered Statistics Report 1.6  Track Redirection & Synchronization 3.4.2  Restore/Synchronize Database 3.1.8 / 4.0.1  Find Currently Playing Track 1.3.2  Queue List 1.2.1  Add to Library on Play 1.0.1  Tree Report for Child Nodes 1.1.1  Update Location of Files in Database 1.4.5 / 2.3  Inherit Child Playlists 1.0.3  Add Currently Playing/Selected Track(s) to Playlist 1.2
k_r_eriksson
Posts: 185
Joined: Mon Aug 14, 2006 4:26 pm
Location: Gotland, Sweden

Re: Involved People Node v1.1 (2009-08-29) [MM3]

Post by k_r_eriksson »

Thanks Mizery, One and ZvezdanD. It pleases me that you like the script. I have one problem thou. If a sql statement includes an "é" I get an error.

Error executing SQL... Songs.InvolvedPeople LIKE '%:Orchestre De l'Opéra National De Lyon' OR.... : near "Opéra"
k_r_eriksson
Posts: 185
Joined: Mon Aug 14, 2006 4:26 pm
Location: Gotland, Sweden

Re: Involved People Node v1.2 (2009-08-31) [MM3]

Post by k_r_eriksson »

New version!

v1.2: August 31, 2009
- Fixed: Error handling. The script doesn't quit if an involved people field uses the incorrect mask.
- Fixed: Showing tracks from names that are part of another name, for example "Contrabass" and "Bass".
- Changed: Involvement and Involvee to Role and Person.

Known problems: Unicode problem, for example "é"
ZvezdanD
Posts: 3257
Joined: Thu Jun 08, 2006 7:40 pm

Re: Involved People Node v1.1 (2009-08-29) [MM3]

Post by ZvezdanD »

k_r_eriksson wrote:I have one problem thou. If a sql statement includes an "é" I get an error.

Error executing SQL... Songs.InvolvedPeople LIKE '%:Orchestre De l'Opéra National De Lyon' OR.... : near "Opéra"
You don't have a problem because of Unicode characters, but because you have non-escaped single apostrophe. You should replace every string variable used in SQL queries with e.g.

Code: Select all

Replace(strCaption1, "'", "''")
Magic Nodes 4.3.3 / 5.2 RegExp Find & Replace 4.4.9 / 5.2  Invert Selection/Select None 1.5.1  Export/Create Playlists for Child Nodes 4.1.1 / 5.4.1  Expand Child Nodes/Expand All 1.1.2  Event Logger 2.7  Filtered Statistics Report 1.6  Track Redirection & Synchronization 3.4.2  Restore/Synchronize Database 3.1.8 / 4.0.1  Find Currently Playing Track 1.3.2  Queue List 1.2.1  Add to Library on Play 1.0.1  Tree Report for Child Nodes 1.1.1  Update Location of Files in Database 1.4.5 / 2.3  Inherit Child Playlists 1.0.3  Add Currently Playing/Selected Track(s) to Playlist 1.2
Locked