07-29-2022, 05:13 PM
(07-28-2022, 10:56 PM)mnrvovrfc Wrote: MIDI is crazy hard to get right, even on faster computers than what faced programmers in decade-2000, while multimedia was beginning to be prioritized in Windows, and Sonic Foundry ACID Music and Cakewalk Professional software were considered "magical". A few years ago on 32-bit Ubuntu Studio from one music app I triggered via JACK and MIDI the standalone Qsynth (SF2 player). Trying to do drum beats at fast tempos sucked because synchronization was bad. While playing pads and other slow long notes it wasn't noticed as well.
Recording MIDI on the fly and constraining note events to beats or the like, is even harder because some people actually prefer "humanization" of rhythms but one is often turned off with how a music app handles his/her own computations with an external MIDI keyboard. Take for instance, a drummer beginning to play a bit slower than the "project" tempo and very slowly but steadily speeds up to where he/she should be and the rest of the band goes along with him/her. That's why some people have foolishly dismissed some music applications very good at MIDI but not as good as certain "dongleware" with handling audio. They were never interested in triggering synthesizers or into sound design for film composing or doing anything else with MIDI if they could only treat any computer as high-quality multitrack recorder.
To do audio recording as well as playback, and the chance to do both at the same time, might have to interface with Portaudio or such other third-party library. It's the only way to go cross-platform about it.
How about QB64 extended with the hard parts done in straight C?
Check this out...
https://github.com/a740g/QB64-MIDI-Player