Announcement

Collapse
No announcement yet.

Yet Another (WA)SAPI Output Plugin for Winamp (YASAPI)

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally Posted by Aminifu View Post
    How does your plug-in determine the audio device to use?
    1. Via CoCreateInstance() it gets an IMMDeviceEnumerator (seems to work at your site).
    2. From the IMMDeviceEnumerator via GetDefaultAudioEndpoint() it gets the default IMMDevice (I assume that's the device you've configured via Control Panel -> Sound, seems to work at your site).

    As far as I can see, there is no automatic up-sampling in WASAPI. When you look at Maiko, for example, it seems to do any DSP itself. On the contrary, YASAPI does not do any DSP (at least yet).
    Winamp v5.666 Build 3516 (x86) + in_ffsox + out_yasapi + gen_yas

    Comment


    • #17
      I was under the impression that the Windows control panel sound utility displays the formats (bit depth & sampling rate) that the audio device's driver supports and that WASAPI would up-sample or down-sample the source to match the format selected. If it doesn't that would explain why the sound quality was different from the up/down sampling done by the various Winamp plug-ins that provide it.

      Windows also has a channel up-mixing feature (called speaker-fill, I think) if the audio driver supports it, but all this does is mirror the stereo channels to the other channels.

      Matrix mixer (and Maiko) allows true automatic or manual matrix mixing of the stereo channels to the output channels (6 in 5.1 or 8 in 7.1 speaker setups). The stereo channels can be combined (in phase or either channel inverted to enhance or remove the identical sounds in each channel) at equal or various output levels and each combination directed to a particular output channel. Delays can be added to each channel as well. Bottom line, the stereo source can be morphed into a semblance of true multichannel surround sound where each output channel can provide something different. The effect can be extended by adding frequency equalizing or other DPS effects (with other plug-ins or soundcard utilities) before or after the mixing.

      Movie soundtracks provide all this on their own, but it's fun playing sound engineer with stereo sources (making subtle or dramatic changes).
      Winamp v5.9.2.10042 - Quinto Black CT v3.9 skin
      Windows 11 Home 64-bit v22H2 desktop - Logitech Z906 5.1 speaker system

      Comment


      • #18
        Hi, Here is the Screenshot of the new Version showing the error:


        hope that helps,
        Kind regards Raver
        lastfm.rimkus.it - last.fm Youtube Radio (buy me)
        www.rimkus.it - Contact Music & More

        Comment


        • #19
          Originally Posted by ravermeister View Post
          Hi, Here is the Screenshot of the new Version showing the error:
          That's the proof: It's the call to IsFormatSupported() from the IAudioClient interface.

          In shared mode it's not just an error but an alternate format is proposed (you can see it when you use the debug version). There are interfaces to transform the audio accordingly. But all that has to be done, it's not coming out of the box.
          Winamp v5.666 Build 3516 (x86) + in_ffsox + out_yasapi + gen_yas

          Comment


          • #20
            That's the proof of what, exactly?

            Are you saying that your plug-in only accepts audio that is a PCM, 2 channel, 16bit, 44.1KHz signal? If not, how are the audio transforms to be accomplished? I don't understand what I'm supposed to do to have your plug-in work for me. Am I supposed to remove everything in the processing chain except for the input decoders and your output plug-in?

            I'm looking for more than a bit perfect reproduction of the source file. If that is what your plug-in is designed to do, then that is prefectly fine for those who only want that. I guess I misunderstood the intent and it's just not suitable for me. So I'll stay with what I have and keep looking for another way to achive WASAPI exclusive mode support for up-sampled and up-mixed source files.
            Winamp v5.9.2.10042 - Quinto Black CT v3.9 skin
            Windows 11 Home 64-bit v22H2 desktop - Logitech Z906 5.1 speaker system

            Comment


            • #21
              v0.3.0

              Originally Posted by A11ectis View Post
              Are there any plans to have the volume slider in Winamp work with YASAPI? I noticed that the out_asio plugin also does not have volume control. Is this just a limitation with these sorts of plugins?
              What's new?
              • Support for volume control.
              • Support for pull strategy.

              For convenience, the relevant links:
              Winamp v5.666 Build 3516 (x86) + in_ffsox + out_yasapi + gen_yas

              Comment


              • #22
                Originally Posted by pbelkner View Post
                What's new?
                • Support for volume control.
                Awesome!

                One other thing I've noticed is that, while Winamp is using YASAPI, other audio sources stop playing. This is a bit of a let down since most of my time using Winamp is also while playing a game on my PC, which I'd still like to be able to hear things in.
                Twitter

                Comment


                • #23
                  Originally Posted by A11ectis View Post
                  One other thing I've noticed is that, while Winamp is using YASAPI, other audio sources stop playing.
                  This is the expected behavior for "exclusive" mode (hence "exclusive" ). Do you also observe this in "shared" mode?
                  Winamp v5.666 Build 3516 (x86) + in_ffsox + out_yasapi + gen_yas

                  Comment


                  • #24
                    Originally Posted by pbelkner View Post
                    This is the expected behavior for "exclusive" mode (hence "exclusive" ). Do you also observe this in "shared" mode?
                    Well now I know what that option does, lol. May I ask what instances there are that would necessitate using exclusive mode?
                    Twitter

                    Comment


                    • #25
                      Originally Posted by A11ectis View Post
                      Well now I know what that option does, lol. May I ask what instances there are that would necessitate using exclusive mode?
                      The ones who otherwise use ASIO (e.g. myself)
                      Winamp v5.666 Build 3516 (x86) + in_ffsox + out_yasapi + gen_yas

                      Comment


                      • #26
                        Originally Posted by pbelkner View Post
                        The ones who otherwise use ASIO (e.g. myself)
                        YASAPI 0.30 sse2 working fine for me. I have Winamp and a dsp plugin "Enhancer" and they are working fine for the time being. My buffer is 5.11x. I have occasional glitches in the audio but nothing which will stop the world. Keep you posted.
                        Powering through with the bolt

                        Comment


                        • #27
                          I still get the error window,
                          with the same error at a slightly different line.

                          I can post the screenshots later if it helps
                          lastfm.rimkus.it - last.fm Youtube Radio (buy me)
                          www.rimkus.it - Contact Music & More

                          Comment


                          • #28
                            Originally Posted by Raj_09 View Post
                            YASAPI 0.30 sse2 working fine for me. I have Winamp and a dsp plugin "Enhancer" and they are working fine for the time being. My buffer is 5.11x. I have occasional glitches in the audio but nothing which will stop the world. Keep you posted.
                            Edit: Got some glitches on flac files. These got fixed when I increased the buffer to 6.11x. Do we have to increase the size of the other buffers in line too (ring buffer, etc)?
                            Powering through with the bolt

                            Comment


                            • #29
                              Originally Posted by ravermeister View Post
                              I still get the error window,
                              with the same error at a slightly different line.
                              Are you saying that some tracks work and others not? Do they have different frame rates?
                              Winamp v5.666 Build 3516 (x86) + in_ffsox + out_yasapi + gen_yas

                              Comment


                              • #30
                                Originally Posted by Raj_09 View Post
                                Do we have to increase the size of the other buffers in line too (ring buffer, etc)?
                                I dont't know because I have one PC to test and it works.

                                However, we should imagine what's going on there:
                                1. On one side there is WA delivering packets of sound at a rate which in mean represents the sample rate.
                                2. 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.
                                3. 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.
                                4. 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).
                                Winamp v5.666 Build 3516 (x86) + in_ffsox + out_yasapi + gen_yas

                                Comment

                                Working...
                                X
                                😀
                                🥰
                                🤢
                                😎
                                😡
                                👍
                                👎