-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Max8 hangs with FlexASIO 1.10a WASAPI #235
Comments
Uh, that doesn't sound good. I'll see if I can reproduce on my end, but in the mean time, could you provide a log please so that I can take a look? |
I just gave it a try. I'm afraid I am unable to reproduce. The "Audio Tester" in Max 8.6.2 works just fine with FlexASIO 1.10a: In order to proceed any further I will need to understand the differences between your setup and mine. A log would help with that. |
Hi again, Yes, I have now reinstalled 1.10a and did some tests. I get the same issue as before, Max crashes whenever I choose FlexASIO as my driver. I am using a Lenovo machine with Windows 10. Attached is the log and a screenshot. |
Okay, now that your log gave me your FlexASIO config, I am able to reproduce. (Just for reference it is a hang, not a crash.) The log shows the stream starting, a single stream callback being fired, and then Max suddenly decides to stop the stream (it's unclear why):
The logs just ends there, which indicates that it's FlexASIO that's hanging in I pulled out the debugger and the relevant thread is stuck in this stack (note line numbers are relative to FlexASIO 1.10a):
Meanwhile, in the streaming thread:
So what's going on is PortAudio is trying to stop the stream, but it can't because FlexASIO is hanging forever in the stream callback. And the line FlexASIO hangs in is: FlexASIO/src/flexasio/FlexASIO/flexasio.cpp Line 1033 in fc4f579
So the reason why FlexASIO is hanging is because it's waiting for
…but the call never arrives, and so FlexASIO hangs forever. So, to summarize:
I was wondering why I couldn't reproduce this at first. It turns out it's only triggered if the WASAPI backend is used. The reason for this is because the DirectSound PortAudio code "helpfully" has a timeout in its stop code, thus hiding the problem! And indeed a DirectSound log does hint at the issue, through the error being returned from
In this case the streaming thread just hangs around forever, but it doesn't prevent I also noticed this does not affect FlexASIO 1.9, which surprised me at first, until I realized that in 1.9 this problem would have been hidden by #180. So, in other words, fixing #180 made Max regress because we are now (correctly) waiting for Whether Max is actually at fault here is somewhat debatable. On one hand, Max gets a So, to summarize: this bug is a very subtle regression in FlexASIO 1.10 that affects Max when the WASAPI backend is used. @aleksati I will fix this regression in the next FlexASIO release. In the mean time, you can work around this issue by going back to FlexASIO 1.9, or by avoiding the WASAPI backend. |
(Note to myself regarding a potential fix: one tricky part of this is, if we unblock |
This is fixed in FlexASIO 1.10b. |
Max8 (audio programming environment developed by Cycling 74') crashes when choosing FlexAsio v.1.10 and 1.10a. v.1.9 seems to still work just fine.
The text was updated successfully, but these errors were encountered: