Bug: Audio unit configuration not being saved

First off, thanks for the excellent update to Dorico for IPad! The new sounds make composing on the iPad a great experience. However, I am experiencing a bug on 5.1, which was also present in 5.0.

Steps to reproduce:

  1. Start a new project with any template
  2. Navigate to the play screen and change an instruments source to an external AU (I used Drambo and Pianoteq)
  3. Use the “e” button to open the interface for the audio unit and modify the configuration (eg by adding an instrument in Drambo or selecting a Pianoteq preset).
  4. Use the top left arrow to back out to the file selection screen.
  5. Reopen the project. On the play screen, select the “e” button for the instrument you changed to view the AU interface.
  6. As expected, the configuration you set up before has been preserved (eg same Pianoteq preset selected).
  7. Make another change to the AU configuration (select a Pianoteq preset, add a module in Drambo)
  8. Top left arrow to back out to the file screen, reload the project.
  9. Select “e” button to open the AU interface a third time.
  10. BUG: the second round of changes to the AU (from step 7) have not been preserved. The AU is configured as in step 6. No future changes to the AU will be preserved either on closing the file or the app.

Clearly Dorico has the ability to save the AU state, because it does so the first time you attempt it. But only the first time! Unfortunately this really limits the ability to use external AUs, which is a great flagship feature of the paid version. There are a couple of related bugs (getting stuck on general midi instruments and unable to change to AUs) I’ll report if I can reliably reproduce them, but this is the main thing.

I’d really appreciate a fix to allow us to preserve AU configurations consistently, which would really unlock the power of the external AU feature.

Project file attached.
Can’t change AU Configuration 2.dorico (815.3 KB)
Can’t change AU Configuration.dorico (846.3 KB)

Welcome to the forum, @Superbonbon. I can confirm the behaviour you describe. We’ll look into this as soon as possible.

I’ve been looking into this over the last couple of days, and I believe the problem may actually be due to bugs in specific AUv3 plug-ins, rather than a problem with Dorico itself.

I don’t have a huge range of AUv3 instruments to test with, but I have both Pianoteq 8 and Viking Synth, for example. Viking Synth works as expected, and Pianoteq 8 does not. I’ve verified that when you change parameters in Viking Synth, when you save the project, Dorico receives from the plug-in by way of the audio engine an updated parameter dictionary that reflects the current state of the parameters. However, when you change parameters in Pianoteq 8, when you save the project, Dorico receives an unchanged parameter dictionary, i.e. the same one that was used to restore its state when the project was loaded.

There isn’t a lot we can do on the Dorico side aside from correctly get the state when saving, and set the state when loading. I’ve verified that Dorico is doing this correctly, so I think we may well be dealing with bugs in specific AUv3 instruments.

Can you let me know which instruments you’ve tested and which exhibit this behaviour?

Thanks for the prompt response! I’ve only tested this behavior with Drambo and Pianoteq. I’m happy to open tickets for those apps (which maybe are not as well supported as Dorico unfortunately). If you have any guidance for how exactly to describe the problem on the back end, that would be helpful… Something like “parameter dictionary not being consistently reported to host app”?

Thanks, @Superbonbon. I’ve been discussing this further with my colleague Alex, the main developer for Cubasis, and he made a suggestion about how we might be able to work around this issue. I’ve got an updated build with this fix waiting for approval via TestFlight, so if you’d like to send me a private message with your Apple ID email address, I can send you an invite to join the testing programme and you can verify that the problem is fixed.

After testing the new build, I can confirm that this issue has been resolved and the state of external AUv3s is getting saved whenever the dorico project saves. You do need to trigger a dorico project save by eg making some change on the “write” screen.