On Mac if you create a virtual port there is no way to choose it as the output in the AudioDeviceSelectorComponent. This seems to require that if you use AudioDeviceSelectorComponent you need to create a special UI to choose the virtual port.
I understand from this thread that the reason for this problem is that MacOS does not return your app’s port with getDevices().
However it should be possible for JUCE to know that a virtual port has been created, add it to the list of outputs, and use that port if it is chosen.
Obviously the user could create a feedback loop by connecting the app’s output to its input, but JUCE should be able to overcome that by disallowing both the virtual input and output to be chosen at the same time.