Go Back   Winamp & SHOUTcast Forums > Winamp > Winamp Discussion

Reply
Thread Tools Search this Thread Display Modes
Old 29th May 2016, 20:14   #321
Aminifu
Forum King
 
Aminifu's Avatar
 
Join Date: Aug 2011
Location: Chicago, IL
Posts: 4,518
Quote:
Originally Posted by chros View Post
monaural mode: if I get you right does it mean that every channel will be the same? (for example, no stereo at the front channels?)
Yes, the monaural mode mixes all the input channels (except for the LFE) together and provides the resulting output to each output channel (except for the LFE). One way to use this mode is to get 6 identical speakers and put 1 in each of six separate rooms (the LFE channel would be left disconnected). You lose the stereo effect, but you still would hear all the sounds present in the left and right stereo input channels


Quote:
Originally Posted by chros View Post
So, what's your preferred custom matrix to output 4 channel from stereo?
I don't have one. I have only used 3 channel (2.1), five channel (4.1), and six channel (5.1) speaker systems. I assume a 4 channel (3.1) system would provide a front center, front left, front right, and LFE channel.

The matrix mixer plug-in provides a mixing matrix on it's mixer configuration tab. The 6 possible input channels are listed along the horizontal axis (column headings) and the 6 possible output channels are listed along the vertical axis (row headings). The value entered in the square that corresponds to the intersection of a particular input and output channel determines the nature of that input that is sent to that output. A value of "1" sends the full unchanged input to the output. A value of "0.707" sends the input's frequencies at half their full amplitude to the output. Using a negative value (e.g. "-1" or "-0.707") inverts the frequencies from an input before sending them to an output.


Quote:
Originally Posted by chros View Post
Really? I didn't think about this (it was around 15 years(! ) when I dealt with mp3 encoding).
I'm reluctant to try to summarize the differences (the technical info is on the internet) between stereo, joint stereo, and dual channel encoding, for fear of providing miss-information. When manually simulating surround sound, in the case where the encoding method results in the left and right inputs containing mostly different sounds, then it is easy to direct these sounds to the desired outputs. In the case where the left and right inputs contain mostly the same sounds with some differences mixed in, then it may be desirable to extract the differences before sending them to the desired output. For example, sending the full left input and the full inverted right input (when both are mostly the same) to the same output channel would result in only the differences between these inputs being output on that channel (since the same, but inverted, frequencies would cancel each other out).


In 2016, it shouldn't be this difficult to enjoy music the way you want to. But, alas, it still is.

Winamp Pro 5.666.3516 fully-patched - Komodo X Touchscreen by Victhor skin
Windows 10 Home 64-bit desktop - Logitech Z906 5.1 speaker system
Aminifu is offline   Reply With Quote
Old 29th May 2016, 20:49   #322
Aminifu
Forum King
 
Aminifu's Avatar
 
Join Date: Aug 2011
Location: Chicago, IL
Posts: 4,518
Quote:
Originally Posted by pbelkner View Post
Maiko introduces the wrong notion that up-mixing is part of WASAPI. Indeed it is not ...
I agree. Maiko did mix together techniques and technologies. I liked Maiko because it let me resample and/or remix my input files and bypass most of the Windows sound processing, while still letting Windows direct shared or exclusive sound streams to my sound device driver.

Therefore, I didn't really care what it's developer choose to call it.

Those who looked 'under the hood' saw that some things were not being handled completely by WASAPI. I'm still hoping Maiko's developer finds his way back to us and finishes his plug-in. It was extremely useful for my Winamp configuration.The last released version of Maiko mostly works well for me (has a few conflicts with the JTFE plug-in), but I have to configure it manually, which is not a user friendly thing to do.

The latest version of YASAPI's exclusive mode is not working for me. I assume my sound device driver is not providing the necessary support. YASAPI's shared mode (including the new features) is working well (with a few tweaks to my other installed 3rd party sound processing plug-ins).

Winamp Pro 5.666.3516 fully-patched - Komodo X Touchscreen by Victhor skin
Windows 10 Home 64-bit desktop - Logitech Z906 5.1 speaker system
Aminifu is offline   Reply With Quote
Old 30th May 2016, 09:43   #323
chros
Member
 
chros's Avatar
 
Join Date: Nov 2003
Posts: 69
Quote:
Originally Posted by pbelkner View Post
Before the update the parameter bSurround was simply set to FALSE.

Whether this has any real effect I can't tell because I don't own a multi-channel system.
Thanks, again, for the explanation. Well, this doesn't have an effect at all If you come up with another idea we can test it, since we have it.

Quote:
Originally Posted by Aminifu View Post
Yes, the monaural mode mixes all the input channels (except for the LFE) together and provides the resulting output to each output channel (except for the LFE). One way to use this mode is to get 6 identical speakers and put 1 in each of six separate rooms (the LFE channel would be left disconnected). You lose the stereo effect, but you still would hear all the sounds present in the left and right stereo input channels
Thanks, I learned something new today

Quote:
Originally Posted by Aminifu View Post
I don't have one. I have only used 3 channel (2.1), five channel (4.1), and six channel (5.1) speaker systems. I assume a 4 channel (3.1) system would provide a front center, front left, front right, and LFE channel.
Sorry, maybe I wasn't clear enough: I understand Quadrophone under 4 ch (2 fronts and 2 backs) but it can be 4.1 (5 channels) without the center involved.
What's your preferred matrix in this case? (I used AC3Filter for a long-long time (when I didn't have an AVR, just 4.1 speaker system) so I'm familiar with the concept.)

