Crash or strange rendering occurs when using Bezier curves with volume automation

Using Bezier curves in volume automation can cause a crash on playback or rendering.
This crash only occurs with volume fader automation.

How to reproduce

  1. Create an audio track.
  2. Set two events on the volume automation track. At this time, it is easier to reproduce if the interval between the two points is less than the process block size.
  3. Use the handle between the automation to make it a Bezier curve.
  4. Set a new automation event inside the Bezier curve. This will create two adjacent Bezier curves.
  5. Cubase will crash when playing before this automation.

It may not reproduce. Try narrowing the automation interval or changing the audio buffer size and playing again.
In the attached video, buffer size 32, ASIO-Guard off, automation interval about 20 samples

About process block size

When processing in real time, this value is determined by the audio device buffer size and the ASIO-Guard settings. (Project playback, real-time export)
When rendering offline, the ASIO-Guard settings have no effect. The process block size is the same as the audio buffer size. (Export Audio Mixdown, Render in Place)

When ASIO-Guard is enabled (low 256, normal 512, high 1024 samples), the process block size is larger than the audio device’s buffer size. (Sometimes it’s different)

Example: If ASIO-Guard is low and Buffer Size is 32 samples, the process block size is 256
Example: If ASIO-Guard is high and Buffer Size is 2048 samples, the process block size is 2048

The process block size value was verified by creating a plugin with VST3SDK.

Related bugs in Cubase 12 and 13

There has been a problem with Bezier curves for volume automation since previous versions. The following image was verified with CubasePro13.0.41. A new feature in Cubase 12 has improved the resolution of volume automation, but this is a bug that has existed since then.

  1. In a 48kHz project, a 24kHz square wave was loaded into the audio track.
  2. Volume automation was written at short intervals. A Bezier curve was used towards the end.
  3. Render in Place was performed while changing the process block size.

The track name is the process block size.
The rendering result near the Bezier curve is strange. If you look closely, it seems that the data before the Bezier curve is copied for a certain length and then rendered. The larger the process block size, the wider the range of influence.

When I tried to test this phenomenon on Cubase 14, I found that the above crash occurred.

I believe the reason why Cubase 14 crashes is because they tried to fix a bug that existed in Cubase 12 but were unable to fix it completely. Actually, I did a more detailed investigation and found various phenomena, but this is a bit off topic, so I’ll stop here.

I have the same problem on both Mac and Windows.

Mac Studio Apple M2 Max macOS Sonoma 14.7
Windows 11

This issue still exists after the Cubase Pro 14.010 maintenance update.

This issue still exists after the Cubase Pro 14.0.20 update.

Hi,

Could you please attach the related *.dmp/ips file(s).

Mac: macOS Console utility > Crash Reports (or ~user/Library/Logs/Diagnostic Reports).
Win: %userprofile%/Documents/Steinberg/Crash Dumps

I cannot reproduce it, tried with different buffersizes, drew different automation curves, nothing. Would be easier if you maybe posted an example project…

This is a crash report.

Cubase 14-2025-03-12-233117.ips (123.2 KB)

This is a sample project.

test.zip (276.5 KB)

Offline bounce. Or playing in real time.
Cubase crashes.
Setting the buffer size to 2048 makes it easier to reproduce.

Yep, with that project I could reproduce it. Funnily, when I started with 96 and 128 buffer sizes, nothing happened, then I switched to 2048, 2014, 512, crash. Back to 128, one time crash, next time nothing.
But yeah, Null pointer read/access violation in Cubase.exe. Bug (but probably not one you would encounter often in real life scenarios…)

1 Like

Yes, that’s right. Sometimes the crash doesn’t happen if you reduce the buffer size.
In Cubase 13, instead of the crash, you get strange rendering results.
At least, this bug has existed since Cubase 13.

Thank you for verifying.

those rendering results of yours really look “funny”… I did some automation rendering tests some time ago (C11/12, iirc), and got similar issues with higher buffer settings and “instant” automation changes (never tried bezier though). I think those were eventually fixed when the volume automation became sample accurate and independent of the buffer size.
But yeah, automation testing in DAWs is a rabbit hole. Better not to go there :smile:

1 Like

That’s right. Before C12, there was another problem. I won’t go into the details because it would be too long.
Some problems have been resolved. But, Every time a version update comes along, a new problem appears.

Thank you.

Hi,

Oh, I see the crash still happens in Cubase 14.0.20.

Reported to Steinberg. Thank you!

1 Like