Audio Export Issue - Beginning missing with heavy plugin load

Hello,

Now that I’m really starting to push Dorico to the limits when it comes to playback (driving some particularly heavy libraries and effects plugins), I’m starting to run into issues when doing an audio export. It is missing the first few seconds of music.

At first I was able to work around this by adding a 2 second audio pre-roll, but now I’m working on a new track that uses an even heavier plugin load and now I’m having to add at 15 second pre-roll just to avoid having it chop music off the beginning. With 10 seconds I end up missing approximately all of bar 1 (there’s no pickup, the music starts on the downbeat of bar 1). Then I have to take the export into an audio editor and remove the silent first 15 seconds created by the preroll.

I’m using Dorico 5 latest version on Windows 11 with Vienna Ensemble Pro.

Again, I can only produce this issue with an extreme plugin load, and the issue only happens on audio export - live playback works fine and I hear the music complete from bar 1.

Hi @mducharme , that is quite weird and unexpected.
Which ASIO driver have you chosen under Edit > Device Setup when doing the export? Try with a different one and see how the export does behave then.
Also please post a diagnostics report, though I doubt it will contain much info in regards to the failing export, but please post it anyway, Thanks

1 Like

Hello @Ulf

I’ve attached the diagnostics report.
Dorico Diagnostics.zip (3.4 MB)

The ASIO driver I am using is the one for the RME HDSPe AIO PCIe card. I am using the latest driver and firmware for the card.

I tried changing to the “Steinberg built-in ASIO Driver” which at some point recently appeared alongside the “Generic Low-Latency ASIO Driver” in the list (but it almost looks like it is the same as the “Generic Low-Latency ASIO Driver”, what is the difference between them?). When using the Steinberg built-in ASIO Driver, the behavior changed slightly, in that instead of hearing nothing for the first 13 or 14 seconds of the file where there should be music, I am only missing the first 4 or 5 seconds of the music. So the problem still exists, but the duration of missing music has changed. I changed back the driver afterwards and tried the export again and got the 13 or 14 seconds result again, just to be sure that it was caused by the driver change and wasn’t a coincidence.

In case this information helps, setting a pre-roll is the only way I’ve found (aside from adding empty bars at the beginning) to counteract this. Something interesting/strange about it is that the amount of pre-roll that I have to add is not the same as the amount of silence at the beginning. I usually have to add 3 or 4 times as much pre-roll time as the number of seconds of music incorrectly missing (and replaced with silence) at the beginning of the exported audio. So if I’m missing the first 5 seconds of music in an export, I usually have to set the pre-roll time to 3 or 4 times that (20 or 25 seconds) to export without it removing music from the beginning. This then gets quite annoying because then I have to use an audio editor to remove the silent 20-25 seconds from the beginning but at least the music is all there then.

I don’t know if this applies to your situation but it might give you somewhere else to look. I once had a similar issue with silence at the beginning of exported audio (with live playback fine). This was in Logic not in Dorico but ultimately the problem turned out to be a bottleneck in the disk throughput. The connection wasn’t fast enough to handle everything at once. Maybe you can do something to split up the samples and the target drive of the export if they are the same. Just a shot in the dark but it helped me then.

Thanks for the data @mducharme .
As already expected, the logs don’t tell me much about the actual export.
Does it only happen when you use VSL or also with NotePerformer? How about HALion Sonic?
We need to find out more about the circumstances, when it fails and when not.

The new Built-in driver from Steinberg in fact is very similar, but differs in some aspects. First, you can’t run it in exclusive mode, it is always in shared mode all the time. Second, It can do sample rate conversion on the fly. E.g. Dorico is set to 48kHz but the Windows sound system to 44.1kHz, then the driver will automatically convert the Dorico audio stream to 44.1kHz. That are the main differences.

Hi Ulf,

