Recording with Windows Wasapi

Hi
I have a problem with Audacity 2.06 and recording with Windows Wasapi
I am using a M-Audio Delta AP192 sound card
The problem is that I can only select Line 1/2 ( loopback) as recording device with Wasapi.
And means that a new recording track will record the playback sound from previous recorded tracks.
If I use MME or Windows Directsound the loopback text will not come up and the playback sound will not be recorded.
I have up till now been using Audacity 2.04 and WDM_KS without this problem.
If I disable Overdub the recording will not start!
Is this a known problem with Windows Wasapi ?
BR
Kalle_in_Sweden

Hi
I a think I found the explanation for this problem:
“Windows WASAPI: This host only appears on Windows Vista, Windows 7 and Windows 8.
The only recording devices that are currently provided are “loopback” devices for recording computer playback.”
This makes Windows Wasapi more or less useless for normal recording work.
I will continue to use Audacity 2.4 with WDM-KS until this problem is solved…
/Kalle

WASAPI only works in the loopback mode to record “what you hear” from the computer speakers.

If I use MME or Windows Directsound the loopback text will not come up and the playback sound will not be recorded.

What are you trying to do?

Normally if you want to record a new track “over” a “backing track”, you’d record the new track while playing-back and monitoring the backing track.

Then, you’d mix later when you can adjust the relative levels of each track in the mix.



Do those two statements contradict each other?
You seem to be complaining that one records what is playing on the computer, and also complaining that the other one doesn’t record what is playing on the computer :confused:
What are you trying to record?

Hi
When I do a multitrack recording I want hear/playback the sound from the previous recorded tracks, but I dont want to record that sound on a new track ( only recording the sound from input , mic / instrument etc).
It is only when I do the final mix of all tracks, I want to combine the sound / levels /effects from all tracks.
This is how Audacity works with MME, Directsound and WDM-KS , but not with Wasapi.
/Kalle

It is looking like that in the next release of Audacity that we may enable the inputs other than loopback for WASAPI.

WC

That’s because the only part of WASAPI that is implemented in Audacity 2.0.6 is the “loopback” input. The “loopback” input is a special “virtual” input and is similar in function to the old “stereo mix” on many XP machines.

So why can’t you use MME or DirectSound? What does WDM-KS in Audacity 2.0.4 give you that is not available in 2.0.6?

If we do, there may be bugs in recording from real inputs under WASAPI, and loopback recording behaviour may change on some machines. That’s why we have not released WASAPI non-loopback hitherto.

We do also hope to re-enable WDM-KS but definitely not for 2.1.0.


Gale

If the sound card works with WDM-KS without crashing or freezing the computer when Audacity starts, WDM-KS offers latencies almost as low as ASIO, and offers 24-bit recording.

WASAPI also offers 24-bit recording, but latencies are not so low as with WDM-KS.


Gale

Hi
The funny thing is that WDM-KS (audacity 2.04) only gives a sligthly reduced “latency” compared to DirectSound (202 ms compared to 230 ms).
Audacity 2.06 gives a latency of 160 ms with MME and 230 ms with DirectSound ??
Wasapi gives a latency around 30ms
/Kalle

Please note all Audacity versions have two dots in the version number, so “2.0.4” for example. If you really have “2.04” then you did not get it from us.

On Vista and later, DirectSound is emulated on top of WASAPI, so does not give direct kernel access as it did on XP. So on Vista and later it’s expected that DirectSound could be slightly slower than MME, and much slower than it was on XP.

To achieve lower latencies with WDM-KS, try reducing “Audio to Buffer” in Recording Preferences to a few milliseconds. We’ve achieved as low as 4 millisecond latencies with a 1 millisecond buffer, but the other hosts will probably fail to record at such a low buffer.


Gale

Due to the prevalence of software synthesizers in DAW applications, online articles and discussions frequently place a great deal of emphasis on the issue of “latency”. However, as Audacity is not a host for software synthesizers, the issue of latency is usually not an issue at all. For Audacity, “latency” is usually completely irrelevant as long as “latency correction” has been set up correctly. In the vast majority of cases, the hardware can (and should) be configured so as to achieve zero latency, regardless of the API being used.

Are you doing something unusual with Audacity that prevents you from using zero latency (hardware) monitoring?