Quote:
Originally Posted by Aminifu View Post
When manually simulating surround sound, in the case where the encoding method results in the left and right inputs containing mostly different sounds, then it is easy to direct these sounds to the desired outputs. In the case where the left and right inputs contain mostly the same sounds with some differences mixed in, then it may be desirable to extract the differences before sending them to the desired output. For example, sending the full left input and the full inverted right input (when both are mostly the same) to the same output channel would result in only the differences between these inputs being output on that channel (since the same, but inverted, frequencies would cancel each other out).
Interesting, thanks for the explanation.

Quote:
Originally Posted by Aminifu View Post
In 2016, it shouldn't be this difficult to enjoy music the way you want to. But, alas, it still is.


Quote:
Originally Posted by Aminifu View Post
The latest version of YASAPI's exclusive mode is not working for me. I assume my sound device driver is not providing the necessary support.
Which OS, hardware do you use? Are neither of the modes working for you? (exclusive-push, exclusive-pull)
You can create a log, maybe we can see something in it (if you haven't done it yet).
All of the modes are working for me on Win8.1 with Intel Display Audio driver v6.16.0.3154 (using HDMI).
On the other side, as for Peter, Maiko doesn't work for me in Exclusive mode.
chros is offline   Reply With Quote
Old 2nd June 2016, 04:17   #324
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
Quote:
Originally Posted by Aminifu View Post
but I still get the exclusive mode issues discussed in post #256 above on my system.
Please double check whether you have enabled at least Allow applications to take exclusive control of this device in Windows system control (System Control -> Sound -> Properties):

pbelkner is offline   Reply With Quote
Old 2nd June 2016, 05:02   #325
braindumps
Junior Member
 
Join Date: Jun 2016
Posts: 1
thanks for telling about other(WA)SAPI Output Plugin for Winamp (YASAPI) .
braindumps deals exams
braindumps is offline   Reply With Quote
Old 6th June 2016, 17:17   #326
Aminifu
Forum King
 
Aminifu's Avatar
 
Join Date: Aug 2011
Location: Chicago, IL
Posts: 4,518
Quote:
Originally Posted by chros View Post
Sorry, maybe I wasn't clear enough: I understand Quadrophone under 4 ch (2 fronts and 2 backs) but it can be 4.1 (5 channels) without the center involved.
What's your preferred matrix in this case? (I used AC3Filter for a long-long time (when I didn't have an AVR, just 4.1 speaker system) so I'm familiar with the concept.)
I use sound pressure measuring instruments (with brownian, pink, and white sound samples) and my ears when setting up my sound system. The instruments let me determine a technically correct 'sweet spot' and then I further adjust for what my ears actually hear.

For my 5 channel (4.1) system I configured the left and right inputs to the front left, front right, rear left, rear right, and LFE output channels. I sent the full stereo inputs to their respective front and rear output channels and combined them (at one quarter amplitude) for the LFE channel to the subwoofer. For music, I used the matrix mixer's 'distance from speakers' feature to virtually place the rear channels farther away than the front channels to create a sort of rear echo effect (or maybe it was the other way around, this was some time back). Then I slightly adjusted the gains (up or down) on each channel to get the balanced sound I like with very little chipping. I also used the Windows sound utility to adjust the volume of each channel to compensate for the non-symmetrical placement of my speakers (that the shape of the room my system is in forces me to use) and because I don't hear equally well in my left and right ears.

I don't use the 'distance' feature very much anymore and just set the rear channels' volume to be slightly louder or softer than the front, depending on what I'm listening to. After everything is all setup, I use the main volume control on my speaker system's remote to control overall volume (leaving the Winamp volume control set to 100%). While setting up, I have the main volume control just loud enough to hear everything clearly.

Yeah, I go thru a lot to get as close as I can (on a relatively small budget) to the quality sound I like.


