I’ve built my own custom endpoints and expression maps to use this interesting string library from Spitfire / Pianobook called Dan Keen’s Soft String Textures. It’s fairly limited in articulations but has soft and beautiful longs which is exactly what I was going for in this relatively short composition.
However, trying to export it was a completely maddening experience, which took nearly 6 hours of constant crashing and troubleshooting. Invariably, Dorico would simply crash in the middle of an audio export, about 25% of the way in. I tried everything down to refreshing and rebuilding the playback template, separating each player onto individual flows, removing all dynamics, slurs, ornaments, and articulations. Removed any sends or insert effects. Nothing seemed to work. Finally, I exported the parts as musicXML and brought them into an entirely fresh project. This still did not work when exporting the strings together on one flow, however, it was finally able to export if I parsed them onto individual flows and exported one at a time, which I then had to marry together in Logic.
I should mention now that at some point I switched strings over to Halion and also Note Performer, and in both cases they exported without issue, all other things being equal.
One observation I made was if I had the Kontakt window open for one of the instruments, it would close in the middle of the export right where it then freezes.
I don’t believe the issue would be Kontakt, though, because I have successfully exported other projects which use Kontakt instruments on a regular basis.
I’ve also successfully exported a previous project using these very same Soft String Textures template I built. So I really cannot figure out how to get to the bottom of this for the future. Any ideas? Can a diagnostic report help in this case? (FYI using latest Dorico on MacOS Silicon m2 etc)
Can you please do Help > Create Diagnostic Report and attach the resulting zip file here? Hopefully that will allow us to see where the crashes were occurring. If I had to put money on it, I’d guess that the crashes are in Kontakt, but until we see the diagnostics, I can’t say for sure.
It could well be the library. Kontakt libraries do behave differently when rendering, for example by default the sample interpolation algorithms are different. Plus the real time and non real time processing can be different.
So libraries can work in real time and fail during rendering.
Hi Daniel, thanks for the fast reply. I generated a diagnostic .zip and yet it’s actually too big to upload using the forum which says there is a 4MB limit. Surprisingly this file is 9MB – so I uploaded to my google drive, hope this works - Dorico Diagnostics.zip - Google Drive
Let me know if you need any other info from me. Thanks!
That’s interesting and I had no idea. Good to keep in mind. I would hate to not use this string library - it has a unique vibe but if I can’t render it successfully from Dorico, there’s not much of a point to using it (its benefit is primarily for playback, since the notation I write would be the same for any other string library).
So far, that’s just a possibility - the true answer might be something different. Probably best to wait for Daniel’s reply before investigating that idea any further.
Thanks for the diagnostics. There are lots and lots of audio engine crash files in there, and every one of them I’ve looked at shows Kontakt 7 causing the crash. An indicative few stack frames:
Thread 68 Crashed:: Vst Realtime Thread 15
0 Kontakt 0x302399088 BEngine::FreePendingDFDSegments(BVoice&) + 184
1 Kontakt 0x30245ba30 BEngine::StopVoice(BVoice*) + 68
2 Kontakt 0x3023b6f8c BEngine::Process(float**, long, bool) + 2044
3 Kontakt 0x3023b367c BInstrument::processAudio(NI::AB::AudioBlockArray&) + 860
4 Kontakt 0x30306d93c NI::AB::InterfaceBase::processAudio() + 1224
5 Kontakt 0x3027fd9cc NI::AB::InterfaceVST3::process(Steinberg::Vst::ProcessData&) + 856
What I suggest you do is unzip the diagnostics, collect together the files whose names begin VSTAudioEngine5 and end .ips, zip them up, and send them to the support team at Native Instruments for their investigation.
If you are on a Mac, you could try using something like ‘Loopback’ from Rogue Amoeba to feed Dorico’s stereo output into a DAW and bounce it down that way. This is presuming that Dorico plays the file back without problems, it’s just the export that’s giving you trouble.
Thanks Daniel! Interestingly all of my Kontakt instances were originally Kontakt 6 which I originally used to build the templates, and the crashing was happening on those, so I thought maybe migrating the instruments to Kontakt 7 could fix the issue (which obviously it did not). I will let the NI support team know, though I’m not holding my breath since they are nearly as helpful as you guys
Oh wow that’s a great idea – in fact I actually do already own Loopback which I had to buy for work & screen share reasons, and at the peak of my frustration with this export I still hadn’t even considered it! All I needed was a basic stereo output of what I was hearing in real time so that would’ve been fine. Next time something like this happens (knock on wood, hopefully it won’t) I will definitely have this method in my back pocket just in case.