I think the more than I try to fix this player, the worse it gets.
I find it somehow surreal - I can write a semidecent soft-synth in a couple of weeks but I can't code a proper player!
Yesterday's issue of not hearing anything is totally due to the player and its wrong timing. I'm not sending events when they should be sent, so nothing happens when it should be happening.
Also, when testing the synth embedded in the VST host, the host asked all the time for quite small fragments of audio (around 300-512 samples). But SDL requires something in the order of 1024 upwards to get a not-too-cracked sound. 2048 is safe. The fact is that a lot of things can happen in that long interval, and if your player code is kind of broken, like this one, you'll miss events, like I'm missing. Events such as notes! ARGH!
I'm also quite tired so I think I'm going to leave it as it is today and will reconsider things tomorrow with a fresh mind... wish me luck! :-D