So this is really strange. I was working with a midi file last night that had both volume and program change messages on all tracks.
When starting to play back the file it correctly read the volume message, but as soon as I stop the song, the volume on all track changed to another value.
Starting to troubleshoot this, I opened the list editor in Cubase and deleted every control message except the volume message.
Playing pack the song again, every thing worked as it should and the volume didn't changed. So I asked my self which of those control messaged changed the volume.
To my surprise it was the program change message (#PC) that did this. The PC message changed the program as it should, but somehow
it also change the volume. Anyone can explain why this happens?