Jump to content

FLEXASIO - EXPERIENCE


Milton Sica

Recommended Posts

53 minutes ago, gustabo said:

Be a trail blazer, try it yourself and report back.
(clue: look at the reported issues on the GitHub page)

interesting response from the dev:

Quote

Anyway, it looks like Cakewalk repeatedly initialized and deinitialized the ASIO driver 8 times(!) and at no point did it attempt to stream any audio. This looks like some kind of driver probing behavior from Cakewalk, but 8 times in a row seems a bit excessive...

 

Link to comment
Share on other sites

You got my curiosity.  So I have a office laptop with the latest Cakewalk. I use WASAPI shared without issues because I obviously don't record anything. That would pointless in a 1/8" stereo jack and $4.00 A/D convertor. 

Flex ASIO driver- No problem to download and install. Re booted computer out of old habits. 

It shows in the Reg Edit app under ASIO. Just incase it causes trouble easy to delete. 

The Loopback Test. 

Then to test it I connected a 1/8" stereo cable from the headphone out to the mike input and ran a loopback test.

You see the midi (Track 1 Red)  , and then I froze SI drums (Track 2  Yellow).  These are both at 254 ms on the timeline . I had to go into Windows settings to turn the Loopback input down, it was still a bit hot. That is where you would have to go if you record anything to set the levels. 

The WASAPI shared track (Track 3 orange)  comes in as expected at 293 ms so is 39 ms late. 

Flex ASIO came in at 263 ms so only 9 ms late. This is possibly the latency of the A/D  -D/A convertors. So you would need to adjust this in Preferences, sync and Caching,  timing offset if you insist on actually recording using the mike jack. 

My Sound card won't use  WASAPI Exclusive or WDM modes. Take Note  that  tests on other Computers WASAPI Exclusive performed much better than Shared and would have been probably the same as the Flex ASIO. 

WDM mode was always a little worse than WASAPI shared and this is why Asio4all sucks. It is really WDM mode. 

So I would conclude that unlike Asio4all, Flex ASIO is an ASIO driver. It is possibly invasive if you have a interface you connect from time to time. Like the Steinberg Generic, Magix etc. Generic ASIO driver have been know to take over the Sync and Caching dialogue and only way to stop this is deleting in Reg Edit. 

MME mode is always off the charts and could be a 1/4 note late.  

 

If I connected any one of my ASIO audio interfaces the Loopback would come in at 254. It might be late but it would be down in the single digit Samples.   This is because Cakewalk uses the reported latency from the Interfaces Factory supplied ASIO driver and would have adjusted for that 9ms automatically.  So if you use Flex ASIO to record audio make sure and run a loopback test. 

I will keep it installed and use it and report back in a few months. I really don't work with Cakewalk on this machine other than test stuff and download midi files. 

 

Screenshot(247).thumb.png.c4d1cd7ff94adf85580dd4b02bcdbec0.png

Edited by Bass Guitar
  • Like 2
  • Thanks 2
Link to comment
Share on other sites

4 hours ago, Bass Guitar said:

You got my curiosity.  So I have a office laptop with the latest Cakewalk. I use WASAPI shared without issues because I obviously don't record anything. That would pointless in a 1/8" stereo jack and $4.00 A/D convertor. 

Flex ASIO driver- No problem to download and install. Re booted computer out of old habits. 

It shows in the Reg Edit app under ASIO. Just incase it causes trouble easy to delete. 

The Loopback Test. 

Then to test it I connected a 1/8" stereo cable from the headphone out to the mike input and ran a loopback test.

You see the midi (Track 1 Red)  , and then I froze SI drums (Track 2  Yellow).  These are both at 254 ms on the timeline . I had to go into Windows settings to turn the Loopback input down, it was still a bit hot. That is where you would have to go if you record anything to set the levels. 

The WASAPI shared track (Track 3 orange)  comes in as expected at 293 ms so is 39 ms late. 

Flex ASIO came in at 263 ms so only 9 ms late. This is possibly the latency of the A/D  -D/A convertors. So you would need to adjust this in Preferences, sync and Caching,  timing offset if you insist on actually recording using the mike jack. 

My Sound card won't use  WASAPI Exclusive or WDM modes. Take Note  that  tests on other Computers WASAPI Exclusive performed much better than Shared and would have been probably the same as the Flex ASIO. 