Quote:
Originally Posted by chros View Post
Which OS, hardware do you use? Are neither of the modes working for you? (exclusive-push, exclusive-pull)
You can create a log, maybe we can see something in it (if you haven't done it yet).
All of the modes are working for me on Win8.1 with Intel Display Audio driver v6.16.0.3154 (using HDMI).
My OS, Winamp, and speaker system versions are listed in my signature below. I'm using an old Creative Audigy Platinum soundcard with a driver (http://forums.creative.com/showthread.php?t=723431) modified by Daniel Kawakami (http://www.wired.com/2008/04/daniel_k-who-fi/). Creative never released a full featured driver for Windows Vista and 7 for their older cards. My old Platinum still works great and I'm not going to junk it until it stops working (or it's mobo interface is no longer supported). My mobo's sound chip introduces too much static into it's speaker outputs.


Quote:
Originally Posted by chros View Post
On the other side, as for Peter, Maiko doesn't work for me in Exclusive mode.
Setting up Maiko properly was not very intuitive and it didn't help that it's matrix and output channel gain configuration panels were not working properly in the last few releases. For some configurations, it was necessary to use music files with the same or re-sampled characteristics that were set in the Windows sound utility's default format option. It also required that the speakers be connected to the correct channels as provided by the computer's hardware. For multi-channel (5.1) speaker systems, some computers are wired to use rear channels and some use side channels. 7.1 hardware has both. Maiko's matrix supported all these arrangements and it was necessary to configure for what was connected (rear to rear or rear to side). However, the channels weren't labelled properly on Maiko's configuration page, so it required asking the developer what was what, which I did several times (all discussed in the very long thread on Maiko in the Winamp Development sub-forum). Sometimes Maiko's auto configure mode could figure things out on it own and sometimes it couldn't.

As pbelkner said earlier, Maiko was not a true WASAPI implementation. It was more like a hybrid.

Winamp Pro 5.666.3516 fully-patched - Komodo X Touchscreen by Victhor skin
Windows 10 Home 64-bit desktop - Logitech Z906 5.1 speaker system

Last edited by Aminifu; 6th June 2016 at 19:20.
Aminifu is offline   Reply With Quote
Old 7th June 2016, 15:47   #327
Aminifu
Forum King
 
Aminifu's Avatar
 
Join Date: Aug 2011
Location: Chicago, IL
Posts: 4,518
@chros and pbelkner,

The diagram shown in this link (http://maiko.elementfx.com/forum/index.php?topic=22.0) and the user manual (http://maiko.elementfx.com/forum/index.php?topic=7.0) may be useful to better understanding Maiko and getting it to work for you.

Better descriptions of the mixer (matrix) and balance (channel gain) configuration tabs are in the Maiko thread in the Winamp Development sub-forum (http://forums.winamp.com/showthread.php?t=302485). Some posts in the last 4 pages contain the best info related to the last few releases.

Winamp Pro 5.666.3516 fully-patched - Komodo X Touchscreen by Victhor skin
Windows 10 Home 64-bit desktop - Logitech Z906 5.1 speaker system
Aminifu is offline   Reply With Quote
Old 7th June 2016, 16:19   #328
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
Quote:
Originally Posted by Aminifu View Post
The diagram shown in this link (http://maiko.elementfx.com/forum/index.php?topic=22.0) and the user manual (http://maiko.elementfx.com/forum/index.php?topic=7.0) may be useful to better understanding Maiko and getting it to work for you.

Better descriptions of the mixer (matrix) and balance (channel gain) configuration tabs are in the Maiko thread in the Winamp Development sub-forum (http://forums.winamp.com/showthread.php?t=302485). Some posts in the last 4 pages contain the best info related to the last few releases.
Many thanks for the links. This confirms what I suspect that Maiko should have better been called a XAudio2/XAPO (rather then WASAPI) plugin.

Just to let you now I'm already working on XAudio2/XAPO output and dsp plugins.
pbelkner is offline   Reply With Quote
Old 7th June 2016, 19:48   #329
Aminifu
Forum King
 
Aminifu's Avatar
 
Join Date: Aug 2011
Location: Chicago, IL
Posts: 4,518
Quote:
Originally Posted by pbelkner View Post
...

Just to let you now I'm already working on XAudio2/XAPO output and dsp plugins.
That's good news. Hopefully the exclusive mode (if it is going to have one) of your XAudio2/XAPO output plug-in will work better with my modified Creative driver than YASAPI does.

Winamp Pro 5.666.3516 fully-patched - Komodo X Touchscreen by Victhor skin
Windows 10 Home 64-bit desktop - Logitech Z906 5.1 speaker system
Aminifu is offline   Reply With Quote
Old 10th June 2016, 12:05   #330
chros
Member
 
chros's Avatar
 
Join Date: Nov 2003
Posts: 69
Thanks Aminifu for your explanation.
Quote:
Originally Posted by pbelkner View Post
Just to let you now I'm already working on XAudio2/XAPO output and dsp plugins.
Quote:
Originally Posted by Aminifu View Post
That's good news. Hopefully the exclusive mode (if it is going to have one) of your XAudio2/XAPO output plug-in will work better with my modified Creative driver than YASAPI does.
Woow! Peter, you always surprise us! How is it going? What features will it have?
chros is offline   Reply With Quote
Old 10th June 2016, 15:27   #331
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
Quote:
Originally Posted by chros View Post
How is it going? What features will it have?
Don't expect any new features. The adventure is to explore a new technology. XAudio2 is a framework for streaming audio. In it's essence it can do nothing. Like all frameworks it's just a set of interfaces and some semantics about how they should interact. In order to make development possible there are some default implementations available.

The XAudio2 output plugin is close to be finished. It will be released in the next few days.

Release Early, Release Often!
pbelkner is offline   Reply With Quote
Old 11th June 2016, 16:57   #332
Aminifu
Forum King
 
Aminifu's Avatar
 
Join Date: Aug 2011
Location: Chicago, IL
Posts: 4,518
I forgot to mention that there are 2 apps called matrix mixer. Both can be used to remix stereo input channels to multiple output channels. To clear up any possible confusion, the full name of the one I'm using is "winamp matrix mixer" (https://sourceforge.net/projects/winampmatrixmix/). It contains an output plug-in stacker that is used to direct it's output to another output plug-in. It's configuration window contains 5 tabs and looks like the image below (click on the image to see a larger version).

Click image for larger version

Name:	winampmatrixmixer.jpg
Views:	97
Size:	108.9 KB
ID:	52419

The other app doesn't contain an output plug-in stacker and it's configuration window has 4 tabs which looks like the image below (click on the image to see a larger version).

Click image for larger version

Name:	matrixmixer.jpg
Views:	82
Size:	138.0 KB
ID:	52420

The mixer and gains tabs in both apps look similar and function the same because both apps are based on the AC3Filter app.

Winamp Pro 5.666.3516 fully-patched - Komodo X Touchscreen by Victhor skin
Windows 10 Home 64-bit desktop - Logitech Z906 5.1 speaker system
Aminifu is offline   Reply With Quote
Old 11th June 2016, 16:58   #333
Philippe
Junior Member
 
Join Date: Jun 2016
Posts: 16
Hello,

Thank you very much for this plugin. Since you have implemented the gapless option, I have been using it as my primary output setting!

Therefore, I came upon a few bugs, or missing features, which I am intending to list here. Sorry if you are already aware of them, but I couldn’t find any index of bugs list, request features…


First of all my hardware configuration is an Asus P6T motherboard of which I use the Realtek’s digital coax. ouput. [I used to have an Asus Xonar Essence STX but its driver (relying on the C-media audio panel) was too unstable and no longer maintained. I used to have BSOD using ASIO, and more often even through windows sound, since using the digital output. But I’ll probably soon get a better sound card with analog and digital inputs and outputs]

My software configuration is Windows 7, Winamp 5.666 and the YASAPI plugin v 1.6.4.


Here are the settings I use:




Bugs:

The first major bug I encountered is that when I play a full album as a playlist, after the last track, the device is not released by the plugin. Even if I close winamp, the window disappears, but the process explorer still shows winamp.exe which I got to kill. However, if instead I start to play a track and stop it, the device got released.
If the last track does not end with silence, I can hear the last second played in loop when it stops. (Perhaps this has to do with gapless enabled?)


The second bug, is that when I pause a track… and then move the cursor, the playback takes again (but I haven’t clicked on play). This is really confusing because the player is still on pause mode, but the music is playing. Closing and restarting winamp causes this error message:




Features requests:

a) Here are a few other things I feel that are missing, or questions that I have… Please do not take these as criticism over the plugin; but totally open questions… These aren’t required features for me, but I think they might be improvement.
I have checked the Volume control option, because sometimes it is very helpful to be able to get quieter music in a few clicks when I speak to someone, etc. But, I know that in the audiophile world many people will not check that options to ensure always have a bitperfect playback. While the sound is still at 100% however, I still got bitperfect playback…
But… how does it come that whether the option is checked or unchecked, the EQ settings are working?! I guess the EQ shall be disabled when the option is unchecked, isn’t it?!
How does it come that even if the volume control option is checked, I can’t get the balance working?!
Would it be possible to have an on-screen information (where?) to know whether we are in bitperfect mode or not (ie if there has been any EQ, or volume changes/processing)?!


b) Playback of exotic formats such as 32bits float, seems to crash winamp. Would it be possible at least to handle the error?
I don’t know if playback support depends of the hardware configuration (the soundcard, and the decoder behind it)… But perhaps it would be an option to have a resampling done for formats that can’t be handled, like Windows Sound would do… it may be complicated and not perfect though, but it could permit to avoid winamp loosing the ability to play some kind of files…


Thanks again for this helpful software and for your interest !
Philippe is offline   Reply With Quote
Old 12th June 2016, 04:15   #334
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
v1.6.5

What's new?
  • Stopping player when Winamp closes and not already stopped (needed for gapless mode).
  • Guarding against locking zero sized device buffers.
  • Reworked About dialog.
Links:
pbelkner is offline   Reply With Quote
Old 12th June 2016, 05:41   #335
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
Quote:
Originally Posted by Philippe View Post
after the last track, the device is not released by the plugin. Even if I close winamp, the window disappears, but the process explorer still shows winamp.exe which I got to kill. However, if instead I start to play a track and stop it, the device got released.
In gapless playback the device is not released between tracks. This is the essence of gapless playback.

What's going on there?
  • Winamp sends an open request on the begin of each track supposed that you acquire all resources needed to play the track, e.g. connect to the device.
  • Winamp sends a close request on it's end supposed that you release all resources acquired during open, e.g. release the connection to the device.
  • You can distinguish a close request out of the blue (by e.g. pressing the stop button) from an ordinary close request (e.g. resulting from working through a play list) because the latter ones are preceded by isplaying requests but not the former ones.
  • Anyway, in gapless mode you have to bypass ordinary close requests. Moreover, you have to bypass the series of isplaying requests as well, because you want to avoid playing internal buffers until they are empty. Instead you want to immediately append to them without a gap.
That's the reason why in your case the connection to the device remains open awaiting the next open request. You can work around it by starting a track and closing it immediately.

But, of course, when closing Winamp the connection should be released. This should be fixed with the new release (cf. above).

You should note that the gapless feature is a workaround anyway because Winamp seems not to support it. We can try to make it as smooth as possible but it remains a workaround.
Quote:
Originally Posted by Philippe View Post
If the last track does not end with silence, I can hear the last second played in loop when it stops. (Perhaps this has to do with gapless enabled?)
Please elaborate in more detail or send in a trace.
Quote:
Originally Posted by Philippe View Post
The second bug, is that when I pause a track… and then move the cursor, the playback takes again (but I haven’t clicked on play). This is really confusing because the player is still on pause mode, but the music is playing. Closing and restarting winamp causes this error message:
Unfortunately I'm not able to reproduce it. How do you pause? With the mouse I'm hitting the respective button:


Is there another way? What do you mean by "moving the cursor"?
pbelkner is offline   Reply With Quote
Old 12th June 2016, 05:58   #336
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
Quote:
Originally Posted by pbelkner View Post
Please elaborate in more detail or send in a trace.
Confirmed.
pbelkner is offline   Reply With Quote
Old 12th June 2016, 07:17   #337
Philippe
Junior Member
 
Join Date: Jun 2016
Posts: 16
Quote:
Originally Posted by pbelkner View Post
In gapless playback the device is not released between tracks. This is the essence of gapless playback.

[...]Anyway, in gapless mode you have to bypass ordinary close requests. Moreover, you have to bypass the series of isplaying requests as well, because you want to avoid playing internal buffers until they are empty. Instead you want to immediately append to them without a gap.

That's the reason why in your case the connection to the device remains open awaiting the next open request. You can work around it by starting a track and closing it immediately.
Yes, exactly. But my point was that on the last track of a playlist, Winamp actually stops then. But the close request has not been. So I can not use the device until I either close and kill winamp - or start a new track and stop it.

Quote:
Originally Posted by pbelkner View Post
But, of course, when closing Winamp the connection should be released. This should be fixed with the new release (cf. above).
Great, thank you for the new release !
It actually fix half of the problem though: I can now close winamp properly, but I still get a bug when a playlist end. Please try to play this file in a single-track playlist.

https://www.sendspace.com/file/fux7my

You'll see/hear that you end up with a loop being played. I guess a stop request may be missing when the playlist stops by itself...

But I can now end the mess more properly just by closing winamp.

Quote:
Originally Posted by pbelkner View Post
Please elaborate in more detail or send in a trace.

Unfortunately I'm not able to reproduce it. How do you pause? With the mouse I'm hitting the respective button:


Is there another way? What do you mean by "moving the cursor"?
I meant, first pause the track with the || button. Then, move the position cursor to another time in the song (for example to move from -1:20 to reach -1:50).

Quote:
Originally Posted by pbelkner View Post
Confirmed.
Ah, do you mean that you actually confirmed and reproduced the bug ?!

Thanks again !
Philippe is offline   Reply With Quote
Old 12th June 2016, 09:47   #338
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
v1.6.6

What's new?
  • Fixes regarding gapless playback.
Links:
pbelkner is offline   Reply With Quote
Old 12th June 2016, 09:51   #339
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
Quote:
Originally Posted by Philippe View Post
Please try to play this file in a single-track playlist.

https://www.sendspace.com/file/fux7my
Unfortunately it does not work.

Please try the new version.
pbelkner is offline   Reply With Quote
Old 12th June 2016, 09:57   #340
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
Quote:
Originally Posted by Philippe View Post
I meant, first pause the track with the || button. Then, move the position cursor to another time in the song (for example to move from -1:20 to reach -1:50).
That description fits my simple mind

It's reproduced and it used to happen not just with gapless playback.
pbelkner is offline   Reply With Quote
Old 12th June 2016, 10:08   #341
Philippe
Junior Member
 
Join Date: Jun 2016
Posts: 16
Quote:
Originally Posted by pbelkner View Post
Unfortunately it does not work.

Please try the new version.
The bug was still present in the v1.6.5, but has been fixed in 1.6.6. Thank you !!

Quote:
Originally Posted by pbelkner View Post
That description fits my simple mind

It's reproduced and it used to happen not just with gapless playback.
Thank you!
Just came upon another little bug:
a) Create a playlist with 2 (or more) tracks.
b) Play the first track, then pause.
c) Double-click on the other track, to start it.
=> The music plays fine, but the time and position stays at zero / are not updated.
d) Stop and play another track, the problem remains.
Then move the time-position cursor: the problem is fixed and the time-display is updated again.
Another solution is to switch to pause/play mode a few times, and it returns to normal again.
Philippe is offline   Reply With Quote
Old 12th June 2016, 10:23   #342
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
Quote:
Originally Posted by Philippe View Post
Just came upon another little bug:
a) Create a playlist with 2 (or more) tracks.
b) Play the first track, then pause.
c) Double-click on the other track, to start it.
=> The music plays fine, but the time and position stays at zero / are not updated.
d) Stop and play another track, the problem remains.
Then move the time-position cursor: the problem is fixed and the time-display is updated again.
Another solution is to switch to pause/play mode a few times, and it returns to normal again.
I think all these kinds of bugs are due to the same problem: combining pause and flush requests does not work. This remains open for now.

