Some questions about full duplex


I am programming an experiment which would benefit from the special audio monitoring mode, which itself requires a full duplex device. I’m unable to currently open a device on my system in full duplex mode. I want help determining if this is a misunderstanding I have around the terms “sound cards” and “devices”, or if my current setup is incompatible with full duplex mode.

Terminology questions:
My understanding of a “sound card” is of a physical device either integrated with the computer’s motherboard, or connected to the computer in some way. My understanding of a “device” is a speaker or microphone (in the case of audio) that communicates with the sound card to record/play back sounds. Devices can be physical (the speaker sitting on my desk) or abstracted. I have a modern computer where I can talk into my microphone while simultaneously hearing audio through my headphones, which makes my sound card “full duplex.”

I have two pieces of hardware that each have a microphone and audio output attached: a Yeti Blue stereo microphone with an aux input, and a Scarlett Focusrite Solo 2nd gen. I’m able to record and play back sounds from each of these. The “microphone” and “speaker” components of these pieces of hardware show up as separate devices in the PPA device list: devices = PsychPortAudio('GetDevices')

When I try to PsychPortAudio('Open', ... either the “speaker” or “microphone” PPA device which is using the Windows WASAPI API in special monitoring mode (mode == 7), I get one of these errors respectively:

Audio input requested, but there isn't any audio input device available or you provided a deviceid for something else than an input device!

Audio output requested, but there isn't any audio output device available or you provided a deviceid for something else than an output device!

Main question: Is it possible to use these devices in full duplex mode?

[Other details: Windows 10, MATLAB 2020a, PTB version 3.0.16 just updated, output of ‘GetDevices’ call attached.]

I’m afraid, full-duplex won’t work on your setup. What matters to PsychPortAudio or any other audio driver is what kind of virtual sound devices the operating system exposes for representing your physical hardware. Highly operating system + device driver + hardware dependent. It is the devices listed by PsychPortAudio('GetDevices')
As you can see from your list, there isn’t any single device which has both a non-zero number of output channels and a non-zero number of input channels, so none of these logical sound devices can do both input and output at the same time, as required for full-duplex.