Part of the challenge here is that in VSL I am using some extremely CPU intensive things - the full microphones in their Synchron series, as well as Gullfoss (an AI automated EQ plugin). If I turn those off, it exports just fine with standard mics from VSL with no music missing from the beginning. The template with the full mics is so CPU intensive that 50% of my processors on all cores are in use when the system is idle (not playing, but ready to play), with the largest buffer sizes available. When playing music, that reaches 80-90% and at some busy points with fast notes in the strings, it hits 100% and starts to drop out - that is how heavy the load is. And this is with a very powerful system - I have an AMD Ryzen 9 3900X with 64GB RAM and an RME HDSPe AIO PCIe audio interface.

To simulate the same scenario with Halion, I would need to probably need to load up 5-10 full symphony orchestras playing simultaneously to reach the same CPU load. So it is something that most others would have never experienced because they are not pushing it nearly as hard.

Using NotePerformer is similarly not a good simulation of this load, unfortunately. Loading Synchron in NotePerformer will load only the standard mics, and when I use only the standard mics in all instruments in my normal template (without NotePerformer), it reduces the CPU load significantly so that I no longer have problems with my normal template and it exports without chopping off the beginning. In order to simulate enough load with Synchron with NotePerformer, since it does not allow me to load the full microphones, I would need to load more orchestras (probably two or three full symphonies), but this uses too much memory and NotePerformer will run out of memory and not load.

There are two things I can try doing:

One is I can try to load up an instrument alongside the VSL, something in Halion, like a piano, playing repeated quarter notes or something every bar like a metronome, and see if exporting still results in silence at the beginning, or whether I just hear the Halion instrument.

The other thing I can try doing is I can try loading up the same Vienna Ensemble Pro template in Cubase and exporting all MIDI from Dorico and plugging in the same template. Because all my samples are running in Vienna Ensemble Pro in a single instance, including all effects plugins like Gullfoss and Pro Q3 and Cinematic Rooms, if I transplant the MIDI and VE Pro to Cubase the result will be 100% identical in Cubase in terms of sound and load to what is loaded in Dorico, and then I can see if the same thing happens there. It would be a good test because Cubase would be playing identical MIDI as Dorico, with identical plugins loaded, and identical settings, and everything exactly the same - just with Cubase instead of Dorico.

I just did a very unscientific search and found that your Ryzen 9 3900X is 5 years old.
In a very unscientific way, I went to userbenchmark.com and compared it to my own machine…
My lowly i5-12600k is actually rated higher than your proc, and I’d never dream of running projects as taxing as yours…
Maybe a time to upgrade… :wink:?

Cheers, Benji

Yes, I built my system 4.5 years ago (around Christmas just before COVID hit) with the fastest CPU I could get at the time. There was only one model of AMD CPU faster, but it was out of stock everywhere. It was very expensive. It is still much faster than most people are running. I got the fastest I could at the time, the highest end parts that I could get, going over my budget so that the system would last me a long time.

Your CPU is faster, yes, but only by about 28% and it came out two years after mine: UserBenchmark: AMD Ryzen 9 3900X vs Intel Core i5-12600K

I’m looking at doing a new build later this year potentially (I build my computers myself) but am trying to get a bit more use out of this system.

It has been the case many times in the past that some of the virtual instruments I use and the way I am writing puts a very heavy load on my system, whatever my hardware is at the time. However, even though there may be dropouts during playback, the nice thing is that even though the plugins may be very taxing to a particular system, normally exporting the audio mixdown as an offline export (which I have always done in Cubase) results in a perfect mixdown because it can take as much time as it needs, it doesn’t have to play it back in real time, so more demanding parts of the music can take longer to bounce.

Sounds to me like you are quite simply smashing your CPU harder that it can go. It was a beast on release in 2019, but no longer (sadly). Reviews then compared it to Intel 9th generation CPU’s. Consider we are now at 14th generation Intel, that’s a long time time ago.

Of course it’s expensive to upgrade but really does sound like that is the only fix. And don’t forget to get a really good fan or liquid cooler to prevent CPU throttling
due to overheating. Budget for a good, powerful, cooler.