The other class of bugs with respect to gapless playback seem to be solved for now.
pbelkner is offline   Reply With Quote
Old 12th June 2016, 10:51   #343
chros
Member
 
chros's Avatar
 
Join Date: Nov 2003
Posts: 69
Quote:
Originally Posted by Philippe View Post
First of all my hardware configuration is an Asus P6T motherboard of which I use the Realtek’s digital coax. ouput. [... But I’ll probably soon get a better sound card with analog and digital inputs and outputs]
Do you need a better soundcard if you use coax output? I mean it should be digital. (I use HDMI output with my AVR from my laptop and I don't need a normal soundcard at all.)

Quote:
Originally Posted by Philippe View Post
b) Playback of exotic formats such as 32bits float, seems to crash winamp. Would it be possible at least to handle the error?
Quote:
Originally Posted by pbelkner View Post
[*]Guarding against locking zero sized device buffers.
Regarding to what Philippe suggested, you know, I have this "strange" HDMI setup.
As I reported earlier, player is crashed with Yasapi when (DS output is working well, and Saenar with MPC-HC also good: they don't crash, there is no sound till there's no monitor, and they continue the playback when monitor comes back):
1. the monitor goes to sleep (either automatically or by keyboard shortcut)
2. if I turn on the TV: that means the default audio device is changed in Windows

