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.
Cheers.
[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.