macOS host duplex CoreAudio devices are broken => fixed in SVN/next maintenance
|Reported by:||csnover||Owned by:|
|Guest type:||all||Host type:||Mac OS X|
VirtualBox will not use an audio device in a macOS host if it is a duplex (both input and output) device.
Such devices did work in VirtualBox 5.0.40; I did not determine the specific version where this broke (I upgraded from 5.0 to 6.1).
- Create a duplex device (see below)
- Set the duplex audio device as the default output (and/or input) device in macOS System Preferences
- Run a VM
Expected: VirtualBox plays/records audio through the duplex device.
Actual: VirtualBox will not play/record audio. VBox.log says “CoreAudio: No default playback device found” (for output) or “CoreAudio: No default capturing device found” (for input). The DEFAULT flag on the device also isn’t set unless it is set as the system default for both output *and* input (though it still won’t work even then).
Workaround: For output only, Audio MIDI Setup.app can be used to create a “Multi-Output Device” which forwards to the outputs of the duplex audio device. This is not a good workaround, though, since this disables volume control.
- Open /Applications/Utilities/Audio MIDI Setup.app
- Click the plus icon in the bottom-left corner and choose “Create Aggregate Device”
- Select the Aggregate Device from the menu on the left
- Tick the “Use” box next to a device with a non-zero “In” column (e.g. “Built-in Microphone”)
- Tick the “Use” box next to a device with a non-zero “Out” column (e.g. “Built-in Output”)
There are at least a couple of forum posts about this problem which contain appropriate logs:
The relevant section of my own VBox.log is:
00:00:04.472027 Audio: Initializing Core Audio driver 00:00:04.533481 CoreAudio: Default capturing device is 'USB Advanced Audio Device' 00:00:04.533688 CoreAudio: No default playback device found 00:00:04.533718 Audio: Host driver 'CoreAudio' supports 2 input streams and 2 output streams at once 00:00:04.536723 CoreAudio: Default capturing device is 'USB Advanced Audio Device' 00:00:04.536912 CoreAudio: No default playback device found 00:00:04.536934 Audio: Found 5 devices for driver 'CoreAudio' 00:00:04.536947 Audio: Device 'Built-in Microphone': 00:00:04.536955 Audio: Usage = Input 00:00:04.536963 Audio: Flags = NONE 00:00:04.536970 Audio: Input channels = 2 00:00:04.536978 Audio: Output channels = 0 00:00:04.536986 Audio: Device 'USB Advanced Audio Device': 00:00:04.536993 Audio: Usage = Input 00:00:04.537000 Audio: Flags = DEFAULT 00:00:04.537008 Audio: Input channels = 2 00:00:04.537015 Audio: Output channels = 0 00:00:04.537023 Audio: Device 'kuwatec Audio Loopback': 00:00:04.537031 Audio: Usage = Duplex 00:00:04.537038 Audio: Flags = NONE 00:00:04.537045 Audio: Input channels = 2 00:00:04.537052 Audio: Output channels = 2 00:00:04.537060 Audio: Device 'Built-in Output': 00:00:04.537067 Audio: Usage = Output 00:00:04.537075 Audio: Flags = NONE 00:00:04.537082 Audio: Input channels = 0 00:00:04.537090 Audio: Output channels = 2 00:00:04.537097 Audio: Device 'USB Advanced Audio Device': 00:00:04.537105 Audio: Usage = Output 00:00:04.537112 Audio: Flags = NONE 00:00:04.537119 Audio: Input channels = 0 00:00:04.537127 Audio: Output channels = 2
Version: at least 6.1.16 & 6.1.18
Host OS: at least macOS 10.14.6 (18G8012)
Guest OS: All (tested Windows 7 32-bit)