Polyphone is using incorrect curves for both the attack and decay phases of the modulation envelope. The volume envelope is fine. The spec calls for the following curves for the phases of the modulation envelope:
- attack: convex
- decay: linear
- release: linear
...whereas Polyphone is using the following curves instead:
- attack: linear
- decay: convex
- release: linear
You can test this using the attached .sf2 file. Holding down a note will play the attack phase for 1 second (you will hear the pitch raise an octave), the hold phase for 1 second (the pitch will hold at the high point), and then the decay phase for one second (you will hear the pitch fall an octave).
Due to the convex curve, the attack phase should raise quickly at first, slowing its ascent near the top of the pitch shift. In the decay phase, the pitch should drop very uniformly through the entire second. You can hear how this is supposed to sound in the attached audio file "mod_env_curves_audigy2.ogg". You can hear the result in Polyphone in the audio file "mod_env_curves_polyphone.ogg".