@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
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
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
so my stupid question is: how do I escape the special characters that break the tag?