I've got this in debug window with case 1. :
code:
AUDCLNT_E_DEVICE_INVALIDATED: "yasapi_player.c" (338).
Error getting position: "yasapi_player.c" (341).



Interesting thing is: if the device buffer is large (e.g. 7.0 as default) and I'm quick to get back the monitor, then I don't have crash since the device buffer didn't get empty in this short amount of time.

So, it would be nice to handle somehow these things, with either:
- stopping the playback
- or, it would be better, continue the playback when a device is ready again

I know that You don't have this kind of setup, but I can try it out whatever you want me to do

I tried to use Verbose 3 in debug options but I can get just only "couple" of lines in debug window and I can't see all of them (it's so fast).
Can you make an option in debug version to put this info into a logfile (e.g. in AppData dir, with a date/time in the name)?

Thanks for the new version!
chros is offline   Reply With Quote
Old 12th June 2016, 11:16   #344
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
v1.6.7

What's new?
  • 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).
Links:
pbelkner is offline   Reply With Quote
Old 12th June 2016, 13:56   #345
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
v1.6.8

Quote:
Originally Posted by chros View Post
Can you make an option in debug version to put this info into a logfile (e.g. in AppData dir, with a date/time in the name)?
What's new?
  • 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.
Links:
pbelkner is offline   Reply With Quote
Old 12th June 2016, 16:36   #346
Philippe
Junior Member
 