With your massive workload and vast capacity of the RME card, I wonder if you need to move to an enterprise class server with Xeon instead of a desktop PC? It may be a false assumption that a domestic desktop can handle such loads.

Also, as on poster said, you may want to consider disk bottlenecks, and use the very fastest NVME SSD drives. There are quite a lot of disk benchmarking tools, and even Windows 11 performance monitor gives a good idea of speed and throughout, worth studying.

Crystal Disk Mark is quite a good tool:

You probably want a mainboard that supports PCIe Gen 5 at least, for maximum NVME disk throughput.

Dorico is basically single threaded on notation input and layout - music programs have to be for technical reasons. As for audio export, I do not know whether Dorico can take advantage of multiple cores in the CPU - others here may know. But if not, then you need to choose a contemporary CPU with the maximal possible single threaded performance, which you can find info about on the internet.

I hope these musings may be of some assistance to you (but perhaps not to your wallet! :slight_smile: )

Right, but my point is that bouncing audio (exporting to audio) is different when it is an offline export. I’ve made pieces many times in Cubase that overloaded my computer and I couldn’t play back live, but I could export them to audio. They sometimes took about 3 times as long to export as they would to play them back live, but they would export correctly.

The export process is different than live playback, it can take as much time as it needs to in event the computer is overloaded and needs extra time to get things done. So no, I don’t buy that I “just need a faster computer”. I’ve long pushed my computers past their limits with the export process.

If things were just getting overloaded too much by the instruments that I am running, I would expect to get issues at the most complicated parts of the music. Instead, everything is always perfect with the export, except that the beginning few seconds of music are missing.

There are all sorts of bugs that could only occur under load, ex. things like race conditions that would not normally appear. Last thing I would want is to spend that money on an upgrade, and then be able to play back things live with zero dropouts and great performance, but still have the opening chopped off on export.

This is along the lines of what I am expecting: that there is a bug somewhere (in either Dorico or Vienna Ensemble Pro) that only materializes under heavy load, causing something to happen in the wrong order that happens in the right order under normal conditions, leading to the audio being chopped off.

Ok, understood. You are in difficult territory.

Hi @Ulf

So I have been doing some troubleshooting and making progress in getting this figured out.

Originally in Dorico I had it using just a single instance of Vienna Ensemble Pro for everything (for the entire orchestra, just different ports/channels), so there was just one copy of Vienna Ensemble Pro running and all orchestral tracks ran through that.

As an experiment, I tried adding a single piano to the score in Halion (outside of Vienna Ensemble Pro, in Dorico) playing a repeated pattern. When exporting, I heard this piano from the beginning, but the Vienna Ensemble Pro was incorrectly silent for the first several seconds and then I suddenly started getting sound from VE Pro.

As a second test, I tried loading a non-VSL electric piano (on a different SSD from the rest of my libraries) into Vienna Ensemble Pro and put the repeated pattern in there. This time everything was silent from the beginning and when I started to hear the VSL sounds was at the same instant that I started to hear the non-VSL electric piano.

This confirms two things:

  1. The SSD performance is unrelated to this issue, otherwise the non-VSL electric piano loaded in VE Pro from a different drive would not have been cut off incorrectly
  2. Only instruments loaded in Vienna Ensemble Pro in Dorico are getting exported as silent at the beginning - directly hosted instruments are not.

There are three possibilities:

  1. There is a bug or malfunction in VE Pro
  2. There is some incompatibility between VE Pro and Dorico
  3. There is a bug in Dorico that is only being triggered by VE Pro (this is less likely, I think, but possible).

So it is probably #1 or #2. I will open a ticket with VSL at this point.

A Xeon is an option, but in terms of VSTi performance, the Xeon is only a small percentage faster than the highest end AMD 7950X3D in terms of DAWbench scores. I expect the AMD 8950X (coming in the next couple months) to leapfrog that, as the enhancements it makes will likely make it the fastest at handling VSTi’s. So if I wait just a bit longer, I can jump on that bandwagon.