Hello SF hivemind,
Soundflow hangs when I use the new Sibelius plugin invoke method. The correct plugin dialog shows, I can't currently add any UI element waits for further automation while SF hangs.
I think this behavior was resolved for some basic commands that also called dialog windows via an 'async'. Could that be implemented for plugin calls?
The new speeds are incredible. Excited to take full advantage of it.
- SSoundFlow Bot @soundflowbot
Thanks for contacting SoundFlow support.
Please note, that the best way to get help with a script, macro or other content installed from the Store or content that you've made yourself, is to select the script/macro, then click the red Need help button, and then click "Get help with this script or macro".
By using this method, we will get access to more information and so should be able to help you quicker.
You can read more about how this works here: bit.ly/sfscripthelpIf you're seeing an error that isn't related to scripts or macros, and you think this is a bug in SoundFlow, please file a Help/Issue bug report.
You can see how to do this by going to bit.ly/sfhelpissue - In reply toScott_StevensâŹ:Kitch Membery @Kitch2024-03-25 23:09:18.651Z
Hi @Scott_Stevens,
Did you try this?
sf.app.sibelius.invokePlugin({ pluginName: 'RespellFlatsAsSharps', 'async': true });
If you did, and it failed, it may need to be added under the hood.
Either way, let me know.
Scott Stevens @Scott_Stevens
Unfortunately yes. Added it to the the following to the plugin call for 'ExchangeStaffContents' and the hang persisted. Same with 'NegativeBarNumberChange'.
Kitch Membery @Kitch2024-03-25 23:23:08.492Z
Thanks, Scott. It looks like it will need to be added under the hood.
- SIn reply toScott_StevensâŹ:SoundFlow Bot @soundflowbot
This issue is now tracked internally by SoundFlow as SF-1161
- In reply toScott_StevensâŹ:Christian Scheuer @chrscheuer2024-03-26 00:42:56.589Z
The correct plugin dialog shows
Hi Scott. Thanks - can you let me know which plugin you were testing with and how I might download it to test here?
Scott Stevens @Scott_Stevens
Absolutely đ
File => Install Plugins (LH) => Click upper dropdown for âAll Pluginsâ on Install Plugin dialog
=> Search for âNegative Bar Numbersâ => install
Repeat above line but search âExchange Staff Contentsâ
=> Try invoking either and add an elementWaitFor()
For the dialogs that follow the call.Christian Scheuer @chrscheuer2024-03-26 01:08:31.800Z
Thank you! Please note as Kitch mentioned this will require you to use "async mode" since in normal mode, by design, the action waits until the plugin has completed its call before it returns. This is the default behavior because plugins can return values. Async mode means the call is returning before the plugin has finished executing, so in that case you can't get any potential return value.
I'm making an experimental build now with async mode support.
Christian Scheuer @chrscheuer2024-03-26 01:23:36.124Z
I have this working now with 5.7.7-preview.2:
sf.app.sibelius.invokePlugin({ pluginName: 'NegativeBarNumberChange', 'async': true, }); var win = sf.ui.app("com.avid.sibelius").windows.whoseTitle.startsWith("Negative Bar Number Change").first; win.elementWaitFor(); var textField = win.textFields.first; textField.elementSetTextAreaValue({ value: '-10' }); var btn = win.buttons.whoseTitle.is('OK').first; btn.elementClick(); win.elementWaitFor({ waitForNoElement: true, });
Manual download link for 5.7.7-preview.2:
- AAleksander Waaktaar @Aleksander_Waaktaar
Hi Christian,
I am not getting this to work. I am mostly interested in how to invoke plugins in general, but I thought I'd test one from the forums to get started.
I get the following error message: "Element was not found or removed after waiting 2000 ms".Any idea what I am doing wrong?
// Ensure Sibelius is active and in focus sf.ui.app('com.avid.sibelius').appEnsureIsRunningAndActive(); sf.app.sibelius.invokePlugin({ pluginName: 'NegativeBarNumberChange', 'async': true, }); var win = sf.ui.app("com.avid.sibelius").windows.whoseTitle.startsWith("Negative Bar Number Change").first; win.elementWaitFor(); var textField = win.textFields.first; textField.elementSetTextAreaValue({ value: '-10' }); var btn = win.buttons.whoseTitle.is('OK').first; btn.elementClick(); win.elementWaitFor({ waitForNoElement: true, });
Christian Scheuer @chrscheuer2024-08-19 10:20:18.015Z
Hi Aleksander,
Your code looks correct, so it's hard to tell where it goes wrong without a bit more info. The best way is to start a new thread via the Script Help feature so we have access to your log files.
Essentially, if you get this error it can be either because that element in fact didn't show up, or that your script is looking for the element in the wrong way. So we'd need to know what you see when the error occurs.- AAleksander Waaktaar @Aleksander_Waaktaar
Thanks for your quick reply! I'll do that then.
- AAleksander Waaktaar @Aleksander_Waaktaar
After a second reboot it now works perfectly, and with other plugins as well!
- SIn reply toScott_StevensâŹ:SoundFlow Bot @soundflowbot
The linked internal issue SF-1161 has been marked as Done