To change your program via MIDI, you need to send 3 standard messages:
1. the first one is to select the Bank.
You need to send a "Control Change" message, number 0 ("Bank MSB"), with as value the bank index; for instance, 5 for bank "J.M Blanchet".
Beware, even if in MIDI we count starting "0", here you should count starting "1" because value 0 is obviously unused.
2. the second one is to select the SubBank.
You need to send a "Control Change" message, number 32 ("Bank LSB"), with as value the subbank index in the selected bank; for instance, 3 for subbank "EFX" in bank "J.M. Blanchet".
Same remark on counting from 1.
3. the third and last one is to select your program.
You need to send a "Program Change" message, with as value the program index in choosen bank/subbank; for instance 1 for program "JMB Hardcore" to go on previous example.
Here, we'll count starting 0; from the MIDI point of view, some softwares can display 1 for MIDI value 0 when changing the program.