Topic: What resampler used in usb driver?

Hello,
I would like to ask info I cannot find anywhere.
What kind of resampler is used in RME WDM USB driver in Windows when resampling to target SR set in driver? SRC,SOX, something else? Is there any more detailed info?
There is no resampling for ASIO, that is clear. But WDM?
If it is HW specific - I have ADI-2 DAC FS.

ADI-2 DAC, Digiface USB, Fireface UCXII, ARC USB, Neumann MA1 aligned monitors

2 (edited by KaiS 2021-03-12 15:00:17)

Re: What resampler used in usb driver?

Sample rate conversion inside Windows used to be Linear Interpolation - the worst you can imagine besides no conversion at all (Sample Skipping).

According to this page this might be still the same:

http://archimago.blogspot.com/2015/11/m … k.html?m=1

3 (edited by audafreak 2021-03-12 15:08:17)

Re: What resampler used in usb driver?

Your link is for default Microsoft Windows driver. That is bad, I know. But I am talking about RME USB driver, this is something different. I hope better.

ADI-2 DAC, Digiface USB, Fireface UCXII, ARC USB, Neumann MA1 aligned monitors

4 (edited by KaiS 2021-03-12 19:41:56)

Re: What resampler used in usb driver?

I don’t think any of the drivers do SRC, it’s the Windows “Audio Stack” that cares for it.

What’s your application or intention?

ADI-2 is capable of switching the samplerate when driven through the Windows drivers.

Native SR gives the best possible audio quality.

Re: What resampler used in usb driver?

I use Jriver resampling if needed togehter with RME UFX II and ASIO.

Its running on windows.

Re: What resampler used in usb driver?

I know the things around you told, I am not new in pc audio, but what I don't know is what happens inside RME driver. I see 2 different path possibilities when you send different SR than target set in driver:

1. Any player 44kHz -> RME Analog1+2 device set to higher SR -> 44 send to Windows for "resampling" to target -> back to RME Analog1+2 -> USB HW

2. Any player 44kHz -> RME Analog1+2 device set to higher SR -> 44 resampled to target SR inside RME driver ->  USB HW

Kais probably thinks 1. is true.
Would be good somebody from RME confirm one of these 2 possibilities, what is the internal driver architecture. Only those who developed driver will know for sure.

My application is using some players with ASIO (music PCM up to DXD,DSD256) and other with WDM (video + Tidal PCM up to 96kHz). Intent is not switching target SR round and round because because RME driver is resetting Analag 1+2 device after each switch - it disappears and then appears again with different settings and you have to set it again in the player as a new device.

Yes, there is a workaround with virtual cable to ASIO but it does not work correctly for SR  higher then 48kHz, only some seconds and then it stops playing.

ADI-2 DAC, Digiface USB, Fireface UCXII, ARC USB, Neumann MA1 aligned monitors

7 (edited by KaiS 2021-03-15 11:59:24)

Re: What resampler used in usb driver?

ASIO doesn‘t offer resampling /SRC.

WDM:
Music Player -> Windows Audio Stack, optional lo-quality-SRC -> RME USB driver.


If you want high quality there’s no way around letting WDM/RME USB switch ADI-2‘s hardware samplerate.

It cannot get better the  1:1 original.


Maybe try without the RME driver, use Windows built in ClassComplient driver to avoid the described misbehavior.

Re: What resampler used in usb driver?

As I wrote I play also DSD256. How should I play this bitperfect via default Windows driver? No DSD, only PCM. So DSD over PCM? It needs PCM higher than 384kHz which is maximum on Windows. So I need ASIO driver. Or downsample to something.

@MC ,  would you please tell us or confirm how resampling in your driver really works?

ADI-2 DAC, Digiface USB, Fireface UCXII, ARC USB, Neumann MA1 aligned monitors

9 (edited by ramses 2021-03-15 12:42:33)

Re: What resampler used in usb driver?

> How should I play this bitperfect via default Windows driver

Its a wav file .. take an audio player of your choice and load the driver that you want to use / test.

