AudioDeviceIOCallback with no inputs and no outputs

Is it possible for an AudioDeviceIOCallback to get called (from and AudioDeviceManager) if no inputs and no outputs are selected?

Use case: The main purpose of the app is to loop through different midi files and optionally to record audio. But in many cases, there isn’t even an audio input that could be selected as dummy, so the callback doesn’t get called at all.

I’m open to suggestions to play the midi files another way and not inside the audio callback, but I couldn’t come up with a solution without creating an own “audio thread” but that seemed to be a bit over top to me.


#bump Any ideal? I‘m still kind of stuck on this problem

I’m going to say no. Without looking into it, I am going to assume the callback is driven by the driver callback. Your topic indicates there is no input AND no output, so I am not sure what you will be listening to. Unless you are controlling an external midi device, in which case you don’t need the audio callback at all, you can just run a thread to send your midi to the device… which is what you already know, and it isn’t ‘over the top’, it’s just the solution.

Maybe there is an misunderstanding: The AudioIODeviceCallback serves the only purpose to produce or record audio from or to the AudioIODevice. If you want to process midi or audio, you can do that just fine without an AudioIODeviceCallback.
You can also host plugins without an AudioIODeviceCallback, e.g. to create wav from midi files.

And furthermore you can start the AudioDeviceManager only once the user wants to audition. That is all possible. There is no requirement to be connected to an AudioDevice to process audio or midi.