WDM mode was always a little worse than WASAPI shared and this is why Asio4all sucks. It is really WDM mode. 

So I would conclude that unlike Asio4all, Flex ASIO is an ASIO driver. It is possibly invasive if you have a interface you connect from time to time. Like the Steinberg Generic, Magix etc. Generic ASIO driver have been know to take over the Sync and Caching dialogue and only way to stop this is deleting in Reg Edit. 

MME mode is always off the charts and could be a 1/4 note late.  

 

If I connected any one of my ASIO audio interfaces the Loopback would come in at 254. It might be late but it would be down in the single digit Samples.   This is because Cakewalk uses the reported latency from the Interfaces Factory supplied ASIO driver and would have adjusted for that 9ms automatically.  So if you use Flex ASIO to record audio make sure and run a loopback test. 

I will keep it installed and use it and report back in a few months. I really don't work with Cakewalk on this machine other than test stuff and download midi files. 

 

Screenshot(247).thumb.png.c4d1cd7ff94adf85580dd4b02bcdbec0.png

Very good. I'm testing it, but I haven't reached that level of depth. It would be great if you could send your report to the developer. Thank you very much for your availability.

Link to comment
Share on other sites

5 hours ago, Bass Guitar said:

You got my curiosity.  So I have a office laptop with the latest Cakewalk. I use WASAPI shared without issues because I obviously don't record anything. That would pointless in a 1/8" stereo jack and $4.00 A/D convertor. 

Flex ASIO driver- No problem to download and install. Re booted computer out of old habits. 

It shows in the Reg Edit app under ASIO. Just incase it causes trouble easy to delete. 

The Loopback Test. 

Then to test it I connected a 1/8" stereo cable from the headphone out to the mike input and ran a loopback test.

You see the midi (Track 1 Red)  , and then I froze SI drums (Track 2  Yellow).  These are both at 254 ms on the timeline . I had to go into Windows settings to turn the Loopback input down, it was still a bit hot. That is where you would have to go if you record anything to set the levels. 

The WASAPI shared track (Track 3 orange)  comes in as expected at 293 ms so is 39 ms late. 

Flex ASIO came in at 263 ms so only 9 ms late. This is possibly the latency of the A/D  -D/A convertors. So you would need to adjust this in Preferences, sync and Caching,  timing offset if you insist on actually recording using the mike jack. 

My Sound card won't use  WASAPI Exclusive or WDM modes. Take Note  that  tests on other Computers WASAPI Exclusive performed much better than Shared and would have been probably the same as the Flex ASIO. 

WDM mode was always a little worse than WASAPI shared and this is why Asio4all sucks. It is really WDM mode. 

So I would conclude that unlike Asio4all, Flex ASIO is an ASIO driver. It is possibly invasive if you have a interface you connect from time to time. Like the Steinberg Generic, Magix etc. Generic ASIO driver have been know to take over the Sync and Caching dialogue and only way to stop this is deleting in Reg Edit. 

MME mode is always off the charts and could be a 1/4 note late.  

 

If I connected any one of my ASIO audio interfaces the Loopback would come in at 254. It might be late but it would be down in the single digit Samples.   This is because Cakewalk uses the reported latency from the Interfaces Factory supplied ASIO driver and would have adjusted for that 9ms automatically.  So if you use Flex ASIO to record audio make sure and run a loopback test. 

I will keep it installed and use it and report back in a few months. I really don't work with Cakewalk on this machine other than test stuff and download midi files. 

 

Screenshot(247).thumb.png.c4d1cd7ff94adf85580dd4b02bcdbec0.png

I posted your considerations in the issue item I opened on FlexAsio and the developer made these considerations.

I don't see how this has anything to do with the issue at hand, but I'll just comment on a few points to set the record straight.

It shows in the Reg Edit app under ASIO. Just incase it causes trouble easy to delete.

FlexASIO has an uninstaller. There is no need to mess with the registry.

Flex ASIO came in at 263 ms so only 9 ms late.

Depending on the FlexASIO config used, especially the backend, the behavior of FlexASIO can vary drastically. For this reason, just saying "FlexASIO" without mentioning the config used is almost meaningless. It is impossible to reproduce these results without knowing which FlexASIO config was used.

