WASAPI Output Plugin 'Maiko' (VISTA & later only)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • Aminifu
    Forum King
    • Aug 2011
    • 4963

    Originally Posted by SilverBird775 View Post
    I know the room correction is very important. It is not exacly the matrix you need to adjust but the balance. You may get the impression of what i'm going to do for a balance job by looking for unlocked 'balance' mockup tab sheet in the updated beta. Not functional at all, its just a functional reference for me. To this moment the balance (room correction) can be done via matrix but its as ugly way to do this as the classic stereo panning. BTW, I'm having the hard time to decide should the balance be device dependent or individual for each input-output variation. I tend to believe the balance is the device (speakers) attribute, how do you think?
    I agree 100 percent. It is more of a balance issue and balance is a speakers attribute.
    Winamp v5.9.2.10042 - Quinto Black CT v4.1 skin
    Windows 11 Home 64-bit v23H2 desktop - Logitech Z906 5.1 speaker system

    Comment

    • ravermeister
      Senior Member
      • Feb 2009
      • 198

      Hey, Just found this nice Output plugin.
      Thanks for this great piece of software.
      Sounds really nice here now .

      but I've got a Question:
      my Hardware is as follows:

      System: Windows 7 64bit
      CPU: AMD Phenom II 965 Black Edition
      RAM: 6GB
      Soundcard: Creative X-fi Titanium (PCI-Express)
      Speakers: 5.1 Teulel Concept E Magnum
      Connected analog Cinch to 3,5mm to the Soundcard.

      Soundcard Software Configuration:
      - 24bit processing
      - CMSS3D (upmixing function for Stereo Sources from Creative)

      I'm not sure which Output plugin I should use
      (best quality / Hardware Acceleration)

      I Tested:
      - http://www.winamp.com/plugin/asio-output-plugin/156466 (ASIO)
      - http://maiko.elementfx.com/ (WASAPI)
      - Winamp Directsound


      - Directsound sounds awful compared to the other ones.
      - The WASAPI sounds really nice, but has some clicking noise when changing a song
      (the Buffer is set to 0 means auto if i manually increase the value, you have a time shift
      between Press Button for Next Track, and the Real Action.)
      - The ASIO sounds really nice too, to be honest I can't here a Real difference to WASAPI,
      but it feels like ASIO sounds a little bit clearer. no Time Shift, nor clicking
      noise, but I don't like to have Winamp as the only output, as I
      used to run Winamp while I Play Games.
      (maybe there is something like the Shared Mode in WASAPI for ASIO)?

      so under this circumstances is it the Best choice to use the WASAPI output, and
      live with the clicking noise or what kind of setting would you choose?

      Thanks and kind regards
      Ravermeister
      lastfm.rimkus.it - last.fm Youtube Radio (buy me)
      www.rimkus.it - Contact Music & More

      Comment

      • SilverBird775
        Senior Member
        • Jan 2009
        • 237

        ravermeister,
        There is no other settings for a shared mode but the buffer size.
        Please make sure you have the latest plugin 0.47 or test version installed, the only advice i have. It should not make clicking noise unless your files are bad encoded.
        Maiko WASAPI output pluginCompatibility adapter for legacy winamp 2.9x (it's best to not use the old software!)

        Comment

        • Aminifu
          Forum King
          • Aug 2011
          • 4963

          Hi ravermeister,

          I suggest you turn off the CMSS3D and 24bit processing (and any other Creative enhancements) and let Maiko do the upsampling and upmixing.

          If you want to check your mp3 and other MPEG audio files, I suggest "MP3Val" and/or "MP2Diags". Both are free utilities that can identify and correct many various structural errors that may be in your files. MP3Val is much easier to use and probably safer. MP3Diags is more comprehensive. No app is perfect, so make a backup before letting either app 'correct' a file.



          Winamp v5.9.2.10042 - Quinto Black CT v4.1 skin
          Windows 11 Home 64-bit v23H2 desktop - Logitech Z906 5.1 speaker system

          Comment

          • ravermeister
            Senior Member
            • Feb 2009
            • 198

            Thank you for your tips, I'll test the mp3 correction tools, and
            see what they can do for me.

            according to Creative, the CMSS3D Surround will only take effect if the output data is stereo. If I understand out_maiko correctly, it already does the upmixing, so CMSS3D
            is only used,if the output data is stereo (which is not the case for out_maiko? as disabling doesn't change the Sound when out_maiko is running).
            Or should I disable it anyway when I listen to music with winamp?
            because for movies with Stereo audio source, it is still a nice feature.

            and the 24bit Processing is the Hardware setting I've chosen.
            Following settings are possible:
            - 16bit, 44100Hz
            - 16bit, 48000Hz
            - 16bit, 88200Hz
            - 16bit, 96000Hz
            - 24bit, 44100Hz
            - 24bit, 48000Hz
            - 24bit, 96000Hz

            and with 24bit, 96000Hz I thought I'd achieve the best quality or am I wrong?
            lastfm.rimkus.it - last.fm Youtube Radio (buy me)
            www.rimkus.it - Contact Music & More

            Comment

            • Aminifu
              Forum King
              • Aug 2011
              • 4963

              Hi ravermeister,

              I would disable CMSS3D when using WA and Maiko. Although, the Maiko mixer matrix can be setup to output stereo (if you just want to use Maiko for upsampling). Your ears will tell you what is best. IMO, Maiko sounds better than CMSS3D and the Windows "speaker fill" feature.

              The 24bit hardware processing is fine and recommended. You had listed the 24bit processing under software in your previous post. Maiko will upsample to 32 bits, then Windows will downsample (in shared mode) to fit your selection for your sound card.

              I forgot to mention that Win 7 messed with sound card hardware acceleration. Try turning that option off.

              Sometimes I've downloaded files that were error-free, but poorly made as to their start and/or finish. For mp3s, I use a utility called "MP3Trim" that allows me to remove or adjust the silent portion at the start and/or end of a file. It also allows a fade in/out adjustment for files that start/end abruptly. Another utility, "MP3Cut", lets you snip off a selectable part of a file.

              If the static problem remains after 'error' corrections, I suggest a forums search for what others have done. Sometimes a WA option tweak solves the problem. Many here frown on Creative products/drivers. I have an old Audigy Platinum that works great (with the help of Daniel K’s modified drivers).

              Yeah, a lot of work. But I love music and am willing to go the extra mile to have my digital music sound as good as possible with my limited budget.
              Winamp v5.9.2.10042 - Quinto Black CT v4.1 skin
              Windows 11 Home 64-bit v23H2 desktop - Logitech Z906 5.1 speaker system

              Comment

              • Yehonathan
                Junior Member
                • May 2005
                • 5

                Please report this!... oke

                I got this error while listening music.

                Don't know what it mean, after acknowledging the error the endpoint unlocked and locked the stream again then audio continued.
                I can't reproduce the error, but just letting Maiko know instead since it asked for it

                I'm using the latest Winamp playing a Flac file ripped from CD at 44.1KHz.
                Endpoint: (USB) Musical Fidelity v-link > Musical Fidelity M1DAC

                Comment

                • SilverBird775
                  Senior Member
                  • Jan 2009
                  • 237

                  Yehonathan,
                  This error is well known but it's rare now. It depends on exotic devices and their raw drivers so your assistance would be much appreciated. Your device drivers internally locked up 300ms, that is insanely lot!


                  What buffer size 2 did you set?
                  Copypasting 5 while playing some 44.1KHz file would be very helpful too.
                  Maiko WASAPI output pluginCompatibility adapter for legacy winamp 2.9x (it's best to not use the old software!)

                  Comment

                  • Yehonathan
                    Junior Member
                    • May 2005
                    • 5

                    Hello Silverbird,

                    I currently can't see the image, I just try to give as many info possible.

                    Windows 7 64bit, Maiko WASAPI out v0.46, default Windows USB audio driver since Musical Fidelity does not require a Windows driver for asynchronous output but has dedicated drivers running in the v-link (as far I understand)

                    The v-link is set to 24 bit, 96000Hz in Windows properties checked "Allow applications to take exclusive control of this device"
                    This device can be set to 44100, 48000 or 96000Hz at 24 bit only.

                    The Musical Fidelity M1DAC receives the signal from the v-link optical at 96KHz (this changes when I set it another sample rate for the v-link in the Windows sound control panel)
                    M1DAC is able receive between 32KHz and 192KHz 16/24Bit

                    Maiko settings:
                    Plugin:

                    Set to: v-link
                    Client buffer size: 0
                    Checked "Genuine latency formula"

                    code:

                    Input stream:
                    16 bit PCM encoding in 2.0 (Stereo) setup. 44100Hz rate
                    MAIKO buffer/latency: 3781 samples (85737 µs)

                    Output stream:
                    24 bit PCM encoding in 2.0 (Stereo) setup. 96000Hz rate
                    Client buffer: 32768 samples (341334 µs)
                    Client latency: 42666 µs
                    Mixer scheduling period (latency): 21333 µs
                    Minimum device period (latency): 3000 µs

                    Exclusive mode renderer
                    Data route: Maiko mixer

                    Plugin latency reported to Winamp: 342 ms
                    Peak output loudness detected: 0.000000 db


                    Exclusive:




                    When I click on "Client invalidate & Reload" Maiko failed, after acknoledge Winamp crashes.

                    Comment

                    • SilverBird775
                      Senior Member
                      • Jan 2009
                      • 237

                      Yehonathan,
                      "Curioser and curioser!" (c) Alice in Wonderland

                      Please let me know if the "Internal WASAPI lock-up" manifests again. The device with such a glitch should not work at all.

                      Your exclusive tab screenshot show the all-forced bit-copy mode. Any exclusive tab changes must be done only when playback stopped. The "Client invalidate & Reload" button simply reinit the device but it have not that much use really because every control element will take care of reloading the device with the latest user settings. All you need to do is to stop the playback before the device can be reprogrammed. The plugin is unable to isolate the playback while manually changing the device programming options yet.
                      Maiko WASAPI output pluginCompatibility adapter for legacy winamp 2.9x (it's best to not use the old software!)

                      Comment

                      • Yehonathan
                        Junior Member
                        • May 2005
                        • 5

                        Thanks for your reply,
                        Is my setup oke? you noted about the high latency before?

                        Personally i don't care about the latency since its only for music listening, what could cause these high latency?
                        I know that proper ASIO setup could reduce latency down to about <10ms so compared to this the reported 342ms is quite a bit.

                        When I connect the M1DAC via USB exact the same latency is reported, also the output stay at 44.1KHz when playing higher sample rates.

                        Only proper way to get "bit perfect" is by connecting the M1DAC directly via COAX (downside is some ground jitter like noises come through when silent) So i better keep the computer isolated from the audio system by using optical connection
                        Still get the high latency, when connected this way.

                        code:

                        Input stream:
                        16 bit PCM encoding in 2.0 (Stereo) setup. 96000Hz rate
                        MAIKO buffer/latency: 1708 samples (17792 µs)

                        Output stream:
                        16 bit PCM encoding in 2.0 (Stereo) setup. 96000Hz rate
                        Client buffer: 32768 samples (341334 µs)
                        Client latency: 21333 µs
                        Mixer scheduling period (latency): 21333 µs
                        Minimum device period (latency): 3000 µs

                        Exclusive mode renderer
                        Data route: Bit-copy

                        Plugin latency reported to Winamp: 342 ms
                        Peak output loudness detected: 0.000000 db

                        I don't understand how the v-link or USB input of the M1DAC actually work.

                        Quote from Stereophile
                        The USB datastream is fed to a Texas Instruments TAS1020B receiver chip, which converts the audio data to two-channel i2S format. The TAS1020B includes an embedded microprocessor; the firmware that allows it to operate in asynchronous mode is stored in a socketed eight-pin chip. The i2S output from the TAS1020B is fed to a Burr-Brown DIT4096 chip, which converts the data to S/PDIF and can operate at sample rates up to 96kHz. A single crystal on the board is used as a high-precision, single-frequency oscillator to drive the TAS1020B processor clock and its internal frequency synthesizer; the latter generates both the 44.1 and 48kHz word-clock frequencies and their multiples.

                        Edit: The USB input on the M1DAC is not asynchronous.
                        The M1's USB input is limited to 48kHz and below and 16-bit data. For playback of high-resolution files with the M1DAC via USB, Musical Fidelity recommends using their V-Link asynchronous USB-S/PDIF converter

                        Comment

                        • SilverBird775
                          Senior Member
                          • Jan 2009
                          • 237

                          Yehonathan,
                          Nay. I did not mean latency, it just happened to be the same looking numbers. I just said the above error message reported that WASAPI did stalemate at 300 ms out of 340 ms for a device buffer which is clearly a major disaster for a plugin because it had no clue what's happened to device driver, it just went unresponsive. The plugin will tolerate the device unresponsiveness to some degree, but it cannot possibly compensate for a more then 80% of the synchronization loss. The trouble less messagebox clicks sequence is okay to "Lock-Up" then okay to "Stop error", the plugin will recover then.

                          latency:
                          Uncheck the "Genuine latency formula" to compute the real latency. The real latency is good for a video playback but not so good for a build-in winamp's visualization bars. The default method is a "Genuine latency", like a native winamp plugins do, thus a "genuine" label. That is a truth versus genuine choice for a video thing. Neither is better, though i do prefer real latency for a much better video smoothness. The real latency computes how much time it takes the sound to get from the play button to speakers. The genuine latency just repeats the actual device buffer size, it could not be the latency but the winamp's main window visualization likes it. The choice is up to you.
                          Maiko WASAPI output pluginCompatibility adapter for legacy winamp 2.9x (it's best to not use the old software!)

                          Comment

                          • Yehonathan
                            Junior Member
                            • May 2005
                            • 5

                            So it seem to be the (Windows) driver caused this problem.

                            I don't know if there will be a suitable 3rd party driver for my situation since the actual driver runs in the v-link itself its probably designed to make use of the default USB output drivers of Windows/Mac.

                            I have been searching the internet before to make proper use of the DAC since I noticed it always locks the signal on to the SR I set in Windows and not the SR the actual file is played from Winamp.

                            So the samplerate on the M1DAC received by the v-link is always at 96Khz (Set in the Windows settings)
                            Since the v-link does not upsample I wonder what does it? and why? (Also tried when disabled Slave to input sample rate)
                            The best proper audio stream should be maintained at its source sample rate right?

                            Some info I got frome the Texas Instrument chipset datasheet [pdf] used in the v-link

                            2.1.4 USB Transceiver
                            The TAS1020B provides an integrated transceiver for the USB port. The transceiver includes a differential output driver, a differential input receiver, and two single ended input buffers. The transceiver connects to the USB DP and DM signal terminals.

                            2.1.5 USB Serial Interface Engine (SIE)
                            The serial interface engine logic manages the USB packet protocol for packets being received and transmitted by the TAS1020B. For packets being received, the SIE decodes the packet identifier field (PID) to determine the type of packet being received and to ensure the PID is valid. The SIE then calculates the cycle redundancy check (CRC) of the received token and data packets and compares the value to the CRC contained in the packet to verify that the packet was not corrupted during transmission.
                            For transmitted token and data packets, the SIE generates the CRC that is transmitted with the packet.
                            The SIE also generates the synchronization field (SYNC) and the correct PID for all transmitted packets.
                            Another major function of the SIE is the serial-to-parallel conversion of received data packets and the parallel-to-serial conversion of transmitted data packets.

                            2.1.7 USB Frame Timer
                            The USB frame timer logic receives the start of frame (SOF) packet from the host PC each USB frame.
                            Each frame, the logic stores the 11-bit frame number value from the SOF packet in a register and asserts the internal SOF signal. The frame number register can be read by the MCU and the value can be used as a time stamp. For USB frames in which the SOF packet is corrupted or not received, the frame timer logic will generate a pseudo start of frame (PSOF) signal and increment the frame number register.

                            2.1.11 USB Endpoint Configuration Blocks and Buffer Space
                            The USB endpoint configuration blocks are used by the MCU to configure and operate the required USB endpoints for a particular application. In addition to the control end-point, the TAS1020B supports a total of seven IN endpoints and seven OUT endpoints. A set of six bytes is provided for each endpoint to specify the endpoint type, buffer address, buffer size, and data packet byte count.
                            The USB endpoint buffer configuration blocks and buffer space provided totals 1440 bytes. The buffer space to be used by a particular endpoint is fully configurable by the MCU for a particular application.
                            Therefore, the MCU can configure each buffer based on the total number of endpoints to be used, the maximum packet size to be used for each endpoint, and the selection of single or double buffering.

                            2.1.12 DMA Controller
                            Two DMA channels are provided to support the streaming of data for USB isochronous IN endpoints, isochronous OUT endpoints, and bulk OUT endpoints. Each DMA channel can support one USB isochronous IN endpoint, or one isochronous OUT endpoint, or one bulk OUT endpoint. The DMA channels are used to stream data between the USB endpoint data buffers and the codec port interface.
                            The USB endpoint number and direction can be programmed for each DMA channel. Also, the codec port interface time slots to be serviced by each DMA channel can be programmed.

                            2.2.7 USB Transfers
                            The TAS1020B device supports all USB data transfer types: control, bulk, interrupt, and isochronous. In accordance with the USB specification, endpoint zero is reserved for the control endpoint and is bidirectional. In addition to the control endpoint, the TAS1020B is capable of supporting up to 7 IN endpoints and 7 OUT endpoints. These additional endpoints can be configured as bulk, interrupt, or isochronous endpoints.
                            I'm satisfied with the audio performance of the DAC but I have actually never found out what is the best way to use it, starting with the Maiko WASAPI I noticed difference in audio, it was slightly less dull and seem to have different responce in the low (bass) regions , I never understood why a digital codec could change the analog audio response, except if there is some EQ in the codecs but I doubt this.

                            Comment

                            • SilverBird775
                              Senior Member
                              • Jan 2009
                              • 237

                              Maiko MonkeysAudio 0.02 released

                              ----
                              Yehonathan,

                              Maiko WASAPI is a powerful instrument but how to use it is up to you. All the computing the plugin doing internally are well controlled by Exclusive tab page. The plugin gives you an excellent opportunity to exactly match the best regimes for your hardware.
                              Let the plugin's Status log to guide you. It reminds you what the actual input is, what the actual output is, there is no guessing anymore. There is no good or bad options to switch on&off, you have to find out the optimal options yourself, thats why they are options.

                              Some homework is up to you. Trust your ears, they are the most efficient tool you have. Please ask me if you want to get some functionality from the tool, i do honestly don't know what is good for each of billions devices and convertors out there and unable to help in this respect.
                              Maiko WASAPI output pluginCompatibility adapter for legacy winamp 2.9x (it's best to not use the old software!)

                              Comment

                              • Yehonathan
                                Junior Member
                                • May 2005
                                • 5

                                Your plugin is great, like I wrote it improved the audio response compared to the Directsound output.

                                It also provides all necessary information and flexibility, I was just wondering where the upsampling took place when I uncheck Slave to input since incoming stream is then 16bit/44.1 but output is 24bit/96k

                                Comment

                                Working...
                                X