If you run these files through normal windows audio system it might fail.
WASAPI should be lossless.
ASIO is IMGHO the best, therefore I use audio player with ASIO support, MusicBee (an alternative might be foobar2000, but there you need to load a module for ASIO support 1st).

> @MC ,  would you please tell us or confirm how resampling in your driver really works?

Please re-read post #7. ASIO driver does not do SRC (sample rate conversion).
RME only delivers the ASIO driver.

When the device operates in CC mode and you run it without ASIO driver, then only Microsoft / Windows driver are in use..

And upsampling, as it has already been mentioned, does not increase audio quality. It only makes the file size bigger for no real reason.

I have all content on disk (flac file format). MusicBee has ASIO support.
If I have mixed content with different sample rates then MusicBee is able to change the sample rate accordingly.
There is no need for any CPU consuming / useless upsampling.

BR Ramses - UFX III, 12Mic, XTC, ADI-2 Pro FS R BE, RayDAT, X10SRi-F, E5-1680v4, Win10Pro22H2, Cub13

Re: What resampler used in usb driver?

We don't understand each other. I know all those things Kais and Ramses talk about. I work more than 12 years with PC audio, know most of audio players, formats and their pluses and minuses (currently use Foobar with many plugins and WTFplayer).  I have read almost all threads here in ADI-2 section long time ago and know how to work with it, what it can, what cannot. I use also DSP for room correction with Neuman monitors. I know how it works.

The thing I don't know is : How is resampling really implemented in RME driver. I would like it confirmed by authors. Nobody else know this. I am also sw developer so I know why I am asking this way. And that is why I am asking here and not on Gearslutz or ASR or anywhere else.
Maybe Kais is true but we don't know for sure.

@ramses says: RME only delivers the ASIO driver.
This is not true. Windows driver is both ASIO and WDM. And has also other functions like connection to Digicheck, TotalMix. It is not only ASIO.

ADI-2 DAC, Digiface USB, Fireface UCXII, ARC USB, Neumann MA1 aligned monitors

Re: What resampler used in usb driver?

You are right in terms of WDM. Was not aware of that you talk about the case using WDM driver.
Though its CC mode and Windows own drivers.
Then I get out of this thread as I can not deliver more insight, good luck with your recherche.

BR Ramses - UFX III, 12Mic, XTC, ADI-2 Pro FS R BE, RayDAT, X10SRi-F, E5-1680v4, Win10Pro22H2, Cub13

12

Re: What resampler used in usb driver?

There is no resampling in our driver.

And I was able to use DSD256 with Roon and Windows UAC drivers, although I have no clue why that worked:

https://forum.rme-audio.de/viewtopic.ph … 06#p132206

Regards
Matthias Carstens
RME

Re: What resampler used in usb driver?

What? There is no resampling in your driver?

OK, so I will ask differently.
How it happens that if I send 44kHz to your Analog1+2 WDM device it outputs for instance 96kHz via USB if this SR is set in your driver? Why it does not output 44?

-----------------------

But OK, I wanted to try default windows driver.
So I wanted to uninstall RME driver. Ooops... I have 5 of them in my system, different versions. Each time I updated driver it creates new instance instead of uninstalling of overwriting like other software. One of those instances was possible to uninstall, but still remained in list of installed.
And that is not all. In fact it was not uninstalled at all, you could use its ASIO device, after "uninstallation" and reboot there was not possible to use default Microsoft WDM driver, RME driver was still present and used when DAC was on.
I replaced it only by manual MS WDM driver selection, but in this case another unknown RME audio device appeared wih no driver.
I tried to play something - only default Analog device via windows mixer worked in any player and everything resampled to SR set in windows sound driver(mixer).
The same behavior and problems like lot of other user here in this forum. I also have spent already more then 20 hours during several months to solve this without any success.

So my opinion is that RME driver :
1. has wrong install/update/uninstall process
2. destroys windows registry by not correct handling
3. after installation of RME driver you will probably never use default MS WDM driver correctly without clean windows reinstallation, uninstal does not help.
4. once you install RME driver you can use only this driver and nothing else.
5. Each time you change SR in driver, driver creates completely new windows WDM audio device so you need to select it again for instance in Tidal or other nonasio sw.