WDM mode was always a little worse than WASAPI shared and this is why Asio4all sucks.

This is surprising as WASAPI Shared uses WDM behind the scenes (with additional latency on top of it due to buffering). Maybe the particular WDM client implementation in ASIO4ALL is not behaving optimally with their particular hardware, I don't know.

So I would conclude that unlike Asio4all, Flex ASIO is an ASIO driver.

This is obviously false. ASIO4ALL and FlexASIO are both ASIO drivers.

It is possibly invasive if you have a interface you connect from time to time. Like the Steinberg Generic, Magix etc. Generic ASIO driver have been know to take over the Sync and Caching dialogue and only way to stop this is deleting in Reg Edit.

I don't know what this is supposed to mean, but there are indeed cases where ASIO drivers can interfere with each other, especially if the ASIO Host Application attempts to initialize several drivers at the same time. See for example #86. I don't know if Cakewalk is susceptible to similar issues.

Link to comment
Share on other sites

1 hour ago, Milton Sica said:

ASIO4ALL and FlexASIO are both ASIO drivers

True. You can say that because their interfaces both conform to the ASIO spec. "Interface", in this context, means a set of standard functions that a host program uses to communicate with the driver. From the host's perspective, they do not appear any different from any other ASIO driver, since the host has no knowledge of what goes on under the hood.

But ultimately it's Windows that talks to the hardware, not ASIO. Where ASIO drivers differ is how host calls get from the interface to the underlying Windows audio components. Some gain efficiencies by skipping over some of the Windows audio components and shortening the distance to the hardware. But ASIO4All and similar universal drivers are sometimes referred to as "wrappers" because they don't do any real work themselves but rather pass along the desired actions to the O/S. 

In the case of ASIO4All, its purpose is to translate ASIO calls into WDM-KS calls. According to FlexASIO's author, his wrapper calls a third-party library that in turn calls WASAPI. Although this provides an easy path to code for multiple operating systems, that intermediate library will necessarily impose a small but unavoidable performance cost. I wouldn't expect it to match the efficiency of a DAW such as Sonar that is designed specifically around Windows audio and that calls WASAPI or WDM-KS directly. 

As with ASIO4All, its value is to users who want to use ASIO for some reason but whose hardware does not have a bespoke ASIO driver. IMO, though, if your audio interface doesn't support ASIO the logical solution is to use WASAPI. But I'll admit I'm thinking in terms of a Windows environment. It could be a whole 'nother can 'o worms if you're on, say, Linux.

