emusic
Enthusiast
Enthusiast

Specifying recording/playback host audio devices independently for a VM

I'm using Workstation for many years, from 5.5 to 8.0.6, primarily for audio software development. In all versions I used, host audio playback/recording devices cannot be specified independently for a VM. Actually, only host playback audio device can be specified for a VM; Workstation always determines recording device automatically.

It is extremely ugly and primitive solution. Starting from 3.0, Windows supported more than a single recording and playback devices, and even first MME interface allows applications to use any available device for recording and any available device for playback, regardless of their physical relations. All Windows audio interfaces enumerate recording and playback devices independently; to find an "opposite" device that has physical relation to a given device, you must perform some special operations, it is not obvious.  Moreover, there are "single-direction" devices, like USB microphones/headphones, that have no physically related "opposite" device at all.

So most audio applications capable to record and play back, allow to specify recording and playback devices independently. It is both more easy for programming and more convenient for a user, allowing to use all available audio devices without limitations. Almost any advanced user that deals with audio has more than a single audio adapter in the computer and frequently uses one adapter for recording and another for playback. Only a small amount of very proprietary (and strange) applications are adapter-oriented, requiring that both devices, recording and playback, must belong to a single physical adapter.

It is very inconvenient that Workstation implements the second way, not allowing VMs to use any available recording device together with any available playback one. Maybe 9.x or 10.x are more friendly in such case?

If not, is such support at least planned? It would be much more easy and reliably to specify both devices independently than specifying only a playback one and finding an appropriate recording one automatically, or assuming that it has the same ordinal number.

Does anybody know why VMware pays no attention to this issue?

0 Kudos
2 Replies
emusic
Enthusiast
Enthusiast

Four years have passes. Last year, I upgraded to Workstation Pro 12.5. Still the same ugly and meaningless restriction.

For last ten years (or even more), Windows audio drivers may create more than a single recording and a single playback endpoint for a single hardware audio adapter. For example, widespread Realtek adapters, including cheapest onboard ones, may produce five independent recording endpoints (Microphone, Line In, CD In, SPDIF In, Stereo Mix), and three playback endpoints (Speakers, Headphones, SPDIF). Workstation allows to specify a playback endpoint only. Which of five recording endpoint will be automatically chosen by VMM?

Looking on VMM code briefly, I see it uses plain MME (waveIn/waveOut) or DirectSound API to communicate with host audio endpoints. Therefore, playback and recording endpoints are selected and used independently in all cases. Only artificial GUI and VMX format restrictions prevent from selecting them explicitly.

There is a pervert way to use independent host playback/recording endpoints right now: select "Use default host sound card" at the "Sound" page of VM configuration, and set desired host endpoints as default playback/recording devices. But, of course, it produces significant side effects: all host audio applications that use default audio endpoints will use the same endpoints as the VM.

I'm asking Workstation team again: please add a second listbox to the "Sound" page to select host playback/recording endpoint separately. Or at least add the appropriate "sound.xxx" options to .vmx file option set. As an audio software developer, I know it is extremely easy to implement but very powerful to use.

Thanks in advance.

0 Kudos
emusic
Enthusiast
Enthusiast

Also found that Workstation doesn't even support audio device arrival/removal. If a removable device (for example, USB one) is connected, it is not shown in Settings/Audio page, even if Settings dialog is closed and reopened. Full VMware application (together with all VMs) restart is required to see such device in the list and select it. Yet another restart is required after device removal to re-enumerate audio devices (device order may change after device arrival/removal). It means that VMware application enumerates audio devices once at startup.

It is very sad to see such wretched design in XXI century. It would be acceptable in the beginning of 90th but not now.

However, VirtualBox has much more wretched design. It always uses default playback/recording devices, not allowing to select them explicitly.

There is a strong impression that VMware/VirtualBox developers never seen a system having more than a single audio adapter...

0 Kudos