Join Date: Jun 2016
Posts: 16
Quote:
Originally Posted by pbelkner View Post
I think all these kinds of bugs are due to the same problem: combining pause and flush requests does not work. This remains open for now.
Ok, no problem. I think the plugin has gained a lot of stability with the latest patches.


Quote:
Originally Posted by pbelkner View Post
The other class of bugs with respect to gapless playback seem to be solved for now.
Well, there is actually still a little bug with the device being not released…

I used two players for this: Winamp with the YASAPI plugin (with same settings as above) + Audacious which uses Windows Sound (I don’t think it handles properly other ways).
a) Start each of the programs.
b) Play a track with Audacious.
=> the tracks plays ok.
c) Stop the track in Audacious, and then start a track in Winamp.
d) Start a track in Audacious
=> Audacious shows an error because the device is used: OK
e) Stop the track in Winamp
f) Start a track in Audacious
=> the tracks plays ok, the device has been released.
c) Stop the track in Audacious, and then start single-track playlist in Winamp.
d) Wait until the playlist ends. Then start a track in Audacious
=> Audacious shows an error because the device is used: device has not been released.

As mentioned before, it is easy to workaround this by start and explicitly stop a track on winamp. Or just closing winamp.



Quote:
Originally Posted by chros View Post
Do you need a better soundcard if you use coax output? I mean it should be digital.
Hehe, that’s exactly what I think indeed… However, I’m tempted in a better sound card (the ESI U24 XL to name it) for a couple of things:
a) Digital inputs. This model seems to be one of the few having such digital inputs, without getting a very expensive professional soundcard. Such inputs can be used to convert into files DAT or early MD (pre Net-MD). The other way would be using a (discontinued) iRiver device.
b) Proper ASIO support. Some audio editing softwares recommends (to bypass Windows Sound), or sometime event require, ASIO… I have installed ASIO 4 ALL to emulate an ASIO interface, as the Realtek chipset doesn’t implement ASIO; but proper ASIO would be finer I guess.
But both of these requirements are off-topic with the YASAPI plugin.
And in that case I guess for digital output any soundcard would do the same job, as long as buffer settings are set correctly… isn't it ?!
Philippe is offline   Reply With Quote
Old 12th June 2016, 17:21   #347
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
Quote:
Originally Posted by Philippe View Post
Well, there is actually still a little bug with the device being not released…

I used two players for this: Winamp with the YASAPI plugin (with same settings as above) + Audacious which uses Windows Sound (I don’t think it handles properly other ways).
a) Start each of the programs.
b) Play a track with Audacious.
=> the tracks plays ok.
c) Stop the track in Audacious, and then start a track in Winamp.
d) Start a track in Audacious
=> Audacious shows an error because the device is used: OK
e) Stop the track in Winamp
f) Start a track in Audacious
=> the tracks plays ok, the device has been released.
c) Stop the track in Audacious, and then start single-track playlist in Winamp.
d) Wait until the playlist ends. Then start a track in Audacious
=> Audacious shows an error because the device is used: device has not been released.

As mentioned before, it is easy to workaround this by start and explicitly stop a track on winamp. Or just closing winamp.
It's not a bug, it confirms that it exactly works as designed.

I understand that you consider it not optimal but that's the price to pay in order to have gapless playback.

EDIT: There's another way to disconnect Winamp from the device:
  • Open Options -> Preferences -> Output.
  • Click to another output plugin then the current.
  • Click back to the previous output plugin.
  • Close Options -> Preferences -> Output.
pbelkner is offline   Reply With Quote
Old 12th June 2016, 18:14   #348
Aminifu
Forum King
 
Aminifu's Avatar
 
Join Date: Aug 2011
Location: Chicago, IL
Posts: 4,518
Quote:
Originally Posted by pbelkner View Post
It's not a bug, it confirms that it exactly works as designed.
...
I understand YASAPI is working as designed. After-all, if it released the sound device (before Winamp shutdown or another output plug-in is selected) and another app took control of it, then YASAPI couldn't get it back until the other app released it.

Maiko, in it's default exclusive mode, did the same thing. However, Maiko provided an option that would allow it to release the sound device after it determined it wasn't using the device for a few seconds (2 or 3, if I remember correctly).

Would you consider adding such an option to YASAPI? It would make it easier to switch to another digital media player temporarily (without closing Winamp). If you decide, it is not worth the effort to add such an option, I can understand that too.

