I use different MIDI channels within the soft synth. I know that is not exactly what you were looking for, but it works.
You can also have another instance on another track if you need more than 16 changes.
This is a very common technique for string libraries in which you need multiple articulations available in a song (like tremolo, pizz, legato, marcato, etc.). I prefer controller's or keyswitches but that doesn't work with every library. With all these solutions, unlike an old hardware synth, you have to load all the sounds into memory before you start the song.