SoundHelix uses a custom real-time MIDI player for playing songs. The created thread for MIDI playback is given high priority. Still, it is possible that your system sometimes is too busy for playing the notes with exactly the correct timing. If that happens, SoundHelix will notice this and will try to "catch up" to the correct timing again as soon as it can. So if a note was played with a delay, SoundHelix tries to reduce the delay of the next note by the same amount to correct that timing glitch. This is done by comparing the expected wall clock time for each played tick with the real wall clock time. Adjusting the delay between ticks is done with nanosecond resolution. This way, SoundHelix keeps the overall timing accurate.
If you want to increase the timing accuracy of the player, you should increase the scheduling priority of SoundHelix (and possibly of your MIDI synthesizer software as well) using OS tools (Windows Task Manager on Windows or renice on Linux, for example).
Add new comment