Now, how to realize this through expressions?
Currently there's no way to get access to other songs data from expressions. If we would had this possibility, then the problem (and I assured others have this problem too) could be solved particularly
only for New Songs in
"Find and Replace" Dialog by writing an Expression with specific functions that allow to gather data of other songs in library. Because for each field the Find/Replace operation should be applied separately, a possibility to perform Batch Find/Replace operations (and certainly a possibility to save Batch operations as a preset) is necessary. Example of Find/Replace operations:
- Gather all songs of currently processed song's [Artist] and apply following Artist-related fields data: [Artist Bios], [Artist Genre], [Artist Nationality]
[/li]
- Gather all songs with same [Artist]-[Name] Values compared to current song's [Artist]-[Name] and apply following Song-related Field Values: [Genre], [Genre Style], [Language], [Lyrics], [Mood].
But, we can have a problem when other "same" songs already have different [Lyrics], [Genre] or any other [Field] that we want to apply to the New Songs. In that case a Dialog should appear with a list of
matched songs to allow the user to preview any of listed songs and select appropriate Value and an option to apply this selection to all of the listed songs, to put All these songs to right/same Values.
But, what if while listening to a song, we want to change/add data of one of Song-related fields ([Rating], [Tempo], [Mood], [Similarity], etc.)? We can't do this instantly, we can't change the Field data without performing additional tasks:
- Currently we have to first perform the "Context Menu > Locate > Advanced > Name" command and Fill the necessary data (Ex. [Rating]) to all related songs.
- Even by having a possibility to gather and apply data from similar songs of the Library, we can't do this instantly. We would have to Fill the Data to for Current Song, then perform the "Context Menu > Locate > Advanced > Name" command, then select all other files and perform a "Find and Replace" Batch operation to apply the data automatically to all related songs. As you can see this way is even more tedious than previous in current case (that's not true for Newly added Music).
Now, after reviewing the problem and the possible solutions, here is a Total Solution to this problem: An Option in
"Options" dialog, to create groups of Fields, that share Field Values among same Fields. I propose to create following Factory Default groups (when this functionality will be realized):
- Same Album Artist (auto): [Artist Bios], [Artist Genre], [Artist Nationality]
- Same [Album Artist (auto)]-[Album]: [Album Notes], [Album Type], [Album Rating]
- Same [Artist]-[Name]: [Chart], [Genre], [Genre Style], [Language], [Lyrics], [Mood], [Preference], [Rating], [Situation], [Subject], [Tempo]
Of course there should be examples to each of the Grouping in Help File. I could do this if time will come.
By linking/grouping Fields, there would be no need to perform any of represented tasks. It would be enough to easily change Field Values of currently playing song without worrying about duplicate/similar songs as changes would as well reflect to other songs Field Values. Some concluding examples:
- After changing [Artist Bios], all songs of Same [Album Artist (auto)] will get this Artist-related data automatically
- After changing [Lyrics] or [Tempo] of a song, all songs of Same [Artist]-[Name] will have this same Song-related data automatically
- After changing [Album Notes] or [Album Rating] of a song, all songs of Same [Album Artist (auto)]-[Album] will gather this same Album-related Data automatically
As a result, independently of how and where you are browsing your library, you will not have to worry about duplicates. Of course in case if you have same [Artist]-[Name] songs but with different content, you have to add another [Version] Field to particular songs, to differentiate them. Values examples for such Field: "Remix", "Club Mix", "Long", "Jazzy", etc. So that you can create additional Field groups. Ex.
- Same [Artist]-[Name]: [Language], [Lyrics]
- Same [Artist]-[Name]-[Version]: [Chart], [Genre], [Genre Style], [Mood]
Also, by doing this, you have to change your "[Name]" Column with an expression like
"Clean([Name] /([Version]/) If(IsEqual([Album Soundtrack],),,/(from [Album Soundtrack Type] "[Album Soundtrack]"/) ) )"
Of course a Field can't be added simultaneously to several Field Groups. Design of "Customize Toolbar" Dialog can be used for this.
Perhaps this functionality should be added to MC12 alpha