define(M4_URL,$1)dnl define(M4_REF_EXT,$2)dnl define(M4_REF_INT,$2)dnl define(M4_MARK,$2)dnl define(M4_EM,$1)dnl define(M4_BOLD,$1)dnl define(M4_PARASITE,M4_EM(parasite))dnl define(M4_V2_0_0_UNDEFINED,0)dnl define(M4_V2_0_0_DEFINED,1)dnl define(M4_V2_0_0,M4_V2_0_0_DEFINED)dnl ifelse(M4_V2_0_0,M4_V2_0_0_DEFINED, define(M4_V2_0_1_BETA1_UNDEFINED,0)dnl define(M4_V2_0_1_BETA1_DEFINED,1)dnl define(M4_V2_0_1_BETA1,M4_V2_0_1_BETA1_UNDEFINED))dnl
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 M4_REF_EXT(`http://www.gnu.org/licenses/',<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.
M4_MARK(`political')M4_REF_EXT(`https://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants',`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.
M4_MARK(`note')PLEASE NOTE THAT THIS PROJECT IS AN EXPERIMENTAL RATHER THEN AN INDUSTRIAL STRENGTH EFFORT. THIS PROJECT IS NOT FOR YOU. IT IS FOR ME IN ORDER TO LEARN SOMETHING. IF THERE IS SOMETHING ALONG THE WAY I CAN DO FOR YOU THAT'S GREAT!
Home: | M4_URL(`http://out-yasapi.sourceforge.net/') | |
Project: | M4_URL(`http://sourceforge.net/projects/out-yasapi/') | |
Download: | M4_URL(`http://sourceforge.net/projects/out-yasapi/files/out-yasapi/') | |
Winamp Forum: | M4_URL(`http://forums.winamp.com/showthread.php?t=380396') (discontinued) | |
Input Plugin: | M4_URL(`http://in-ffsox.sourceforge.net/') | |
Loudness Normalization: | M4_URL(`http://bs1770gain.sourceforge.net/') | |
M4_URL(`http://r128gain.sourceforge.net/') | ||
Keep HDD Awake: | M4_URL(`http://gen-hdd.sourceforge.net/') | |
Yet Another Shuffle: | M4_URL(`http://gen-yas.sourceforge.net/') |
2018-??-?? | M4_MARK(2.1.0-beta1)M4_REF_EXT(https://sourceforge.net/projects/out-yasapi/files/out_yasapi-nt/2.1.0-beta1/,2.1.0-β1) |
|
2018-05-06 | M4_MARK(2.0.0)M4_REF_EXT(https://sourceforge.net/projects/out-yasapi/files/out_yasapi-nt/2.0.0/,2.0.0) |
|
2018-05-06 | Following is the perfect answer to the
M4_REF_INT(question,question)
from the M4_PARASITE's forum:
M4_REF_EXT(`https://forums.guru3d.com/threads/the-asio-driver.417458/#post-5484056',Post (Oct 21, 2017))
taken from the
M4_REF_EXT(https://forums.guru3d.com/,guru3D forums)
makes the essential point (although the guy seem to mix up
M4_EM(WASAPI) with M4_EM(ASIO) and that one should fall back
on M4_EM(Shared Mode) only if M4_EM(Exclusive Mode) for
some reason does not work. Only in case M4_EM(Shared
Mode) is used with the same format configured with
M4_EM(Control Panel → Hardware and Sound → Sound
→ Playback → Device → Properties) there should
be no difference to M4_EM(Exclusive Mode)):
![]() This guy apart each theory M4_EM(experienced) the huge potential w.r.t audio reproduction each PC M4_EM(has) due to M4_EM(WASAPI). The only thing M4_EM(YASAPI/NT) adds is to make this potential available to M4_EM(Winamp) users. M4_EM(Tip): We're digitally connecting our PC to the amplifier by using an inexpensive M4_EM(USB to Coaxial/TOS adapter) and that way using the quality M4_REF_EXT(https://en.wikipedia.org/wiki/Digital-to-analog_converter,DAC) build-in to our amplifier in order to convert from the digital to the analog domain. |
|
2018-05-05 | M4_MARK(yagtk-rt-180503-0953)Version M4_REF_EXT(https://sourceforge.net/projects/yagtk-rt/files/180503-0953/,180503-0953) of the M4_EM(GTK+) runtime is available. (No version change visible from the surface but at least an updated version of M4_EM(libcairo) is contained.) | |
2018-04-30 |
M4_MARK(yagtk-rt-180426-0807)Uploaded version
M4_REF_EXT(https://sourceforge.net/projects/yagtk-rt/files/180426-0807/,180426-0807)
of the M4_EM(GTK+) runtime lifting M4_EM(libgtk)'s version from M4_EM(3.22.29)
to M4_EM(3.22.30) (cf. M4_REF_INT(yagtk-rt-180412-1003,v180412-1003)):
![]() |
|
2018-04-29 | M4_MARK(2.0.0-beta10)M4_REF_EXT(https://sourceforge.net/projects/out-yasapi/files/out_yasapi-nt/2.0.0-beta10/,2.0.0-β10) | Fixed label M4_EM(Device Period) erroneous linked to combo box M4_EM(Strategy) and not to combo box M4_EM(Mode) as it should be. |
2018-04-28 | M4_MARK(2.0.0-beta9)M4_REF_EXT(https://sourceforge.net/projects/out-yasapi/files/out_yasapi-nt/2.0.0-beta9/,2.0.0-β9) |
|
2018-04-28 | M4_MARK(2.0.0-beta8)M4_REF_EXT(https://sourceforge.net/projects/out-yasapi/files/out_yasapi-nt/2.0.0-beta8/,2.0.0-β8) |
Yet another β-version. While working on the sync issue we had a
closer look at M4_EM(Pause) leading to some further improvements:
|
2018-04-26 | M4_MARK(2.0.0-beta7)M4_REF_EXT(https://sourceforge.net/projects/out-yasapi/files/out_yasapi-nt/2.0.0-beta7/,2.0.0-β7) | Needed another β-version because we've resolved a subtle synchronization issue: With this version the plug-in defers applying commands like M4_EM(Pause) or M4_EM(Flush) to be in sync with a playback cycle. |
2018-04-23 | M4_MARK(2.0.0-beta6)M4_REF_EXT(https://sourceforge.net/projects/out-yasapi/files/out_yasapi-nt/2.0.0-beta6/,2.0.0-β6) |
|
2018-04-22 | M4_REF_EXT(`https://sourceforge.net/projects/out-yasapi/files/out_yasapi-nt/2.0.0-beta5/',`2.0.0-β5') |
|
2018-04-20 |
|
|
2018-04-20 | M4_REF_EXT(`https://sourceforge.net/projects/out-yasapi/files/out_yasapi-nt/2.0.0-beta4/',`2.0.0-β4') | The user already mentioned notified us by PM that selecting a device hadn't worked as expected. This preview release fixes this (silly) bug. Many thanks again Ralf! |
M4_MARK(`fixrt')2018-04-20 |
|
|
2018-04-19 |
|
|
2018-04-16 | M4_REF_EXT(`https://sourceforge.net/projects/out-yasapi/files/out_yasapi-nt/2.0.0-beta3/',`2.0.0-β3') |
|
2018-04-12 | M4_REF_EXT(`https://sourceforge.net/projects/out-yasapi/files/out_yasapi-nt/2.0.0-beta2/',`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
M4_REF_EXT(`http://forums.winamp.com/showthread.php?s=e3f7adbb0a71891bb74427e67599c59f&p=3153134#post3153134',`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 M4_PARASITE who likes tricking users into reporting to him and not to the plug-in's author: |
|
2018-04-08 | M4_REF_EXT(`https://sourceforge.net/projects/out-yasapi/files/out_yasapi-nt/2.0.0-beta1/',`2.0.0-β1') |
|
2018-02-16 | Updated M4_REF_INT(parasite,Some Additional Notes Regarding the Parasite). | |
2017-04-27 | As a sort of side project to out_yasapi I've created
milkdrop2-compile:
|
|
2017-01-10 | Added a M4_REF_INT(political,`political statement') to the top
of this page:M4_REF_EXT(`https://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants',`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. |
|
M4_MARK(`2016-08-11')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
M4_REF_EXT(`https://en.wikipedia.org/wiki/Libert%C3%A9,_%C3%A9galit%C3%A9,_fraternit%C3%A9',`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 |
Added the following personal statement to the About
dialog and to the projects home page at
M4_REF_INT(`note',`http://out-yasapi.sourceforge.net/'):
PLEASE NOTE THAT THIS PROJECT IS AN EXPERIMENTAL RATHER THEN AN INDUSTRIAL STRENGTH EFFORT. THIS PROJECT IS NOT FOR YOU. IT IS FOR ME IN ORDER TO LEARN SOMETHING. IF THERE IS SOMETHING ALONG THE WAY I CAN DO FOR YOU THAT'S GREAT! |
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 regarding 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, M4_REF_EXT(`https://msdn.microsoft.com/en-us/library/windows/desktop/dd370877%28v=vs.85%29.aspx',`reset') the M4_REF_EXT(`https://msdn.microsoft.com/en-us/library/windows/desktop/dd370865%28v=vs.85%29.aspx',`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 M4_REF_EXT(`https://msdn.microsoft.com/en-us/library/windows/desktop/dd370876%28v=vs.85%29.aspx',`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 M4_REF_EXT(`http://slickproductions.org/notsofatso.php',`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 M4_REF_EXT(`https://msdn.microsoft.com/en-us/library/windows/desktop/dd370791%28v=vs.85%29.aspx',`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 M4_REF_EXT(`https://msdn.microsoft.com/en-us/library/windows/desktop/dd370784%28v=vs.85%29.aspx',`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.
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 M4_REF_EXT(`https://en.wikipedia.org/wiki/Nullsoft_Scriptable_Install_System',`NSIS') installer from the M4_REF_EXT(`https://sourceforge.net/projects/out-yasapi/files/out_yasapi-nt/',project's download page).
Even if the plug-in runs without any further M4_REF_INT(M4_CHAPTER_CONFIG_MARK,M4_CHAPTER_CONFIG_HEAD) (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 M4_REF_EXT(`https://msdn.microsoft.com/en-us/library/windows/desktop/dd316756%28v=vs.85%29.aspx',`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 M4_REF_EXT(`https://msdn.microsoft.com/en-us/library/windows/desktop/dd370844%28v=vs.85%29.aspx',`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.
M4_MARK(`push')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 M4_REF_EXT(`http://en.wikipedia.org/wiki/Circular_buffer',`ring or circular buffer'). That way,
According to step 2 of the push model sketched M4_REF_INT(`push',`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. M4_MARK(M4_CHAPTER_CONFIG_MARK)
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: ifelse(M4_V2_0_0,M4_V2_0_0_DEFINED,
On the next page labeled WASAPI there are the following per device options: ifelse(M4_V2_0_0,M4_V2_0_0_DEFINED,
On the next page labeled YASAPI/NT there are the following per device options: ifelse(M4_V2_0_0,M4_V2_0_0_DEFINED,
The next page labeled Monitor looks the following: ifelse(M4_V2_0_0,M4_V2_0_0_DEFINED,
The final page labeled Explore looks the following: ifelse(M4_V2_0_0,M4_V2_0_0_DEFINED,
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 M4_REF_EXT(`http://forums.winamp.com/showthread.php?t=374929',`Winamp News') in forum the M4_REF_EXT(`http://forums.winamp.com/forumdisplay.php?f=8',`Winamp Discussion') forum silently disappeared without any comment:
M4_MARK(M4_CHAPTER_PARASITE_MARK)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 (M4_REF_EXT(`http://forums.winamp.com//showthread.php?p=3066142#post3066142',`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 the M4_PARASITE M4_REF_EXT(`parasite.html',claims):
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:
For further details refer to the M4_REF_EXT(`http://forums.winamp.com/showthread.php?p=3066142&postcount=490',`Winamp forum').
The M4_PARASITE's M4_REF_EXT(`parasite.html',further explanations) 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 the M4_PARASITE on his web site M4_REF_EXT(`parasite.html',confirms) that his buggy GPL clone is just a fake and that he's distributing (by violating YASAPI's license) a non GPL version to registered so called "beta testers":
As it seems, this way he (the "Hero Member", ha ha, what kind of people are attracted by such a M4_REF_EXT(`https://en.wikipedia.org/wiki/Spasticity',`spast')?) likes to trick users into registering.