|
|
Thread Tools | Display Modes |
11-18-2022, 03:07 AM | #1 |
Human being with feelings
Join Date: Apr 2016
Posts: 30
|
Crash ARA - Align media to detect grid / Import into project: Tempo (FIXED)
ARA plugins crash in Reaper. This is how to reproduce the crash:
- Open Reaper (v6.70) - Create a track and load an audio file - Load the JUCE’s ARAPluginDemo (https://github.com/juce-framework/JU...RAPluginDemo.h) - In the plugin window, select “ARA: Align media to detect grid” - Crash I tested it with JUCE 7.0.2 (master) and ARA 2.1.0 (for compatibility). The crash also occurs with my own ARA plugins made with JUCE. You can also encounter a crash if you select “ARA: Import into project: Tempo”. I don’t know if the problem lies in Reaper, ARA, or JUCE. |
11-21-2022, 01:51 AM | #2 |
Human being with feelings
Join Date: Apr 2016
Posts: 30
|
I tested with JUCE develop (128e980) and ARA SDK 2.2.0 and the problem persists. By the way, here is the crash log.
|
11-21-2022, 03:43 AM | #3 |
Human being with feelings
Join Date: Dec 2012
Posts: 13,636
|
I'm not the developer, but I think you should include OS infromation, especially when you are using ARM build.
|
11-21-2022, 04:16 AM | #4 |
Human being with feelings
Join Date: Apr 2016
Posts: 30
|
Yes, of course.
This is from the crash report: macOS 13.0 / M1 Identifier: com.cockos.reaper Version: 6.70.0_309480du (6.70.0_309480du) Code Type: ARM-64 (Native) OS Version: macOS 13.0 (22A380) The crash also happens on Windows 11 (10.0.22) / Intel i7. I can test on other machines if necessary but I think it doesn't depend on the OS or the architecture. |
11-21-2022, 04:18 AM | #5 |
Human being with feelings
Join Date: Dec 2012
Posts: 13,636
|
Ah, okay. Sometimes crashes only happen on some OSes, but on others don't, that's why I suggested to add that info.
|
11-24-2022, 01:41 AM | #6 |
Human being with feelings
Join Date: Apr 2016
Posts: 30
|
I created a similar issue on JUCE Forum (https://forum.juce.com/t/crash-ara-r...-tempo/53794/3) and the problem seems on the Reaper side. Reaper should not call DocumentController::createAudioSourceContentReader ().
|
12-04-2022, 08:43 AM | #7 |
Administrator
Join Date: Mar 2007
Location: NY
Posts: 16,519
|
Thanks for the report. The crash appears to be an assert in the plugin code. We will add a call to isPlaybackRegionContentAvailable() / isAudioSourceContentAvailable() before createPlaybackRegionContentReader() / createAudioSourceContentReader() to hopefully avoid the assert.
|
12-04-2022, 02:36 PM | #8 |
Administrator
Join Date: Mar 2007
Location: NY
Posts: 16,519
|
This change is in the current prerelease builds, if you'd care to try it out and let us know if it fixes the problem. https://forum.cockos.com/forumdisplay.php?f=37
|
12-05-2022, 01:49 AM | #9 |
Human being with feelings
Join Date: Apr 2016
Posts: 30
|
Thanks for the news. Unfortunately, the plugins still crash. I tested v6.71+dev1204 on macOS 13.0 M1, I can test on other machines if necessary. The assertion is part of the ARA SDK so this is annoying to modify and even if I debug the plugin in Reaper, it doesn't hit the assertion in my code.
I'm only developing ARA plugins and I didn't investigate properly the host part of the ARA SDK but, if it can help, it seems to me that the methods ARA::PlugIn::FactoryConfig::getAnalyzeableContentT ypesCount(), ARA::PlugIn::FactoryConfig::getAnalyzeableContentT ypes() and ARA::PlugIn::FactoryConfig::getSupportedPlaybackTr ansformationFlags() should be used to verify what can do the plugin. Here is the possible assertion: https://github.com/Celemony/ARA_Libr...Plug.cpp#L1827 This way, these actions (ARA - Align media to detect grid / Import into project: Tempo) can even be disabled and inaccessible to the user if the plugin doesn't allow them. |
12-05-2022, 06:41 AM | #10 |
Administrator
Join Date: Mar 2007
Location: NY
Posts: 16,519
|
Today's build (+dev1205) may quiet down the asserts.
The default ARA assert will terminate the plugin, but ARA does support installing your own assert function. I might suggest installing an assert that does not automatically terminate? If there is functionality that your plugin doesn't handle, it probably makes more sense to log the error and continue rather than terminating. |
12-05-2022, 06:57 AM | #11 |
Human being with feelings
Join Date: Apr 2016
Posts: 30
|
No more crash with +dev1205. Thank you!
> I might suggest installing an assert that does not automatically terminate? Indeed, I will try to replace the ARA assert method. |
Thread Tools | |
Display Modes | |
|
|