Just as a matter of interest and perspective, I’m on Linux, and when using “Jack Audio System” (API) I get around 10 ms latency (no special hardware - this is just a cheap laptop with on-board sound).

We have not been told the the exact version of Windows, but if it’s the built-in audio device being used for playback, that typically can’t be set up for hardware monitoring on new Windows machines.

If you are doing a lot of overdubbing and want to hear yourself recording, yes you should normally be using the external audio device and listening in the headphones port. You can set Audacity in Device Toolbar to record from and play to the external audio device.

EDIT Or in your case, record from and play to the added PCI sound device.




Gale

there may be bugs in recording from real inputs under WASAPI

The bugs I’ve encountered with WASAPI have had to do with finding devices in Exclusive mode. I have not encountered any bugs in recording from hardware devices with WASAPI. I performed extensive quality control on this when Dmitry was writing the PortAudio WASAPI code several years ago. Whenever I’ve recorded in WASAPI, assuming the device can be found, the recordings have been flawless.

As I have said elsewhere, only Microsoft can fix the Exclusive-mode bugs, and they’re not likely to make an announcement when they do. For all we know they may already have been fixed or at least addressed. Were it my decision to make, I would enable WASAPI recording from hardware devices in Audacity.

Well you’re lucky then Chris, as the Release Manager decided to leave full WASAPI support in Audacity for the 2.1.0 release :sunglasses:

This should give us the chance to get exposure of it on a lot more computers and hardware devices.

WC

Thanks for the input, Chris.

However my understanding is that you are using release versions of Audacity, right, so judging WASAPI using your own recording device?

Our testing of alpha Audacity builds that include full WASAPI (not just loopback) are very variable. On three different machines using 2.1.0-alpha builds of Audacity, I can barely get WASAPI to do anything than error (with various devices, even with Exclusive Mode off). Some others of us fare better.

If you are not already using the “Audacity Nightly Builds”, feel free to try the latest one from the top of gaclrecords.org.uk and let us know how it does on your hardware. It’s a standalone ZIP, nothing to install.


Gale

Yes but, our testing of WASAPI also includes very successful use of it using loopback and other inputs on my Windows 7 64-bit laptop and an the PC that Leland Lucius’ (one of the key developers) wife uses.

And Steve also reported:

I rarely use Windows so I have little experience of this, but the only time that I tried WDM-KS and WASAPI, both of them failed. I then updated the sound card drivers and then both of them worked.

WC

As I stated, my drivers are up to date on both machines (and using the driver version before does not help). And, taking into account the other person’s machine I have access to, those are three different built in sound devices.

Loopback is fine. It’s the real inputs that are the problem on the machines I use.


Gale

I do not use Audacity for recording or editing. I wrote my own recording program which uses WASAPI and has IEC 268-18 metering. It was completed about 4 years ago but has not been publicly released. I use GoldWave for editing. The only part of Audacity I use is the equalizer, which is pretty good. I was curious to see if the latest version of Audacity supported WASAPI recording as yet.

Dmitry, who wrote the bulk of the PortAudio WASAPI code, says Microsoft’s documentation of WASAPI is of poor quality. Not all interface/sound card manufacturers have drivers which are up to snuff, possibly due to inadequacies in Microsoft’s documentation. I found EMU drivers to be particularly flaky. I’ve had better luck with M-Audio drivers.

Unfortunately it’s difficut to tell where Microsoft WASAPI bugs end and 3rd-party driver bugs begin.

GoldWave’s implementation of WASAPI is fraught with bugs, but my recording program, which is based on PortAudio, works flawlessly. Same machine, same hardware interface, same drivers. I can thus vouch for the PortAudio implementation of WASAPI.

One clue: my program uses PortAudio’s callback mode. Does Audacity use PortAudio’s callback mode or “blocking” mode?

I have Goldwave 5.69. I see the LOOPBACK options under recording which must be WASAPI but it does not say whether the stereo mix, internal mic and external mic use WASAPI or some other API. Would you know what host they use for non-loopback inputs? The non-loopback inputs seem to record well on my Windows laptop, Exclusive Mode or not, and the loopback inputs are fine too.

I don’t know as of now. Could you explain the difference between those two modes for physical inputs?


Gale