Commit graph

16992 commits

Author SHA1 Message Date
Robin Gareus
115c79874a
Fix Lua bindings for C++17/C++20 -- #8683
std::list/vector/map declarations change, requiring
explicit cast to avoid FuncTraits ambiguities.
2021-05-02 16:36:30 +02:00
Robin Gareus
8b888282fa
Ensure that no ThawList remains frozen by accident 2021-05-01 17:31:32 +02:00
Robin Gareus
08d8478f66
Cleanup and speedup combine/uncombine
Collect signal emissions and remove unneeded locks when
operating on the newly created Playlist.
2021-05-01 17:30:39 +02:00
Robin Gareus
c8585fce90
Cont'd work to prevent region creation signal-emission
This fixes another deadlock calling send_change with the
Playlist's RegionWriteLock held.

In this case due to "MIDI region copies are independent"
when duplicating MIDI regions.

```
ARDOUR::Region::send_change ()
PBD::Stateful::apply_changes ()
ARDOUR::RegionFactory::create ()
ARDOUR::RegionFactory::create ()
ARDOUR::MidiRegion::clone ()
ARDOUR::RegionFactory::create ()
ARDOUR::Playlist::duplicate ()
```
2021-05-01 16:21:17 +02:00
Robin Gareus
747a3d4a7b
NO-OP: clang-format 2021-05-01 16:21:17 +02:00
Robin Gareus
3e04e30e9e
Allow to create regions from sources with signals suspended
See also 65cc9264c8
2021-05-01 16:21:13 +02:00
John Emmas
80f6f152ee Add/remove source(s) in our MSVC project (libardour) 2021-05-01 09:44:20 +01:00
Robin Gareus
53e710bc5f
macOS: apply time scaling for rt constraints 2021-05-01 02:49:06 +02:00
Robin Gareus
65cc9264c8
Create regions with property changes suspended
This fixes various issues with signal emission(s) when creating
regions from withing playlist operations.

eg. Playlist::duplicate() takes RegionWriteLock() and then calls
RegionFactory::create().

see also 6a82aa392c
2021-04-30 18:43:36 +02:00
Robin Gareus
f3d7c551e9
Explicitly set announce=false when creating regions (1/2)
This is in preparation for to improve consistency of
RegionFactory::create() default parameters (change
default to true).
2021-04-30 18:40:48 +02:00
Robin Gareus
58557e88c9
Do not move automation when inserting regions
RegionInsertDrag or Consolidate Range or any other operation
calling Playlist::add_region() previously triggered RangesMoved()
which resulted in DiskReader::move_processor_automation()

NB. insert + ripple still moves automation correctly.
2021-04-29 23:26:24 +02:00
Robin Gareus
a8c47da364
Fix realtime export loudness normalization
TmpFileRt::get_samples_written() returns the number of
samples written *to disk*. It is only valid after the FileFlushed
signal is emitted.