[P.S. My audio interface has a fine ASIO driver but I use WASAPI. If there is a difference in performance, it's too small to notice.]

  • Like 5
Link to comment
Share on other sites

3 hours ago, bitflipper said:

According to FlexASIO's author, his wrapper calls a third-party library that in turn calls WASAPI.

Similar then to the wrapper that I use when I need a wrapper, ASIO2WASAPI.

3 hours ago, bitflipper said:

if your audio interface doesn't support ASIO the logical solution is to use WASAPI

The scenario for my use of ASIO2WASAPI on my laptop is that the bit perfect audio players that I prefer, and Cakewalk itself, make you go through an extra layer of rigmarole if you change driver models from ASIO to WASAPI. Sonar always wants to run its profiler query to enumerate bit rates and such, and my music player wants an entire restart.

If I just keep the driver mode on ASIO and use ASIO2WASAPI when I'm listening through the onboard CODEC, these programs don't do that extra stuff. So I can plug my Studio 2|4 in when I want to do recording or MIDI and if I unplug it and take the laptop on a plane, I don't have to go through the driver model dance.

11 hours ago, Bass Guitar said:

My Sound card won't use  WASAPI Exclusive or WDM modes.

This is a work laptop? Initially configured by your IT department or someone at Dell or HP or Lenovo or Acer I guess.

The only times I've been unable to use WASAPI Exclusive were when either the "Allow applications to take exclusive control of this device" box wasn't checked in Control Panel/Sound (see below), or when it was checked, but some hidden app had control of the driver.

The junkier, more "shovelware" an app is (like the stuff routinely cluttering brand new laptops), it seems like the more likely it is to want to take control of something or other and leave itself running.

In my own subjective experience, the ubiquitous Realtek CODEC is not that bad in and of itself. I've read the spec sheet. S/N, THD, IMD and slew rate and so forth are respectable. They can even operate at the very high sample rates.

The Realtek CODEC is helped a little by not having responsibility for such things as managing USB traffic and creating a 48V rail (which requires a bus-powered USB interface to turn 5V into clean 48V). It IS, however, at the mercy of physical PCB/jack routing, and it wouldn't surprise me if it produces better results (jitter-wise) when it sees cleaner DC.

image.png.58bbec620f2818212a43f588a26ebc1e.png

  • Like 2
Link to comment
Share on other sites

I would like to thank everyone who has contributed to this topic and, at the same time, invite you to share your thoughts with the FlexAsio developer, who has been very open and responsive in addressing the various concerns I have raised with him.

I believe it is very important that the tool he created be developed and improved, especially since we, Third World users, have a lot of difficulty, due to financial issues, in continually improving our hardware/interfaces/modernizations.

From my own experience using a Tascam US 600, I have found it to be a great advance for my production work.

Thank you all and here is the link to my topic there.

https://github.com/dechamps/FlexASIO/issues/246

 

The link below is documentation that the developer provides us about the backends.

https://github.com/dechamps/FlexASIO/blob/master/BACKENDS.md

Link to comment
Share on other sites

I personally have no use for it. I use either an audio interface of which I own about 6 things that are classified as such, and all have good ASIO drivers. Or I simply use WASAPI shared.  

@Starship Krupa    Ya, that was possibly it. I always leave that unchecked because otherwise I can't work in multiple apps or play a You tube. I have no need of WASAPI exclusive, I'm not recording. 

@Milton Sica   My findings of a 9 ms latency is actually very good. Read what I said carefully. All systems have latency. A generic ASIO driver cannot be expected to calculate that. It needs to report the Round Trip latency to the Daw. 

  • Like 1
Link to comment
Share on other sites

10 hours ago, Starship Krupa said:

Similar then to the wrapper that I use when I need a wrapper, ASIO2WASAPI.

I don't see any point in using a WASAPI to ASIO wrapper when Sonar already has robust WASAPI support. You are inviting more problems and bugs by doing that.
If you have a problem that is related to our WASAPI support report it as a bug and we'll investigate it in time.
A WASAPI to ASIO driver couldnt get any better latency than Sonar already gets from WASAPI. Its typically limited to 10 ms for USB audio devices in shared mode, and can go lower depending on the manufactures support for WASAPI.

Unfortunately a few manufacturers don't support great latency in WASAPI and if so the only recourse is to use ASIO.

  • Like 2
  • Great Idea 1
Link to comment
Share on other sites

7 hours ago, Noel Borthwick said:

I don't see any point in using a WASAPI to ASIO wrapper when Sonar already has robust WASAPI support

Nor do I in most cases.

In my case, I switch back and forth between my PreSonus Studio 2|4 and the Realtek, and it saves a bit of time/hassle to leave everything on ASIO. Cakewalk isn't my only DAW, and I have bit perfect music players that use ASIO and create even more hassle when switching driver modes.

If I didn't have a nice external audio interface to plug in, it would be WASAPI all the time.

Link to comment
Share on other sites

56 minutes ago, Starship Krupa said:

In my case, I switch back and forth between my PreSonus Studio 2|4 and the Realtek, and it saves a bit of time/hassle to leave everything on ASIO.

Why not use Sonar's Backup/Restore settings option (it's how I switch between ASIO external USB and WASAPI HDMI)?

Link to comment
Share on other sites

On 9/25/2024 at 12:43 PM, Noel Borthwick said:

I don't see any point in using a WASAPI to ASIO wrapper when Sonar already has robust WASAPI support. You are inviting more problems and bugs by doing that.
If you have a problem that is related to our WASAPI support report it as a bug and we'll investigate it in time.
A WASAPI to ASIO driver couldnt get any better latency than Sonar already gets from WASAPI. Its typically limited to 10 ms for USB audio devices in shared mode, and can go lower depending on the manufactures support for WASAPI.

Unfortunately a few manufacturers don't support great latency in WASAPI and if so the only recourse is to use ASIO.

Could you explain how the "ROBUST SUPPORT THAT SONAR GIVES TO WASAPI" works?

I believe this would be important to dispel many of the doubts we have about the use of this or that driver.

Thank you!

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...