Multitrack for Windows MME?

Just as a question, why don’t we have multi track recording for Windows DirectSound in Audacity?
EDIT: Windows DirectSound and/or MME

As Audacity is based on PortAudio, I wrote a python script[1] to test a few things. It uses the sounddevice library that is based on PortAudio. Hooked up a few devices and tested various settings by opening the stream. If anything does not match up an error is generated.

Behringer U-Phoria UMC404HD
Windows DirectSound
inputdevice: {‘name’: ‘Line (2- BEHRINGER UMC404HD 192k)’, ‘hostapi’: 1, ‘max_input_channels’: 4, ‘max_output_channels’: 0, ‘default_low_input_latency’: 0.12, ‘default_low_output_latency’: 0.0, ‘default_high_input_latency’: 0.24, ‘default_high_output_latency’: 0.0, ‘default_samplerate’: 44100.0}

outputdevice: {‘name’: ‘Speakers (2- BEHRINGER UMC404HD 192k)’, ‘hostapi’: 1, ‘max_input_channels’: 0, ‘max_output_channels’: 4, ‘default_low_input_latency’: 0.0, ‘default_low_output_latency’: 0.12, ‘default_high_input_latency’: 0.0, ‘default_high_output_latency’: 0.24, ‘default_samplerate’: 44100.0}

Zoom H6
Windows DirectSound
inputdevice: {‘name’: ‘Microphone (H6)’, ‘hostapi’: 1, ‘max_input_channels’: 6, ‘max_output_channels’: 0, ‘default_low_input_latency’: 0.12, ‘default_low_output_latency’: 0.0, ‘default_high_input_latency’: 0.24, ‘default_high_output_latency’: 0.0, ‘default_samplerate’: 44100.0}

outputdevice: {‘name’: ‘Headphones (H6)’, ‘hostapi’: 1, ‘max_input_channels’: 0, ‘max_output_channels’: 2, ‘default_low_input_latency’: 0.0, ‘default_low_output_latency’: 0.12, ‘default_high_input_latency’: 0.0, ‘default_high_output_latency’: 0.24, ‘default_samplerate’: 44100.0}

Similar results for MME and Windows WDM-KS.

The script also tests ‘all’ sample rates and bit depths. No problem[2]. It also test for less than the max number of channels. No problem, one could record just three of the Zoom’s six channels. The I did a few test recordings. Different signals on all channels are recorded as different signals, no sneaky mixing behind the back.

(I even managed to open input streams from both devices simultaneously. Haven’t figured out how to sync them and write to one wave.)

With WASAPI most of it also works but it is very fiddly and you have to set all parameters everywhere before you start the stream and cant switch to an other setting. When you can work on a dedicated system with one set of setting it is fine.


[1] Python 3.8, Sounddevice as distributed by Gohlke, Win10, PortAudio V19.6.0-devel, revision 396fe4b6699ae929d3a685b3ef8a7e97396139a4
[2] Well, MME and Directsound seems to accept any number you punch in for sample rate. WDM-KS errors when a device does not support the sample rate, as it should.

I assume that you know that DirectSound is a deprecated software component of the Microsoft DirectX library?

I understood it is or was and that it is emulated nowadays. Is MME deprecated too?


As far as I’m aware, MME is considered to be a “legacy component” (it originally dates back to the early 1990’s) but is likely to be fully supported by Windows for a long time. It is the default “host” for Audacity on Windows because it is so widely supported (at least for mono / stereo).

Thanks Steve. I changed the title(s) of my post to … MME.