The file format of .mid is not a Sonar format -- it's a conventional standard, so Sonar may not be able to support all the features and data relationships of a Sonar project when it is saved as a .mid file.
Without trying your recipe, I'll just hypothesize:
About the file format of .mid:
Maybe it does not support the idea of a sysex bank as Sonar does, i.e. as a data element not in any track.
It does support sysex events in tracks.
So how should Sonar save .mid files when the project has sysex banks?
My guesses (WAGs to be sure):
- Projects with auto send banks could maybe save those sysex messages in a .mid track. Playing a .mid file would then send those sysex messages before sending notes.
- Banks not set to auto send don't have any convention for storing in .mid so they get dropped. They should not be saved in any .mid track, because then they would be sent whenever the file is played.
How should Sonar load .mid files with sysex events on tracks?
More WAGs:
- A sysex event at the very beginning of a .mid track could be loaded into a Sonar sysex bank and marked auto send.
- Subsequent sysex events from the .mid might be loaded as events into Sonar's tracks (check this?)
- and they could also be loaded as Sonar sysex banks not marked auto send (as reported by Conley)
Saving a project loaded from such a .mid file should produce a nominally identical .mid file. However, setting the auto send flag on those banks that also appear in Sonar tracks may cause the sysex events to get doubled in the .mid tracks when the file is saved ... if my guesses are correct.