I dont't know because I have one PC to test and it works.
However, we should imagine what's going on there:
On one side there is WA delivering packets of sound at a rate which in mean represents the sample rate.
The same is true for the WASAP side: it reads packets of another size and at another rate which also represents in mean the sample rate.
We can conclude that in mean the ring buffer is empty. It just compensates for the different packet sizes. But there is still some probability that the buffer becomes empty, and we here glitches or pops.
The mean number of frames in the buffer should never become zero. You may achieve this by increasing the "start playing ..." option. The "start playing ..." option means that when WASAPI takes the first packet from the buffer the number of frames in the buffer not becomes zero immediately (instead it approximately is the mean number of frames in the buffer).
I increased the "start playing ..." parameter to 2 and it works (which means nothing because for me it's working anyway).
Thank you. I will increase the "start playing" parameter and see what this changes. Thanks for the prompt reply
Got this error when trying to play a certain album of MP3s:
Any idea what's up? No noticeable issues when YASAPI is disabled.
When you get this error YASAPI is indeed enabled (no chance you get this when YASAPI is disabled).
You get this under the same circumstances you get AUDCLNT_E_UNSUPPORTED_FORMAT. Both result from a call to the IsFormatSupported() method of the IAudioClient interface:
when you get S_FALSE you are most likely in shared mode, and
when you get AUDCLNT_E_UNSUPPORTED_FORMAT you are most likely in exclusive mode.
You should get rid of the S_FALSE in shared mode when the format under Control Panel -> Sound (in Windows) is configured to mach the format of your audio (especially the sample frequency).
You should get rid of the S_FALSE in shared mode when the format under Control Panel -> Sound (in Windows) is configured to mach the format of your audio (especially the sample frequency).
I always make sure the Windows Sound utility's format setting matches what is being output by Winamp. But as I said before, the format that is output does not match the format of the source file. Does your plug-in read (and pass on) the format of the source file or the format that is passed to it by other plug-ins ahead of it in the processing chain?
Winamp v5.9.2.10042 - Quinto Black CT v3.9 skin
Windows 11 Home 64-bit v22H2 desktop - Logitech Z906 5.1 speaker system
Does your plug-in read (and pass on) the format of the source file or the format that is passed to it by other plug-ins ahead of it in the processing chain?
The plugin takes what WA gives to it. I think in your case it is the output from a DSP plugin (because an output plugin is always the last in the chain). You may ask DrO how chains of plugins are build ...
Ok, but the format is 24 bit, 96000 Hz, 6 channels which the Windows Sound configuration tool is setup to expect and it's working fine with the plug-ins I'm currently using (but they only support shared mode).
I don't want to annoy you, but logically your plug-in should work for me, but it doesn't. I'm just trying to understand why the Winamp DirectSound output plug-in accepts and passes on the signal to the WASAPI in an acceptable way and your output plug-in doesn't seem to.
Is it possible the 24 bits are being truncated to 16? I'm trying to figure out what may work without trying all the possible permutations. I'm afraid of what multiple crashes may do to my system.
Winamp v5.9.2.10042 - Quinto Black CT v3.9 skin
Windows 11 Home 64-bit v22H2 desktop - Logitech Z906 5.1 speaker system
Is this coming from WA? If yes, how you are doing this?
The configuration dialog for the DirectSound output plug-in has a status page that shows the output format it is using. I use Matrix Mixer (http://sourceforge.net/projects/winampmatrixmix/) to do the up-sampling and up-mixing of the decoded input source and pass the resulting signal directly to a selectable output plug-in (in this case DirectSound, which is the default).
A DSP plug-in (if used) would process the signal after the appropriate input plug-in and before Matrix Mixer. I don't use the Winamp equalizer and I'm not sure if it's processing is done before or after a DSP plug-in. I assume WASAPI would apply a soundcard's or mobo soundchip's equalizing and/or DSP signal processing utilities (I don't use them either) to the signal after it leaves Winamp.
I sometimes use Stereo Tool (http://www.stereotool.com/), a DSP plug-in, to 'enhance' some of my lower quality mp3 files I've downloaded over the years. I don't need it for files I've ripped myself.
Option for treating mono as stereo (default switched on).
New default options for buffer configuration.
Some fixes.
Please note that the new default options for buffer configuration are tested with internet radio. With the old default options internet radio was prone to glitches and pops even on my side because of huge fluctuations of the stream. With the new options it seems that these fluctuations are buffered sufficiently.
Just a curious question. The WASAPI mode is supposedly better than the old one for number of technical reasons, but will I actually hear any difference? When I just listen to music in absolutely normal way, is there any reason I would want to use it?
I tried the plugin, and immeditaly noticed all other sound sources stopped working. That's weird, because TeamSpeak has the WASAPI option as well, and when I use it, I can listen to music without problems. Is this normal?
I also randomly tried the different options, and when I selected shared instead of exclusive, I get an error message "S_FALSE: "yasapi_player.c" (134). when I try to play a song, and then Winamp crashes.
This might help:. It is a guide to the other WASAPI plugin Maiko
This is a short guide to show how to use Winamp in general and as an audiophile music player.
I have recieved alot of help here at head-fi, and wanted to give something back. Hope you will enjoy this little guide!
Why Winamp?
No particular reason...
No really, if you already use...
Essentially, WASAPI routes the music without mixing it before reaching the speakers. You get the music as it is with no fancy sampling around. This works best with music encoded at high bit rates and great quality. It is also because of the music is not sampled, you would not get sound from other sources, but one (YASAPI output). This is by design.
Hope this helps. Anyone wants to add? You are welcome
@pbelkner
Sorry I plugged in a guide to Maiko's plugin. I could not find any other guide to illustrate. I use your plugin since launch now so count me as your fan. Keep the work on the plugin
That's fine with me. YASAPI and MAIKO are complementary to each other. YASAPI focuses on exclusive mode and MAIKO on shared mode (and indeed, on my side it crashes in exclusive mode).
I tried the plugin, and immeditaly noticed all other sound sources stopped working.
That's the expected behavior in exclusive mode. Hence exclusive ...
It should not happen in shared mode.
Originally Posted by TheWalruss
That's weird, because TeamSpeak has the WASAPI option as well, and when I use it, I can listen to music without problems. Is this normal?
Possibly that's shared mode.
Originally Posted by TheWalruss
I also randomly tried the different options, and when I selected shared instead of exclusive, I get an error message "S_FALSE: "yasapi_player.c" (134). when I try to play a song, and then Winamp crashes.
That's the flip side of shared mode: It only plays the sample rate you've configured in Windows: Control Panel -> Sound.
You shouldn't have this problem with exclusive mode. If some sample rate is not supported in exclusive mode (e.g. 22.050) you should get AUDCLNT_E_UNSUPPORTED_FORMAT.
Comment