This fixes an assert() with Limiter and Analyzer being configured
with a too low total sample-count, leading to an overflow in
the analysis graph array.
2021-04-29 19:05:09 +02:00
Robin Gareus
94d79a3809
Count xruns during realtime export 2021-04-29 17:50:28 +02:00
Robin Gareus
d279e2d333
Avoid accents in master-bus port-name translations 2021-04-26 23:20:27 +02:00
Robin Gareus
a679a2bd42
Retain PBD::Ids when reloading sessions (2/2)
Load send gain control state
2021-04-26 19:43:42 +02:00
Robin Gareus
2db53a4c3e
Retain PBD::Ids when reloading sessions (1/2)
Monitor/Listen sends panners are not restored, and hence do
not need to be saved. The panner-shell is bypassed anyway.
2021-04-26 19:43:42 +02:00
Robin Gareus
bc8258b234
Remove 6.0-pre0 workaround for missing InlineControl 2021-04-26 19:43:36 +02:00
Paul Davis
6db261d566 libgtkmm2ext: modify Keyboard handling of close-current-dialog
1) if there is no current dialog, allow some other window to handle the keyboard event
2) make the binding (which is hard coded) visible as static members of Keyboard
2021-04-26 10:48:20 -06:00
Robin Gareus
3e99bc5f54
Tweak silence trim threshold configuration
Amend, correct fe8418ffea
2021-04-24 16:42:22 +02:00
Robin Gareus
6da997ef30
Revert "use -90dB as default threshold for silence trim during export, rather than -inf dB"
This reverts commit fe8418ffea,
which had no effect, since the default c'tor argument is not used.
2021-04-24 16:42:17 +02:00
Paul Davis
d26d8c91a0 fix per-processor latency to reflect transport direction 2021-04-23 17:38:16 -06:00
Paul Davis
8080a14537 fix Route::latency_preroll() for reverse playback 2021-04-23 17:07:47 -06:00
Paul Davis
fe8418ffea use -90dB as default threshold for silence trim during export, rather than -inf dB 2021-04-23 11:03:17 -06:00
Paul Davis
0cec44ca4b diskreader: avoid double conditional, use else{} instead 2021-04-21 22:51:06 -06:00
Paul Davis
5ebe78ad2d diskreader: fix decrement of start before zero (#8647) 2021-04-21 22:50:26 -06:00
Paul Davis
62f47e75c9 fix double semi-colon 2021-04-19 16:38:23 -06:00
Paul Davis
180f333cd7 export needs to start transport, not just set speed 2021-04-19 16:14:09 -06:00
Paul Davis
f94aec5a59 fix/improve BasicUI's methods for rewind/ffwd/play (used by various surfaces) 2021-04-19 16:14:09 -06:00
Paul Davis
4b095aad62 additional debugging for TransportFSM events 2021-04-19 16:14:09 -06:00
Paul Davis
48f3719661 correctly initialize transport FSM's last speed request 2021-04-19 16:14:09 -06:00
Paul Davis
5f2d043ca4 update macro and call site for sending a TransportFSM::SetSpeed event 2021-04-19 16:14:09 -06:00
Paul Davis
12d361f43d clear clicks when starting transport 2021-04-19 16:14:08 -06:00
Paul Davis
fc6cf7ddac simplify, improve and correct logic in Session::set_transport_speed() 2021-04-19 16:14:08 -06:00
Paul Davis
14c2fdccf4 use correct API in a do-nothing-but-forced locate to start rolling 2021-04-19 16:14:08 -06:00
Paul Davis
b8c7ad6a9b better/correct logic (and macro) to reset default speed at stop (when relevant)
This also resets things after rewind/ffwd
2021-04-19 16:14:08 -06:00
Paul Davis
3fa027f19d correctly use a valid out-of-bounds value for Session::_requested_transport_speed 2021-04-19 16:14:08 -06:00
Paul Davis
eb1468718a fix ambiguity in TransportFSM Event constructors 2021-04-19 16:14:08 -06:00
Paul Davis
dc19aa866b change API for Session::set_transport_speed() to include "at-next-start" option 2021-04-19 16:14:08 -06:00
Paul Davis
0bc5f88a65 fix logic error in transport FSM (compare with adjacent conditionals) 2021-04-19 16:14:08 -06:00
Paul Davis
48e5607f7c use Session::request_roll() instead of request_transport_speed (1.0, ...) 2021-04-19 16:14:08 -06:00
Paul Davis
52b7e68102 use new Session transport API calls in GUI 2021-04-19 16:14:08 -06:00
Paul Davis
cc8dcb9859 use StartRoll and EndRoll events in request_start() and request_roll()
Rather than ::request_transport_speed
2021-04-19 16:14:08 -06:00
Paul Davis
6d5cafb3b6 move various transport logic chunks into Session::realtime_stop(), Session::stop_transport() and Session::start_transport 2021-04-19 16:14:08 -06:00
Paul Davis
79f1ff3df3 fix thinko in TransportFSM's handling of deferred events
If a deferred event was used in process_event() but was deferred again, we deleted it. That was wrong,
it should remain in the deferred_events queue.
2021-04-19 16:14:08 -06:00
Paul Davis
11416bf9d1 improve/fix/simplify logic for TransportFSM speed handling 2021-04-19 16:14:08 -06:00
Paul Davis
c65daaa3d6 libardour: change API for Session::set_transport_speed()
We no longer need the abort/clear_state arguments because this method only controls speed,
not transport state
2021-04-19 16:14:08 -06:00
Paul Davis
229ea31f34 transport masters: use Session::request_stop() rather than Session::request_transport_speed() 2021-04-19 16:14:08 -06:00
Paul Davis
e5790c6b70 incoming MIDI: use Session::request_stop() rather than Session::request_transport_speed() 2021-04-19 16:14:08 -06:00
Paul Davis
6b7be1083b no need to request stop if locating with MustStop 2021-04-19 16:14:08 -06:00
Paul Davis
5a159abe1f new SessionEvents for start/stop transport 2021-04-19 16:14:08 -06:00