This now passes all of the following, either
when directly bouncing or when re-recording via physical loopback:
* record w/preroll
* record w/count-int
* loop record at 00:00:00
* loop record starting >> 00:00:00
* punch record at 00:00:00
* punch record > 00:00:00
* rec-arm while looping (!)
* repeatedly rec-arm/disarm while rolling
realtime_stop() calls unset_play_loop(), unless loop is a
transport-state. Any later calls by butler_transport_work()
will never reach this get_play_loop() clause when just looping.
Besides while recording, locates are not possible,
so this case never triggered under normal operation
(Non-seamless looping is no longer supported since 6.0).
DiskWriter::seek() flushes all recorded audio/MIDI, and resets
buffers as if no recording has happened.
Data must be flushed to disk before any non-realtime locates happen.
This happens at transport-stop, which is usually called first.
Except since 8b048bb351 Session::butler_transport_work() may call
non_realtime_stop() after a non_realtime_locate() when looping
more than once.
If there is a tempo/meter change after the loop-end,
the capture duration was set incorrectly.
Previously `total_capture_beats` was set as if the recording
was linear passing though tempo-map changes after the loop.
_capture_start_sample is remains zero until
DiskWriter::check_record_status() starts recording.
This incorrectly increased _accumulated_capture_offset
during pre-roll which resulted in lost samples at the beginning.
This amends 730a0954 and b27bb586.
This also restores the original API for do_import()
and do_embed() as used by Lua scripts.
Note that this uses distinct IDs when importing both audio
and MIDI in the same DnD request.
This can happen when starting Ardour with the Preference pane
as initial tab. The editor, mixer are not realized, so
-propagation fails with:
IA__gtk_widget_event: assertion 'WIDGET_REALIZED_FOR_EVENT (widget, event)' failed
When plugins have not been scanned, and a session with
missing plugins is opened, ask to scan plugins.
This also consolidates translatable strings with plugin-selector.
Windows and macOS users don't have an easy way to disable this
otherwise (commandline option or edit URLs in the config, or
compile without PHONE_HOME support).
It's all the rage currently.