Hello all and happy holidays to everyone!
First off, a big thank you for "
access to Multiple Artist Splitter entries". It's awesome and I really mean it!
I have been using the multiple artist splitter and filled guest artist fields in. But I have also tagged my music files so that <Title> included some information about guest artists. For example:
Foo Bar (feat. Alice and Bob)Now I wish to display <Title> without that extra part (from where "feat" starts) along with a column showing <Artists: Guest>. Fixing the first is not as easy as the latter:
- I can manually re-tag every <Title> and remove (feat. Alice and Bob)
-- but that is very time consuming and leaves me unable to undo the changes - I can create a Custom Tag, <Title without feat.>, and use the "Advanced search and replace" to fill in all custom tags with this alternative title.
-- However it needs to constantly look for changes in the library to have the tags in sync and it costs one custom tag - Using the available functions I can sort of create a virtual tag that fixes this:
$Replace($Replace($Replace($Replace($Replace(<Title>," and ","; "),", ","; "),<Artists: Guest>," ")," (feat. )"," "),"; "," and ")
-- However, it is quite... ugly. And with its flaws. But it actually works with multiple guest artists in some cases!
I'm thinking that the best way to go is to use Virtual Tags, but I don't think current functions will do it. Or maybe I have overlooked something? The one I created tries to replace
Foo Bar (feat. Alice and Bob) into
Foo Bar (feat. <Artists: Guest> and after that replace the whole last part with nothing.
Now,
what would be the best field function to add to MusicBee to solve this problem? And at the same time which might solve other problems too? I'm looking for something more general than specific to this particular problem.
I'm thinking that if the
$Contains function would return a number of the index where the string first was found, then it could be combined with the
$Left function to solve this case. But then, changing the behaviour of a function would simply cause even more errors...
What about some substring function, which returns the text between two indexes? And where the index can be 0 to mark the beginning of the string and -1 to mark the end so you don't also need a function to count how long the string is. If that was available and also some function which could return where
(feat is located in the string, then that would be awesome. And probably good for many other tagging purposes as well!
What do you think? Any other ideas?