- if (!_export_started) {
- _export_started = true;
- set_transport_speed (1.0, false);
+ if (_export_preroll > 0) {
+
+ _engine.main_thread()->get_buffers ();
+ fail_roll (nframes);
+ _engine.main_thread()->drop_buffers ();
+
+ _export_preroll -= std::min ((framepos_t)nframes, _export_preroll);
+
+ if (_export_preroll > 0) {
+ // clear out buffers (reverb tails etc).
+ return 0;
+ }
+
+ set_transport_speed (1.0, 0, false);