dechamps / FlexASIO

A flexible universal ASIO driver that uses the PortAudio sound I/O library. Supports WASAPI (shared and exclusive), KS, DirectSound and MME.
Other
1.36k stars 74 forks source link

CAKEWALK - PROJECT IS OPENED, WINDOWS CURSOR DOES NOT RETURN AS ARROW #246

Open miltonmagalhaes opened 2 weeks ago

miltonmagalhaes commented 2 weeks ago

FlexAsio.log

In Cakewalk, I open a project, the mouse cursor remains as if it were still operating something, but the clicks on the program options are all accepted, except the one that plays the project.

miltonmagalhaes commented 2 weeks ago

To clarify, this happens when the configured Driver is Koordasio.

dechamps commented 2 weeks ago

KoordASIO and FlexASIO are not the same thing. If you're having problems with KoordASIO, you'll want to report the issue against KoordASIO, not here.

The log you posted is definitely a FlexASIO log though, leaving me confused as to which driver you're having issues with.

Your log does not show anything obviously wrong on the FlexASIO side, although there is still this odd behavior from Cakewalk where it prepares the driver but then appears to give up and tears down the driver without actually attempting to do any streaming. This may suggest there is something that Cakewalk doesn't like about FlexASIO's behavior. It's hard to tell.

What I did notice though is that you are using somewhat of an odd config where one side (input) is using WASAPI Exclusive but the other side (output) is using WASAPI Shared. This causes FlexASIO to expose different sample types for different channels (in your case, ASIOSTInt24LSB for the input channels and ASIOSTFloat32LSB for the output channels), which is something the ASIO spec allows but is somewhat unusual and some apps may not handle that well. See for example #87. I would suggest trying with the default FlexASIO config (i.e. no config file) and see if that works.

miltonmagalhaes commented 2 weeks ago

Ok. I will focus only on FlexAsio, which is the basic structure of the application, because, from what I have seen so far, KoordAsio is just a "user-friendly" configuration interface.

On the other hand, FlexAsio GUI is another tool that needs better implementation, while several parameters are not received or saved correctly.

With the behaviors you report between Cakewalk and FlexAsio, would it be possible for me, on my side, to generate some kind of log?

dechamps commented 2 weeks ago

from what I have seen so far, KoordAsio is just a "user-friendly" configuration interface

No. KoordASIO and FlexASIO are different drivers, even though they share a lot of the same code under the hood.

With the behaviors you report between Cakewalk and FlexAsio, would it be possible for me, on my side, to generate some kind of log?

FlexASIO can only log what it sees. It cannot read into the mind of the application and determine how it's making its decisions. There is nothing obviously wrong about what FlexASIO is doing here that I can see so the next step would be to ask Cakewalk people.

As I said earlier though, you'd probably want to experiment with your FlexASIO config to see if only certain configs trigger this problem, as this would be useful information to understand what's going on.

miltonmagalhaes commented 2 weeks ago

Hello, as you advised, I have been using only this driver and have made several attempts to configure it directly in the file, since the other project, FlexAsioGui, does not save or recover some of them. So I preferred to write directly to it, following the documentation, but I was not able to make much progress in terms of buffers in Cakewalk and the driver to reduce them as much as possible.

The issue of configuring/unconfiguring/configuring the Tascam US 600 directly in your application as I mentioned above is what has allowed me to make a little more progress.

Would it be very difficult for you to contact the Cakewalk developers and try to investigate this relationship further?

These are the developers who appear most in the program's support.

Noel Borthwick Jonathan Sasor

I opened a thread on the Cakewalk forum quoting the engineers.

dechamps commented 2 weeks ago

Would it be very difficult for you to contact the Cakewalk developers and try to investigate this relationship further?

I'm afraid this is not something I would be interested in doing. I'm happy to answer any questions Cakewalk developers may have about FlexASIO and consider any suggestions they may have regarding FlexASIO's behavior, but I'm not doing to spend inordinate amounts of time driving a (likely non-trivial) investigation that involve an app and hardware I don't use and am not familiar with.

miltonmagalhaes commented 2 weeks ago

Ok. I posted the situation on the Cakewalk forum, quoting the developers. Let's see if they'd be interested. Thanks.

miltonmagalhaes commented 1 week ago

I bring you the testimony of a friend who uses Cakewalk and who installed FlexAsio and who, I believe, provided more details about the approach. The story is his.

"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. image

"

dechamps commented 1 week ago

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.

miltonmagalhaes commented 1 week ago

image

dechamps commented 1 week ago

That Noel guy is right - if an app has native support for WASAPI, then it's usually pointless to use an ASIO to WASAPI bridge (such as FlexASIO with the WASAPI backend) - it will only add more layers and thus more potential for problems. The only exception is if somehow the native WASAPI support in the app is broken/suboptimal, but that's not really supposed to be the case (and should, indeed, be treated as a bug in the app and reported as such).

I still don't understand what point you are trying to make by posting this stuff. This is just off-topic rambling at this point.

miltonmagalhaes commented 1 week ago

I am a lay user in all the hardware and software techniques that I need to do in my music production work, looking for a qualified answer to a simple question that is not simply: buy a more modern interface.

I have a Tascam US 600 audio interface that has been discontinued in its driver, but has its own driver. I get a lot of popping and delays. Increasing or decreasing the buffers does little good. What can I do to reduce these problems without the answer I get being: BUY A NEW CAR? This is a metaphor - Directly speaking: A more modern interface.

I thought the solution might be to use your FlexAsio as a way to "update" the driver.

Apparently, that's not the case!

I appreciate your patience and kindness in your responses.

in time: This made me run into an error: https://www.thewelltemperedcomputer.com/KB/ASIO.htm

FlexASIO differentiates itself by using an intermediate library called PortAudio that itself supports a large number of operating system sound APIs, which includes Kernel Streaming and WASAPI (in shared and exclusive mode), but also the more mundane APIs MME and DirectSound. Thus FlexASIO can be used to interface with any sound API available on a Windows system.