Yet Another (WA)SAPI (YASAPI) NT Output for Winamp (out_yasapi-nt) is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
out_yasapi-nt is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with out_yasapi-nt. If not, see <http://www.gnu.org/licenses/>.
Yet Another (WA)SAPI (YASAPI) NT Output for Winamp utilizes the Windows Audio Session API (WASAPI). WASAPI's exclusive mode for rendering audio is a native way on Windows to render audio undisturbed, similar to Steinberg's Audio Stream Input/Output (ASIO). YASAPI NT Output may serve as a replacement for any other Winamp Output.
Nanos gigantum humeris insidentes: This project is dedicated to my European heritage. It is strictly to be understood as a statement against the "sweet" liberal lie of "multiculturalism" which is going to destroy Europe as we know it, in particular against the Merkel regime selling out Europe for nothing as we watch.
Home: | http://out-yasapi.sourceforge.net/ | |
Project: | http://sourceforge.net/projects/out-yasapi/ | |
Download: | http://sourceforge.net/projects/out-yasapi/files/out-yasapi/ | |
Winamp Forum: | http://forums.winamp.com/showthread.php?t=380396 (discontinued) | |
Input Plugin: | http://in-ffsox.sourceforge.net/ | |
Loudness Normalization: | http://bs1770gain.sourceforge.net/ | |
http://r128gain.sourceforge.net/ | ||
Keep HDD Awake: | http://gen-hdd.sourceforge.net/ | |
Yet Another Shuffle: | http://gen-yas.sourceforge.net/ |
2018-04-16 | 2.0.0-β3 |
|
2018-04-12 | 2.0.0-β2 | The second preview of what you might expect to come:
|
2018-04-11 | We just noticed that on 2018-04-10, 04:19 the following
new thread
appeared at the WA forum:
Might be a fan of us but please note that this message is not ours. We don't post at the WA forum for years now. Anyway, we know at least one creature who likes tricking users into reporting to him and not to the plug-in's author. |
|
2018-04-08 | 2.0.0-β1 |
|
2018-02-16 | Updated Some Additional Notes on Darren Owen ("DrO"). | |
2017-04-27 | As a sort of side project to out_yasapi I've created
milkdrop2-compile:
https://sourceforge.net/projects/milkdrop2-compile/ |
|
2017-01-10 | Added a political statement to the top of this page. | |
2016-08-11 |
Just recently it came to my attention that a creature
calling itself "DrO" (update 2018-04-08: according to the silly
"one world" ideology ruling the so called "western world" it is just a
"human being" without any individual properties discriminating it from
others, just like an ant in a bath full of infinite many undistinguishible
ants; you shouldn't have any doubt that in a literal sense it is "equal"
to you and me by any means, just like in
liberté, égalité, fraternité
![]()
|
|
2016-08-06 | 1.7.25 |
|
2016-07-30 | 1.7.24 |
|
2016-07-03 | 1.7.18 |
|
2016-06-30 | 1.7.17 |
|
2016-06-30 | 1.7.15 | Fixed several bugs regarding the implementation of the device specific option Extend to 24 Bit. This option is apperently not equivalent to Winamp → Options → Preferences → Playback → Playback → Allow 24bit because the latter reduces bit deps to 16 bit if un-checked otherwise to 24 bit. Bit depth is never extended to 24 bit. YASAPI extends bit depth to 24 bit those enabling playback on devices which does support 24 bit WASAPI playback but not 16 bit WASAPI playback. |
2016-06-27 | 1.7.10 | Added a device specific option in order to define whether YASAPI should promote 8/16 bit input to 24 bit. This is not really necessary because the same effect can be achieved by enabeling Winamp → Options → Preferences → Playback → Playback → Allow 24bit but is provided on user request |
2016-06-23 | 1.7.4 |
|
2016-06-21 | 1.7.1 | Improved migrating the plug-in from an un-plugged default device to the new default device when playing. |
2016-06-20 | 1.7.0 | (Limited) support for un-plugging the default device (as configured via System control) when playing. |
2016-06-19 | 1.6.14 |
|
2016-06-14 | 1.6.11 | Fixed combining pause with flush (skip). |
2016-06-13 | 1.6.9 |
|
2016-06-12 | 1.6.8 | For the debug version it may be configured that the trace is written to a file in the AppData/Winamp/Plugin directory rather then dispalying it in a console. |
2016-06-12 | 1.6.7 | In gapless mode, when a playlist ends the device is not released. It is waiting for the next track to start. This situation is un-distinguishable from an ordinary underflow situation and hence playback ends in an undeflow state. This may cause trouble when in such a situation the user decides to change the output plugin (via configuration). This new version applys to exact this situation: If in case the user changes the output plugin and this plugin is found in an underflow state this plugin is closed (and hence the device released). |
2016-06-12 | 1.6.6 | Fixes regrding gapless playback. |
2016-06-12 | 1.6.5 |
|
2016-05-29 | 1.6.4 | Added a common option in order to define whether 4, 6, or 8 channels should be interpreted as qadrophnic (3.1), 5.1, or 7.1 (disabled) or sorround (3.1 sorround), 5.1 sorround, or 7.1 sorround (enabled), respectively. |
2016-05-26 | 1.6.3 |
|
2016-05-22 | 1.6.0 |
|
2016-05-17 | 1.5.4 | Solved the dead-lock caused by saving the configuration. |
2016-05-17 | 1.5.1- 1.5.3 |
Improved dealing with draining the ring buffer and end of track (eot). |
2016-05-16 | 1.5.0 |
|
2016-04-09 | 1.0.7 | In order to have YASAPI in a well defined state from the very first beginning, reset the IAudioClient interface at start-up. |
2016-01-13 | 1.0.6 |
|
2016-01-09 | 1.0.0 |
|
2016-01-03 | 0.16.0 |
|
2015-12-21 | 0.15.0 | Brought back, as an option, a call to IAudioClient::IsFormatSupported which is disabled by default. |
2015-12-10 | 0.14.1 | Increased default ring buffer size to 2.5. |
2015-12-08 | 0.14.0 |
|
2015-12-06 | 0.12.0 | Fixed interplay with the "NotSo Fatso" input plugin. |
2015-12-04 | 0.11.0 |
|
2015-11-29 | 0.10.0 |
|
2015-11-23 | 0.9.1 |
|
2015-11-22 | 0.9.0 |
|
2015-11-02 | 0.8.3 |
|
2015-10-31 | 0.8.2 |
|
2015-10-30 | 0.8.1 | New share mode "automatic" which is similar to exclusive except that it falls back to shared in case exclusive fails. |
2015-10-29 | 0.8.0 |
|
2015-10-26 | 0.7.1 |
|
2015-10-26 | 0.7.0 |
|
2015-10-03 | 0.6.1 | Corrected a silly bug in testing for share mode. |
2015-10-03 | 0.6.0 | Add AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM flag when in shared mode (doesn't have any effect on Vista). |
2015-02-14 | 0.5.0 |
|
2015-01-30 | 0.4.0 |
|
2015-01-25 | 0.3.0 |
|
2015-01-24 | 0.2.1 |
|
2015-01-24 | 0.2.0 |
|
2015-01-23 | 0.1.0 | Initial release. |
According to Microsoft:
The Core Audio APIs were introduced in Windows Vista. This is a new set of user-mode audio components provides client applications with improved audio capabilities. These capabilities include the following:
- Low-latency, glitch-resilient audio streaming.
- Improved reliability (many audio functions have moved from kernel mode to user mode).
- Improved security (processing of protected audio content takes place in a secure, lower-privilege process).
- Assignment of particular system-wide roles (console, multimedia, and communications) to individual audio devices.
- Software abstraction of the audio endpoint devices (for example, speakers, headphones, and microphones) that the user manipulates directly.
https://msdn.microsoft.com/en-us/library/windows/desktop/dd370784%28v=vs.85%29.aspx
Of special interest is that there is an exclusive mode for rendering audio, i.e. there is a mode where an application has exclusive access to the audio device without being disturbed by third parties.
The aim of the YASAPI plugin is to make the WASAPI exclusive mode for audio rendering available to the users of Winamp.
The name of the plugin was choosen because there are already at least two WASAPI output plugins for Winamp:
Installation is as easy as downloading and running the latest NSIS installer from the project's download page.
Even if the plug-in runs without any further configuration (not very likely) you may wish to configure it. In order to enable configuration you need some GTK runtime. You have two choices to make the plug-in familiar with a GTK runtime:
There are two sides the YASAPI plugin has to take into account:
The implementation on the WASAPI side follows along the lines of an example provided by Microsoft. The startegy shown in this example is not only applicable for shared mode streams but also for exclusive mode ones, i.e. not the share mode should be emphasized but what is known as the push model. There is also an example demonstrating the pull model in conjunction with the exclusive mode. In that sence there are four strategies:
The YASAPI plugin implements the first two strategies, i.e. the ones based on the push model.
The push model, in principle, works as follows:
But the YASAPI plugin not only has to take into account the
WASAPI side (the loop consisting of sleeping and writing to the
audio device) but also the Winamp side because Winamp provides
the audio samples which should be played in an completely
unpredictable way.
The YASAPI plugin decouples the two sides by means of a
ring or circular buffer.
That way,
According to step 2 of the push model sketched above,
it shoud become clear that the ring buffer should be at least as
large (or larger) as the buffer the plugin's WASAPI component shares
with the audio device.
The YASAPI NT plug-in comes with a configuration dialog which described
in the following. The configuration dialog's top region presents the most
important parameters: Below the top region you find a notebook control consisting of five
pages: The notebook control's first page labelled Common looks as follows:
On the next page labeled WASAPI there are the following per
device options:
On the next page labeled YASAPI there are the following per
device options:
The next page labeled Monitor looks the following:
The final page labeled Explore looks the following:
Just to name a few we'd like to thank (in no particular order) The following message posted by me to the top-level (sticky) thread
Winamp News in
forum the
Winamp Discussion
forum silently isappeared without any comment:
Dear DJ Egg,
I'm not certain whether you are the right person to address my reqest.. I'm not even certain about who rules this forum. My impression is that you are the only one "official" left (i.e. one with a contract to the owners of Winamp). All the rest including this forum's moderators seem to be volunteers.
As you may have noticed, since some time I have a conflict with some of the former contractors of Winamp, "DrO", regarding the question of intellectual property. As it turns out, this former contractor, "DrO", disrespects intellectual property. He advertises a product he calls "Not So YASAPI Output Plug-in v1.0 Beta" which is a close to 100% clone of YASAPI cf. here for details)
As it turns out that at the blog of "DrO" some of his fanboys comment we know by their nicknames are frequent posters of this forum, among them some Pawel:
Could you please investigate whether this Pawel is identical to this forum's moderator with the same nickname and in case it turns out to be true fire him from his job as a moderator?
Thank you in advance and best regards,
Peter
On his blog Darren Owen ("DrO")
claims:
For further details refer to the
Winamp forum.
The
further explanations
by Darren Owen ("DrO") are simply laughable:
Darren, it's not your WASAPI plug-in, it's mine. Even with that little changes you've made you've perfectly demonstrated that you don't have the slightest idea on how this (my) plug-in is supposed to work and you've managed introducing a major bug into the configuration.
Update 2018-02-16:
Meanwhile "DrO" on his web site confirms that his buggy GPL clone is just a fake and that he's
distributing an non GPL version to registered so called "beta testers":
As it seems, this way he likes to trick users into registering.
5. Configuration
will result in an error. (BTW: In case you're also interested in
Exclusive Mode playback you should ensure that both checkboxes
labeled Exclusive Mode are checked which they are by default.)
6. References
,
7. A Message Silently Disappearing from the
Winamp Forums
8. Some Additional Notes on Darren Owen ("DrO")
The YASAPI plug-in is released under a license which allows for anyone to take the code and do with it as they please as long as any code codes (be that new or based on the existing source) is also provided.
That's of course true. And I'm the last one to have ever told something different. But if doing so, changing just a few lines of code out of about 20.000 just in order to rectify putting his name on the product I consider a clear case of plagiarism:
So I'm now in a position where if I were to make my own WASAPI output plug-in, I'm almost certain he'd claim I was just plagiarising his work even if it was written from scratch as I've said that I'd already had a look at the available source code for his plug-in.
the reported issue is down to the plug-in & not having updated the
non-WACUP version of the plug-in to get those fixes. I hope to have that
situation resolved later on in the coming week (hopefully also having
the source on github instead of doing zipped code bundles).