191787
Hi all! Been a bit inactive lately. Just not feeling it; my will to participate tends to come and go.
Anyway, I've been working on an MPTM for whenever it appears next, and decided to incorporate MIDI out to the MSGS Wavetable Synth. This is because, according to the format rules, you can, in fact, do this.
As for why, I am under the impression that because all computers that can run OpenMPT are Windows-based, and all computers with Windows have the MSGS Wavetable Synth as an available output, there is no reason not to allow the MIDI output to do this.
However, I ran into a really... fun quirk.
It is absolutely TERRIBLE at handling latency. You have to specifically set up the sound card settings to get the audio from the mptm to sync up with the heavily-delayed output from the MSGS Wavetable Synth. The only way I have found to get it to play in time is with the following settings, most of which are accessed via Ctrl+F1 by default, under the "Sound Card" tab:
If any of these settings are different to the above, MIDI playback will be out of time. After testing, the master sample rate does not matter, luckily.
So I have to pose the question: do we still allow this, slightly special playback considerations and all? Or should we maybe rethink this rule? Obviously, we already specify Interpolation settings for rendering in s3xmodit a lot. But you can change that with a simple drop-down menu, and it's one setting. I don't know that everyone who cares about listening to the original file will actually know how to change all of this. And incorrect interpolation isn't detrimental to a render in most cases. But, MIDI timing being off is a completely different beast.
On top of that, just rendering the audio file doesn't work. The MIDI stuff isn't included when rendering to .wav; you HAVE to record via loopback because the MIDI data is sent in real time (which is part of why these issues arise in the first place).
Sorry for the long read. Best wishes!
Anyway, I've been working on an MPTM for whenever it appears next, and decided to incorporate MIDI out to the MSGS Wavetable Synth. This is because, according to the format rules, you can, in fact, do this.
As for why, I am under the impression that because all computers that can run OpenMPT are Windows-based, and all computers with Windows have the MSGS Wavetable Synth as an available output, there is no reason not to allow the MIDI output to do this.
However, I ran into a really... fun quirk.
It is absolutely TERRIBLE at handling latency. You have to specifically set up the sound card settings to get the audio from the mptm to sync up with the heavily-delayed output from the MSGS Wavetable Synth. The only way I have found to get it to play in time is with the following settings, most of which are accessed via Ctrl+F1 by default, under the "Sound Card" tab:
- 250ms of latency. (This is setting applies to all modules. Lower values mean less delay between the audio playback and the
- Period of 1ms. (This is essentially the refresh rate of the VU meters. It also applies to all modules. Increasing this value adds additional delay to the audio, but decreases processing requirements. Crucially, increasing this value also means the MIDI timing is sloppier even when you've adjusted for latency correctly.)
- Set MIDI I/O "Output Latency" to -221ms. (This value is saved with the module, as it is a parameter on the MIDI I/O Plugin itself. It essentially offsets the timing of the MIDI plugin; -221 is placing MIDI playback earlier than the module's audio by 221ms, which, on my machine, with the above settings, was the delay between the MSGS Wavetable Synth and the audio of the module. Your mileage may vary. I have no idea. Ideally, some volunteers could help me test this. Get in contact on Discord via DMs. If interested. I can also post a test case in the general chat on Discord.)
If any of these settings are different to the above, MIDI playback will be out of time. After testing, the master sample rate does not matter, luckily.
So I have to pose the question: do we still allow this, slightly special playback considerations and all? Or should we maybe rethink this rule? Obviously, we already specify Interpolation settings for rendering in s3xmodit a lot. But you can change that with a simple drop-down menu, and it's one setting. I don't know that everyone who cares about listening to the original file will actually know how to change all of this. And incorrect interpolation isn't detrimental to a render in most cases. But, MIDI timing being off is a completely different beast.
On top of that, just rendering the audio file doesn't work. The MIDI stuff isn't included when rendering to .wav; you HAVE to record via loopback because the MIDI data is sent in real time (which is part of why these issues arise in the first place).
Sorry for the long read. Best wishes!