Yamaha Steinberg USB ASIO Problems Since July Commit

It might be the call to shouldReleaseObject as that has a String argument.
If you just remove this (assuming it always returns true now) can you add the try/except?

(Sorry, I don’t have a Windows machine to hand to test any of this on or I’d try and offer a patch myself).

Yes, that works.

grafik

Result:

  • Exception is thrown
  • crashed == true

Ok, it sounds like this might be our solution then. :smiley:

Awesome, one less problem in this world :slight_smile:

I guess you are right.
If you want an interface with good drivers, I can recommend RME.

1 Like

Yes says my Fireface UC. I just bought the UR22 to be able to record on usb power only and hoped for good drivers. It is fine on OS X, but on windows… really annoying.

Sorry, I should have been clearer in my original post. Calling Release() on the asioObject will throw an exception when using the Yamaha Steinberg driver and you can continue execution afterwards. Adding a try/catch block around the call won’t make a difference as the debugger will still pause when the exception is thrown, but are you saying that the Release() call still needs to happen for the driver to function correctly when closing and re-opening?

Yes, I think so. Without it, the driver seems to flake out and can’t be opened again.

Adding the try/except around the Release() call won’t have any effect in a debug build btu should stop the crash in a release build as it should stop the exception from propagating and causing a termination.

Remember that these are not C++ exceptions, they’re Windows “structured exception handling” statements. (Assuming I’ve understood everything in this thread correctly without being able to try it myself…).

2 Likes

I believe there are still issues with the Yamaha ASIO – I’m testing the Juce audio plugin host with a UR22C, and when I change the buffer size in the Yamaha asio control panel, JUCE enters a kind of infinite loop where it keeps opening the soundcard while receiving kAsioResetRequest events:

ASIO: found Yamaha Steinberg USB ASIO
ASIO: showing control panel
ASIO: spent: 3

(control panel is opened, buffer size changed)

ASIO: kAsioResetRequest
ASIO: kAsioResetRequest
ASIO: kAsioResetRequest
ASIO: restart request!
ASIO: stopping
Thread 0x1858 stopped with code 0 (0x0).
ASIO: clock: Internal (cur)
ASIO:  Resetting
Thread 0x1114 stopped with code 0 (0x0).
ASIO: disposing buffers
ASIO: creating buffers: 2, 512
ASIO: kAsioResetRequest
ASIO: channel format: 18
ASIO: Latencies: in = 668, out = 711
ASIO: starting
ASIO: restart request!
ASIO: stopping
Thread 0x2ed4 stopped with code 0 (0x0).
ASIO: clock: Internal (cur)
ASIO:  Resetting
Thread 0x1254 stopped with code 0 (0x0).
ASIO: disposing buffers
ASIO: creating buffers: 2, 512
ASIO: kAsioResetRequest
ASIO: channel format: 18
ASIO: Latencies: in = 668, out = 711
ASIO: starting
ASIO: restart request!
ASIO: stopping
1 Like