I'm developing a controller, and I wonder if there is a typical startup protocol? Like, send a bunch of CC default values, or SysEx Buffer, etc? I am thinking of including a program change to start a MIDI device in a sound bank for which the controller is intended (synth lead). (This of course is only helpful if the device happens to start with a GM bank.) What is considered best practice?
As far as I'm aware, there is no need or requirement to do anything like this. I don't think there is any Standard Set of instructions to send.
But, by all means, decide what commands are useful to you, and send them. Various commands that you MIGHT send would be totally depenent on the sending and receiving device, i.e. what commands might be sent to set the two devices into the best situation for YOU.
Remember that most SYSEX commands may be machine dependent, and there may be little point in sending - say - Roland specific SYSEX to a Yamaha device.
I would normally send a RESET ALL CONTROLLERS, and an ALL NOTES OFF as I may have been playing other midi files previously and few midi files reset at the end.
Geoff
May I suggest looking among the specifications, available to download via the "specs" menu item, and get three documents, in pdf format, the GM1, the GM2 and the GM recommendations specs.
These tell you what the recommended values are for various controllers, e.g. channel volume 100, expression 127, and pan centred, etc. The normal default for program change is recommended as both bank selects set to 0 and program change 0.