ADI2 DAC is really superb piece of hardware, driver is very good with advanced features for professional use if ASIO is your way. But WDM is a no no... If you will use only ASIO then you have no problem. Or better say you don't know about them.

I don't know about other DAC driver with such problems, they just work. Even the cheapest Chinese ones. I know - I have several DACs and friends many other ones. But it has been discussed here many times.

Maybe somebody has another experience but this is mine experience.

ADI-2 DAC, Digiface USB, Fireface UCXII, ARC USB, Neumann MA1 aligned monitors

14

Re: What resampler used in usb driver?

Your question had been answered above: WDM = Windows itself is doing the resampling.

Also it is no problem to remove the driver completely, even if it needs to be done several times to get rid of all traces stored within Windows:

Users that don't want to use the RME driver can easily remove it. In Device Manager select the ADI under Sound, Video and Game Controllers, right click and choose Uninstall. A dialog is shown and here is the one important point: make sure to check Delete the driver software for this device. Otherwise the driver will stay within your Windows installation and gets reinstalled automatically after the next reboot.

After the reboot Windows might load the former driver from its driver repository. Repeat the process until no RME driver is loaded anymore.

Regards
Matthias Carstens
RME

Re: What resampler used in usb driver?

Thanks MC. I myself have not "dared" to install the RME driver package, because of reports here of the difficulty of ever getting rid of it again. I "feared" the hassle of having to repair my Windows audio configuration. But this extra instruction:

After the reboot Windows might load the former driver from its driver repository. Repeat the process until no RME driver is loaded anymore.

, which I believe has never been reported anywhere before, sounds as though it will make using the package "safe". I suggest to add this extra step to the manual. (ADI-2 DAC page 40)

To summarise:?

  • uninstall "RME MADiface", as one would uninstall any software

  • uninstall in Device Manager

    • delete in Device manager

    • Repeat the process in Device Manager until no RME driver is loaded anymore.

Re: What resampler used in usb driver?

@MC
As I wrote in my previous post I already managed to use windows driver. But it did not work as I wrote.

