Hey!
Quads can already be multiplied by a colour set in the inspector! Just make sure to check "silhouette" in the quad's settings. This makes it so the quad is treated like any other character in the mesh, so it gets coloured in the same way regular characters do. Works with animated quads, gradients, textures, everything.
***
Good point about quads not having a character in place for custom sound clips. The way internal sound clips works is pretty limited in this regard, so it might be better to get this working through an extension. I was planning on making the audio system more open-ended in a future update, so I think this will be the solution:
I'm going to be adding a unity event that gets invoked every time a sound clip is supposed to play, and that event can be extended in any way, either for support with other middleware like FMOD, or for specific instances like this. I'm imagining for quad output it could work as follows...
Every time a sound is supposed to play, check if the character is "\u2000" (This is a unicode character assigned to quads), and if so, check the data attached to this letter to figure out what the original tag was. (<q=myQuad1> vs <q=myQuad2>) Then using this infor, you can play the appropriate sound.
That said, I'll see if I can extend the sound clips class a bit. It's already got support for typed-out characters like "line break" and "space", so I think I'll be able to have it also check for matches with quads.
***
I think you might be confusing STM's voice system with something else? It's sorta just a renamed text macro system because <m> was already used for materials and <v> was free.
The whole idea behind STM's voices is that they get replaced with other text, even other tags. So if you have a voice named "small" defined as "<s=0.1><c=yellow>" then typing <v=small> will essentially place both of those tags there at once, and you'll get small, yellow text.
I could expand the sound clips class to include colour/effects, as one way to do it. So... it would be like a per-character tag for voices. You might also be able to solve this with Preparsing! I can send some sample code, but with preparsing, you can set up custom tags that get parsed before STM even attempts to parse text. So... you could set up a <mySpecialTag> thing and have it automatically put a colour tag before every character so you don't have to.
This one's a bit tricky to think about, but per-character voices are a neat idea and I don't think they'd be that hard to implement. I'd just have to put them in the same place as my current code for sound clips, I think. It could pair together with the above sound clip idea.
***
STM currently uses the resources folder to queue up effects. The way unity works with Resources, if an asset is in *any* folder named "Resources", unity considers it to be within resources. My default wave effect is stored at "Assets/Clavian/SuperTextMesh/Resources/STMWaves/default.asset", but if you were to store it at "Assets/MyAssets/Resources/STMWaves/default.asset", Unity doesn't see the difference. Just make sure to put it in a folder called "STMWaves" or whatever the appropriate class is. This division is here because... when Unity tosses everything into one Resources folder, it would be really annoying to tell the different classes apart without the subfolders. I also don't want this interfering with other assets that might use the Resources folder.
You're free to delete the sample effect files, by the way! All of them except the "default" ones aren't needed.
***
Anyway, I hope that helps. For now, you might be able to extend STM using preparsing or the OnPrintEvent() for image effects and audio, respectively.
Last-minute thought about randomized colours tho: Try using a rainbow gradient, had try turning off "smooth gradient" and setting it to repeat often. That should give a randomized colour effect pretty quickly.