Winamp Pro 5.666.3516 fully-patched - Komodo X Touchscreen by Victhor skin
Windows 10 Home 64-bit desktop - Logitech Z906 5.1 speaker system
Aminifu is offline   Reply With Quote
Old 12th June 2016, 18:19   #349
Philippe
Junior Member
 
Join Date: Jun 2016
Posts: 16
Hum... I'm not that sure you understand the issue...
For me this is either a bug, or a design error...
When I said that the device is not released, is actually when the playlist as ended. Therefore the player does not play anymore. I understand that when jumping between one track and another the device shall not be released to ensure gapless. But when the playing has ended, I can't see any point of still locking the device. At that point the state shall be the same as if we had pressed stop.
I don't know how winamp and its plugins are designed, so it may not be possible nor easy, but we shall detect if we are in a playing state or not, and if not, the device shall be released ASAAP (as suggested above, it may be a couple of seconds after actual playing ended).


And, another little bug - sorry ! :
a) Open winamp
b) start play a trck
c) close winamp (without stoping)
d) restart winamp

With DirectSound output plug-in, playing resumes where it was.
Here, there are many error messages, and playing does not resume.

Philippe is offline   Reply With Quote
Old 12th June 2016, 18:45   #350
Aminifu
Forum King
 
Aminifu's Avatar
 
Join Date: Aug 2011
Location: Chicago, IL
Posts: 4,518
Quote:
Originally Posted by pbelkner View Post
...
  • Anyway, in gapless mode you have to bypass ordinary close requests. Moreover, you have to bypass the series of isplaying requests as well, because you want to avoid playing internal buffers until they are empty. Instead you want to immediately append to them without a gap.
...

You should note that the gapless feature is a workaround anyway because Winamp seems not to support it. We can try to make it as smooth as possible but it remains a workaround.

...
There is a slight, but noticeable, output gap between tracks with v1.6.8. I'm only using v1.6.8's shared mode, since it's exclusive mode still allows my system sounds and browser sounds to be heard (at a very low volume relative to Winamp's output volume), along with a clicking noise artifact.

I don't know how it's done (undocumented APIs or hacks) but the DirectSound output plug-in is able to 'backfill' buffers and provide a gapless effect and crossfading without a noticeable gap in the output. The DirectSound output plug-in's 'remove silence' feature can provide a seamless gapless playback effect and it's 'crossfade' feature allows the start of 1 song to overlap the end of another song without any noticeable pause or 'pop' (stop and restart) sound at the point of overlay.

Thinktink's crossfader input plug-in also allows the start of 1 song to overlap the end of another song without any noticeable pause or 'pop' (stop and restart) sound at the point of overlay when used with the DirectSound output plug-in (with it's silence removal and crossfading disabled), but not when it is used with YASAPI. I assume most Winamp 3rd party developers are willing to share insights with each other. Maybe you should ask thinktink what the alternate API method or 'trick' is.

Winamp Pro 5.666.3516 fully-patched - Komodo X Touchscreen by Victhor skin
Windows 10 Home 64-bit desktop - Logitech Z906 5.1 speaker system

Last edited by Aminifu; 12th June 2016 at 21:02.
Aminifu is offline   Reply With Quote
Old 12th June 2016, 18:51   #351
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
Quote:
Originally Posted by Philippe View Post
Hum... I'm not that sure you understand the issue...
For me this is either a bug, or a design error...
You may consider that you don't understand things correctly ...

But I like your approach to test things thoroughly.
Quote:
Originally Posted by Aminifu View Post
I understand YASAPI is working as designed. After-all, if it released the sound device (before Winamp shutdown or another output plug-in is selected) and another app took control of it, then YASAPI couldn't get it back until the other app released it.
You, of course, understand that the issue is not due to a bug or a bad design in/of the output plugin but it is rather inherently due to Winamp. What Philippe don't understand is that we have to invest a lot of ideas and work into what appears him as "natural". It isn't. Winamp is outdated software. Winamp is not able to release any new software. All developers have left this sinking ship.

Quote:
Originally Posted by Aminifu View Post
Maiko provided an option that would allow it to release the sound device after it determined it wasn't using the device for a few seconds (2 or 3, if I remember correctly).
I already thought about setting a timer and come back after, say, 0.5 sec in order to check whether we're in underflow or whether we're really playing. But you have to have in mind that all such ideas are workarounds. A clean solution would be just by Winamp. Only Winamp knows whether playback has transferred to another plugin or playback has ended at all.
pbelkner is offline   Reply With Quote
Old 12th June 2016, 18:53   #352
Aminifu
Forum King
 
Aminifu's Avatar
 
Join Date: Aug 2011
Location: Chicago, IL
Posts: 4,518
Quote:
Originally Posted by Philippe View Post
Hum... I'm not that sure you understand the issue...
For me this is either a bug, or a design error...
When I said that the device is not released, is actually when the playlist as ended. Therefore the player does not play anymore. I understand that when jumping between one track and another the device shall not be released to ensure gapless. But when the playing has ended, I can't see any point of still locking the device. At that point the state shall be the same as if we had pressed stop.
I don't know how winamp and its plugins are designed, so it may not be possible nor easy, but we shall detect if we are in a playing state or not, and if not, the device shall be released.
I understand what you're saying. From the point of view YASAPI's current design, it doesn't know if the stop at the end of a playlist is going to be a long term pause or not (i.e. how long before another playlist is started), so it doesn't release the sound device.

You consider this a design error, I think it is a legitimate design decision on the part of the developer. As with many things, reasonable people can disagree on things when it comes to the choices that are made.