But ok, I did another try different way.
I switched off DAC, uninstalled everything from RME - Digicheck, USB driver - it was 6x in installed programs, 3 was possible to uninstall, 3 oldest versions not possible to uninstall.
Rebooted. In Device Manager show hidden devices. Uninstall all RME devices again.
I checked all files in filesystem with rme in name. Nothing found.
Rebooted again. Checked Device manager hidden devices - no RME. That is correct.
Switched on DAC. MS USB 2.0 driver installed for AD-2 DAC, 1 unknown device - probably SPDIF input which has no driver installed.
Tested windows device Analog12 - it played, possible to set target SR for mixer to 32/* up to 384kHz.

Tried to play from Foobar latest version. No DSP or other plugins.
WASAPI all possibilities - does not work - unsupported device format.
Default windows output via mixer worked.

After switching Foobar output from 24bit to 32 bit because I saw in windows sound device setting there are only 32bit sample rates.
16/44, 24-44, 24-88 worked with no problem.
24-48, 24-96 and anything higher including all DSD did not work - SR was switched correctly but sound was interrupted several time per second like there is small buffer or something like that. When switched from WASAPI event to push it was even worse.
Interesting that 24/44 worked, 24-48 not, 24-88 again worked

Then I tried MusicBee - all PCM SR worked, but DSD was resampled to PCM.

Tidal with force volumes and exclusive - everything was output in 384kHz which is set in windows settings, no SR switching, looks like going via mixer.

Windows 10 v2020 with latest updates, Intel NUC 10 gen 6 cores 12 threads up to 4.7GHz and 16GB RAM.

So I spent again several hours today to make MS WDM correctly working with DAC but it was again waste of time as usual.

The only possibility is to use RME ASIO, this is the only thing which really works and use WDM for other players with bad windows resampling.

I regret users who do not have enough sw experience, it must be pain to try to solve it for them.

ADI-2 DAC, Digiface USB, Fireface UCXII, ARC USB, Neumann MA1 aligned monitors

17

Re: What resampler used in usb driver?

> Tested windows device Analog12 - it played, possible to set target SR for mixer to 32/* up to 384kHz.

In case this unclear statement refers to hitting the Test button in Sound - Playback - Properties - Advanced, and seeing a big list of all sample rates in the dropdown left to it, then you just confirmed that the RME driver is completely uninstalled and inactive. Whatever you encounter then seems to be a problem of the used software or your computer.

Regards
Matthias Carstens
RME

Re: What resampler used in usb driver?

Yes, you are true, something is wrong on my pc.
For instance, as I wrote before, after uninstalling everything from RME and using MS driver there are still 3 records in list of installed programs - old versions of RME driver - it means probably mess in registry created by updating your driver:

Windows Driver Package RME MADIface (03/03/2020 0.9.716.0)
Windows Driver Package RME MADIface (08/18/2020 0.9.722.0)
Windows Driver Package RME MADIface (09/18/2020 0.9.723.0)

I would add a screenshot but this forum does not allow it.
The same  situation - several driver versions, first two lines - is on my another computer.
On both PCs all RME sw is uninstalled.
This situation will be also at other user PCs, where they use driver for longer time and updated several times. Other forum members, you can check your pc and confirm it here.

What other registry settings remained in the system after uninstallation? I have found really many registry keys for strings RME, MADI, MADIFACE.

Will you please tell me how to get rid of this garbage created by your driver? Or how to remove all registry settings created by RME drivers in the past?
Maybe it will help.
Or the only solution is reinstall Windows and do not touch RME driver?

ADI-2 DAC, Digiface USB, Fireface UCXII, ARC USB, Neumann MA1 aligned monitors

Re: What resampler used in usb driver?

audafreak wrote:

I would add a screenshot but this forum does not allow it.

The usual way, place picture to a cloud and link it here.
If you want to make it extra nice, surround it with img tags to get immediate display if your cloud allows this.

If you need further help, pls see my guide which explains it more detailed:
https://www.tonstudio-forum.de/blog/ind … rum-EN-DE/

BR Ramses - UFX III, 12Mic, XTC, ADI-2 Pro FS R BE, RayDAT, X10SRi-F, E5-1680v4, Win10Pro22H2, Cub13

Re: What resampler used in usb driver?

I know this, I am a sw developer and know how these things work, I  just don't care to find some other place to store picture if I don't really need it like now.

ADI-2 DAC, Digiface USB, Fireface UCXII, ARC USB, Neumann MA1 aligned monitors

21

Re: What resampler used in usb driver?

A simple search would have revealed that these entries are ghosts and do not relate to a screwed up registry. All left information are meaningless list items for an uninstallation that is no longer available.

You can remove those entries but it won't change your computer's performance/behavior at all. They are found in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
As a software developer you sure knew that.

Regards
Matthias Carstens
RME

Re: What resampler used in usb driver?

Yes, I know uninstall keys are not important for audio but it can be a sign that also other keys may be left.
For instance 12 madiface keys in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio
This may be a bit more important but I dont know those internal audio things and their meanings.

ADI-2 DAC, Digiface USB, Fireface UCXII, ARC USB, Neumann MA1 aligned monitors

23

Re: What resampler used in usb driver?

You can complain about these specific entries with MS, but obviously that would be wasted time:

https://forum.rme-audio.de/viewtopic.ph … 42#p153442

Regards
Matthias Carstens
RME

24 (edited by audafreak 2021-03-17 16:41:03)

Re: What resampler used in usb driver?

Thank you for very good answer - the link. Now I understand things more.

I did another experiment - used my Fiio portable DAC capable all PCM and DSD formats with its own driver. Everything works perfectly both ASIO and WASAPI, SR in WASAPI is changed, PCM and DSD both work.
ADI-2 absolutely not.
Tried also my Focusrite Scarlet via their driver - ASIO worked, WASAPI not.

Looks like PRO products have problems with WASAPI, cheap toys don't have one. Even my Android mobile phone has no problem with playing all PCM and DSD formats bitperfect via USB and switch SR.

If my info is correct then Fiio and many other DAC producers use some customized driver from the same company, I had some link to this company before but cannot find it now. Maybe you will know.
Would it be possible to use their driver customized to RME device and give it to us for home use?

For professional use is your driver perfect but home use is something different. And their driver is proved to work by many companies and maybe milion of users. It also works with Tidal.

I would even pay for it. And probably not only me.

PS: In the end I found producer of that driver.
https://www.thesycon.de/eng/usb_audiodriver.shtml
I see it is also German company. What about to contact them?

ADI-2 DAC, Digiface USB, Fireface UCXII, ARC USB, Neumann MA1 aligned monitors

25

Re: What resampler used in usb driver?

WASAPI Exclusive sample rate switching works with the MS UAC2 driver. Our driver switches sample rates with ASIO. That will not change.

Regards
Matthias Carstens
RME

Re: What resampler used in usb driver?

WASAPI Exclusive sample rate switching works with the MS UAC2 driver.
One missing word - sometimes. MS sw is always problematic. As you confirmed here https://forum.rme-audio.de/viewtopic.ph … 42#p153442

Me and lot of other people don't want to change your current driver. It is good for many users.

Only new simple driver just for ADI-2 DAC (not PRO) which is used by home hifi users and for them it is designed. Driver which is already created by somebody and needs only some device ID entered. No development is needed.  Only put it on ADI-2 DAC download page.

This would increase you reputation.

ADI-2 DAC, Digiface USB, Fireface UCXII, ARC USB, Neumann MA1 aligned monitors

Re: What resampler used in usb driver?

audafreak wrote:

WASAPI Exclusive sample rate switching works with the MS UAC2 driver.
One missing word - sometimes. MS sw is always problematic. As you confirmed here https://forum.rme-audio.de/viewtopic.ph … 42#p153442

Me and lot of other people don't want to change your current driver. It is good for many users.

Only new simple driver just for ADI-2 DAC (not PRO) which is used by home hifi users and for them it is designed. Driver which is already created by somebody and needs only some device ID entered. No development is needed.  Only put it on ADI-2 DAC download page.

This would increase you reputation.

If you want to use that thesycon driver nothing is stopping you. Download the driver from some product that uses it and change the vendor id and device string in the ini file. Then install it unsigned.

Re: What resampler used in usb driver?

Helohe - I was thinking about something like that. I will try.

ADI-2 DAC, Digiface USB, Fireface UCXII, ARC USB, Neumann MA1 aligned monitors

Re: What resampler used in usb driver?

So I tried. I was able to install patched driver, assign it to ADI DAC, but :
Device USB\VID_2A39&PID_3FD3&MI_00\6&30f404d4&6&0000 had a problem starting.

Driver Name: oem16.inf
Class Guid: {60b746f8-652f-4312-bdb5-40a014ee9cd0}
Service: XXXXXXXXXXXXXXXXX I deleted
Lower Filters:
Upper Filters:
Problem: 0xA
Problem Status: 0xC0000001

In the end I gave up. But I learned a lot about driver installation, class registry keys and its relations, so it was not so big waste of time.

ADI-2 DAC, Digiface USB, Fireface UCXII, ARC USB, Neumann MA1 aligned monitors

Re: What resampler used in usb driver?

I've searched via google and landed here and you almost answered my question but I'd like to know one thing:

Is it possible to make RME driver to sync to whatever is played on winamp or any WDM player as soon as samplefreq changes?
If not, what is the most obvious workaround for the default system audio? Jriver? Asio4All? Or is it a stupid idea that will make more problems?

Useful application is to play any audio at the correct samplerate, when not using ASIO.

31

Re: What resampler used in usb driver?

That only works by uninstalling the RME driver and using WASAPI Exclusive.

Regards
Matthias Carstens
RME

32 (edited by charliecrash 2021-04-17 18:34:21)

Re: What resampler used in usb driver?

MC wrote:

That only works by uninstalling the RME driver and using WASAPI Exclusive.

Ok, that makes sense.
Is there, or has there been any plans of making WDM act as a digital syncable input, just like spdif/aes?

(On the other hand, it would be possible to have a second audio interface, only for wdm, with spdif out -> rme spdif in, unless that would conflict with asio/latency/stability in any way.)