Reply 2080 of 2175, by Spesek
Falcosoft wrote on 2024-12-26, 18:12:2. Direct rendering by Bassmidi is only possible if you send the Midi file directly to Bassmidi, meaning such direct rendering would bypass the whole parser/engine of Midi Player. Custom controller/SysEx settings and other overrides would not apply meaning it could sound completely differently compared to real-time playback by Midi Player.
Such direct rendering function is available e.g. in Coolsoft's VMS if you need it anyway:
I think I can think of a solution:
While I'm no BASS user, I'm guessing that it has some sort of method to render audio not to speakers, but to memory or file.
What FSMP can do is:
- Execute first MIDI event
- Calculate time in audio samples to the next event
- Tell BASS to render the said amount of samples to the output wav file (or memory). And wait for it to render, not wait for the time to pass. That's the main difference
- Execute the next MIDI event
- Repeat step 2 until end marker is reached.
And Voila! MIDI file rendered offline with channel overrides! 😁
BTW, recording should not lag unless the playback is also lagging. And when the playback is lagging it means there are some more serious problems that should be fixed anyway. Maybe the lagging is related to using FSMP in Wine?
That's the problem with real-time playback. It can sometimes lag... just because. Either Wine or Windows can have a stroke sometimes and you have to rerecord a 7 minute song... again.