As usual, I may be asking some silly questions because you're missing vital information from your question.
With a range of 0 to 119, an increment of 20, there is clearly a problem.
How does the process 'wrap'? How does it interpret the current total (equal to, greater than, what?)
0 + 20 = 20. 20 + 20 = 40 ........ 100 + 20 = 120. Is that last treated as 119, reset to 0, or to 1?
If it goes to 1 on the wrap, then the next loop 1 + 20 = 21, that is greater than 20, so this might be missing the first waveform out?
That aside, this has nothing to do with any detailed table of midi controllers, as I assume this process is using a 'user/mfg defined controller' which are by definition 'undefined' as far as the midi spec is concerned. Just to clarify, however, which controller number is the process using?
Please also clarify what device is generating/sending the midi data, and what device is receiving/interpreting it. I'd guess that the operation is totally to do with the setup of those two devices (?) and pretty much nothing to do with midi as such.
Geoff