hello,
how do i create a virtual microphone on macOS that can be selected as a default input device in System Settings or in apps like FaceTime / QuickTime Player / Skype, etc?
is Audio HAL plugin the way to go?
i've seen this macOS 10.15 note: "Legacy Core Audio HAL audio hardware plug-ins are no longer supported. Use Audio Server plug-ins for audio drivers." though i am not sure if that's applicable, as i can think of these interpretations:
https://developer.apple.com/library/archive/qa/qa1811/_index.html
which leads to a 2013 sample code:
https://developer.apple.com/library/archive/samplecode/AudioDriverExamples/Introduction/Intro.html
and contains a "nullAudio" plugin and a kernel extension backed plugin - neither of those i wasn't able to resurrect (i'm on macOS Catalina now).
any hints?
how do i create a virtual microphone on macOS that can be selected as a default input device in System Settings or in apps like FaceTime / QuickTime Player / Skype, etc?
is Audio HAL plugin the way to go?
i've seen this macOS 10.15 note: "Legacy Core Audio HAL audio hardware plug-ins are no longer supported. Use Audio Server plug-ins for audio drivers." though i am not sure if that's applicable, as i can think of these interpretations:
1 "Legacy Core Audio HAL audio hardware plug-ins are no longer supported (but you can still use non-legacy ones.)
2 "Legacy Core Audio HAL audio hardware plug-ins are no longer supported." (but you can still use non-hardware ones".)
3 "Legacy Core Audio HAL audio hardware plug-ins are no longer supported". (if you used that functionality to implement audio hardware drivers then your you can use Audio Server plug-ins instead, otherwise you are screwed.)
https://developer.apple.com/library/archive/qa/qa1811/_index.html
which leads to a 2013 sample code:
https://developer.apple.com/library/archive/samplecode/AudioDriverExamples/Introduction/Intro.html
and contains a "nullAudio" plugin and a kernel extension backed plugin - neither of those i wasn't able to resurrect (i'm on macOS Catalina now).
any hints?
Ignoring your rant, AudioServerPlugIns are (and remain) supported, but there is next to no guidance on how write (or debug!) them.
You can either bite the bullet and start from scratch, go with NullAudio (or the C++ SimpleAudio (?) variant that uses the CoreAudioHelper classes) — both of which are old but can be brought forward reasonably easily —, or look for a different starting point.
There's different open source projects that have working AudioServerPlugIns, for example SoundFlower, BlackHole, BackgroundMusic, or SoundPusher. A commercial solution (which you may be able to license) is Rogue Amoeba's Loopback.
You can either bite the bullet and start from scratch, go with NullAudio (or the C++ SimpleAudio (?) variant that uses the CoreAudioHelper classes) — both of which are old but can be brought forward reasonably easily —, or look for a different starting point.
There's different open source projects that have working AudioServerPlugIns, for example SoundFlower, BlackHole, BackgroundMusic, or SoundPusher. A commercial solution (which you may be able to license) is Rogue Amoeba's Loopback.