@jonap, you can set all artists at once using MultiArtist API tag. all artists must be separated by \0, and after \0 you can use either letter for artist or \x01, \x02, \x03 for guest artists, performers, etc. i write this from memory, but you can take a look at the source code of AT&RT plugin, pay attention to SetTag() function in the main .cs file.
Wow thanks boroda, didn't think this was possible
Though I need some help
I tried looking at the AT&RT plugin code, but your plugin other than crazy good, is also pretty huge and hard to understand for novices like me, so I wasn't able to figure out the infos I needed from it
But by making some attempts, I was able to get something:
Exemple: want to set Led Zeppelin and Madonna as individual Artists, Queen as Guest Artist and Bon Jovi as Performer
Led Zeppelin\0 Madonna\0\x01 Queen\0\x02 Bon Jovi
(https://i.imgur.com/9M5Kl22.png)
As you can see, there is space at the start of the tag, so I think to remove the space in the code
Led Zeppelin\0Madonna\0\x01Queen\0\x02Bon Jovi
(https://i.imgur.com/QtEckpg.png)
Now Madonna and Queen look fine, but Bon Jovi became +on Jovi and lost the Performer status, that's cause \0b is some special character while \0m and \0q are not
So I tried looking at this special characters and realize there is a bunch of them, when the tag starts with a,b,c,d,e and f
Led Zeppelin\0\x01aaa\0\x01bbb\0\x01ccc\0\x01ddd\0\x01eee\0\x01fff\0\x01ggg
(https://i.imgur.com/ZVIwrol.png)
so my stupid question is: how do I escape the special characters that break the tag?
Wow thank you, it worked
I think there is no difference between "x" and "u" but anyway the solution is to use "0001" instead of "01" and so on (1 for guest, 2 for performer, 4 for remixer)
So for just artists, you need \0, for other tags, you need \0\x0001 [1-2-4]
So for exemple a final string should be this:
ART\0ART\0\x0001GUEST\0\x0002PERF\0\x0004REMIX
(https://i.imgur.com/H2UgX4O.png)
Now just to go further and help someone having the same trouble I had, I want to ADD rather than SET, an entry in the multiartist tag, meaning for exemple adding a guest artist to already set unknown number of artists/guests/performers etc
To do that we need to check if multiartist tag is empty first ("") and in that case use the artists tag (basically metadata 32, while multiartist is metadata 33)
I say this cause if you previously set Artist only from the artist tag, the Multiple Artist Splitter view shows the artist as individual artist but in reality multiartist is still empty till you add a second one (or if there is only 1 entry, if it's different than the displayed artist)
I hope that was understandable as I am not sure I explained it well
And thanks to boroda for solving my problem