Winamp Pro 5.666.3516 fully-patched - Komodo X Touchscreen by Victhor skin
Windows 10 Home 64-bit desktop - Logitech Z906 5.1 speaker system
Aminifu is offline   Reply With Quote
Old 12th June 2016, 19:03   #353
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
Quote:
Originally Posted by Philippe View Post
And, another little bug - sorry ! :
a) Open winamp
b) start play a trck
c) close winamp (without stoping)
d) restart winamp

With DirectSound output plug-in, playing resumes where it was.
It doesn't. I have to start playback and the track starts from the beginning.
Quote:
Originally Posted by Philippe View Post
Here, there are many error messages, and playing does not resume.
No errors at all. Exact the same behavior as with DS.
pbelkner is offline   Reply With Quote
Old 12th June 2016, 19:05   #354
Philippe
Junior Member
 
Join Date: Jun 2016
Posts: 16
Are you using the same version as Winamp as I ?! I remember this resuming behavior only in the latest winamp version
Philippe is offline   Reply With Quote
Old 12th June 2016, 19:11   #355
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
Quote:
Originally Posted by Philippe View Post
Are you using the same version as Winamp as I ?! I remember this resuming behavior only in the latest winamp version
pbelkner is offline   Reply With Quote
Old 12th June 2016, 19:13   #356
Aminifu
Forum King
 
Aminifu's Avatar
 
Join Date: Aug 2011
Location: Chicago, IL
Posts: 4,518
Quote:
Originally Posted by Philippe View Post
...

And, another little bug - sorry ! :
a) Open winamp
b) start play a trck
c) close winamp (without stoping)
d) restart winamp

With DirectSound output plug-in, playing resumes where it was.
Here, there are many error messages, and playing does not resume.
Another case of point of view. Is it a user error to shutdown without stopping the playback first or a program error to not handle this usage case gracefully?

Winamp used to do the same thing, awhile ago. Then it was decided to save (while the amp was still running) as much as possible of the data that was previously only getting saved at shutdown. Sometimes there wasn't enough time at shutdown to save everything that needed to be saved. Sometimes this still happens depending on what Winamp is doing when it is shutdown. While it is not absolutely necessary, it is prudent to not shutdown Winamp while certain things are still running (e.g. playback, re-scanning the media library, etc.).

The Windows OS has a similar issue. Some users use the computer's power button to stop and start their computers, instead of the options in the start menu. Windows OS developers have tried to account for this behavior, but so far it is still looked at as user error and the user bears the consequences.

Winamp Pro 5.666.3516 fully-patched - Komodo X Touchscreen by Victhor skin
Windows 10 Home 64-bit desktop - Logitech Z906 5.1 speaker system
Aminifu is offline   Reply With Quote
Old 12th June 2016, 19:19   #357
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
Quote:
Originally Posted by Aminifu View Post
Another case of point of view. Is it a user error to shutdown without stopping the playback first or a program error to not handle this usage case gracefully?
Of course it depends on WA. It depends on whether WA is sending at least a quit request. In my version of WA (cf. above hardcopy) it is doing so.
pbelkner is offline   Reply With Quote
Old 12th June 2016, 19:31   #358
Aminifu
Forum King
 
Aminifu's Avatar
 
Join Date: Aug 2011
Location: Chicago, IL
Posts: 4,518
Quote:
Originally Posted by pbelkner View Post
Of course it depends on WA. It depends on whether WA is sending at least a quit request. In my version of WA (cf. above hardcopy) it is doing so.
Yes, but that 'quit' request is followed by a time delay and some 3rd party plug-ins are not able to stop what they're doing in time.

I seem to remember some discussion about Winamp waiting for acknowledgements before proceeding with a shutdown. Some felt that was a bad idea because Winamp could receive a 'quit request' from the OS, which doesn't wait for an acknowledgement. I don't remember what was finally decided.

Winamp Pro 5.666.3516 fully-patched - Komodo X Touchscreen by Victhor skin
Windows 10 Home 64-bit desktop - Logitech Z906 5.1 speaker system
Aminifu is offline   Reply With Quote
Old 12th June 2016, 19:32   #359
Philippe
Junior Member
 
Join Date: Jun 2016
Posts: 16
Hum.. I've got build 3512 from Nov 26, 2013.. it might explain !

Quote:
Originally Posted by Aminifu View Post
Another case of point of view. Is it a user error to shutdown without stopping the playback first or a program error to not handle this usage case gracefully?
To be honest I don't care for myself if the playback resumes or not. At first I found it rather confusing, to turn on winamp, and get it finishing a track I did start playing a couple of days ago!
But, wherever we want this features or not - there is definitely a technical bug as long as I came upon the popups...
Philippe is offline   Reply With Quote
Old 12th June 2016, 19:34   #360
Aminifu
Forum King
 
Aminifu's Avatar
 
Join Date: Aug 2011
Location: Chicago, IL
Posts: 4,518
Quote:
Originally Posted by Philippe View Post
Hum.. I've got build 3512 from Nov 26, 2013.. it might explain !

...
If you decide to upgrade, be sure to use the latest patched version (http://meggamusic.co.uk/winamp/Winamp_Download.htm).

Winamp Pro 5.666.3516 fully-patched - Komodo X Touchscreen by Victhor skin
Windows 10 Home 64-bit desktop - Logitech Z906 5.1 speaker system
Aminifu is offline   Reply With Quote
Reply
Go Back   Winamp & SHOUTcast Forums > Winamp > Winamp Discussion

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump