13
0
Commit Graph

31682 Commits

Author SHA1 Message Date
825c299feb add TransportFSM::transport_speed(), a putative replacement for the Session method of the same name 2021-05-03 17:40:41 -06:00
438b1e5eab
Cont'd work to improve macOS rt priority 2021-05-02 20:24:10 +02:00
e82b2b48fb
Avoid ambiguity with C++17 enum class std::byte 2021-05-02 16:36:57 +02:00
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
8b888282fa
Ensure that no ThawList remains frozen by accident 2021-05-01 17:31:32 +02:00
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
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
747a3d4a7b
NO-OP: clang-format 2021-05-01 16:21:17 +02:00
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
53e710bc5f
macOS: apply time scaling for rt constraints 2021-05-01 02:49:06 +02:00
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
61885f0284
Explicitly set announce=false when creating regions (2/2)
This is in preparation for to improve consistency of
RegionFactory::create() default parameters (change
default to true).
2021-04-30 18:40:51 +02:00
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
6a82aa392c
Fix deadlock when duplicating regions w/ripple
This is an initial work-around for signal emission with
Playlist:region_lock held:

Playlist::duplicate() takes RegionWriteLock() and then calls
RegionFactory::create(). The newly created region does NOT have
property-changes suspended, and the RegionFactory can change
region-properties which results in signal-emission.

This in turn can lead to a call Editor::session_gui_extents()
-> ARDOUR::Playlist::get_extent() -> Playlist::RegionReadLock

which deadlocks: https://pastebin.com/84rSbsA3

Eventually we need a mechanism to create regions with
->suspend_property_changes() and add it to the playlist's
thawlist (pass a thawlist to the region-factory).
2021-04-30 03:40:32 +02:00
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
7a89d56009
Fix insert + ripple undo/redo
Playlist changes do not include region-property changes.
When inserting a region, position(s) of other Regions may
change and those changes have to be recorded explicitly (for now).

see also RegionRippleDrag.
2021-04-29 22:56:09 +02:00
2c64736604
Fix crash when consolidating range with automation
The undo command needs to be started before calling
playlist->add_region() because that may move automation
or include ripple changes. see the following backtrace:

```
UndoTransaction::add_command
ARDOUR::DiskReader::move_processor_automation
ARDOUR::Route::foreach_processor
ARDOUR::DiskReader::playlist_ranges_moved
ARDOUR::Playlist::flush_notifications
ARDOUR::Playlist::RegionWriteLock::~RegionWriteLock
ARDOUR::Playlist::add_region
Editor::bounce_range_selection
```

Except. it seems automation is moved incorrectly in this case..
2021-04-29 21:17:22 +02:00
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
5014b20c5f
Inform user if there have been dropouts during export 2021-04-29 17:50:46 +02:00
94d79a3809
Count xruns during realtime export 2021-04-29 17:50:28 +02:00
2e7b193988
Support MacVST2 plugins with multiple child views (e.g. UAD) 2021-04-28 00:57:41 +02:00
b6c75ef42a
Fix Mac Plugin re/sizing
Some plugin UIs, particularly those that cannot be resized
unset `autoresizesSubviews`. Since the plugin-view is re-parented,
the host has to directly set the view's size.

However some plugins have multiple child views, apparently
for off-screen pixmaps (e.g. UAD plugins). Those additional
should not be resized (or re-stacked).

e.g.

Reason-Rack
  view 0x7fe27e44e570 @ 0, 33 834 x 804
    view 0x7fe288aa3770 @ 278, 268 278 x 268

UAD Tube-tech
  view 0x7fe270a9cbf0 @ 0, 33 1160 x 374
    view 0x7fe28883d030 @ 0, 0 1160 x 374
    view 0x7fe2888546e0 @ 0, 0 1160 x 24


see also aef366c156
https://discourse.ardour.org/t/uad-plugin-will-not-load-shows-as-expired-when-its-not/105756/5?u=x42
2021-04-27 23:50:59 +02:00
d627e00ff6
NO-OP: whitespace 2021-04-27 23:40:45 +02:00
d279e2d333
Avoid accents in master-bus port-name translations 2021-04-26 23:20:27 +02:00
a679a2bd42
Retain PBD::Ids when reloading sessions (2/2)
Load send gain control state
2021-04-26 19:43:42 +02:00
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
bc8258b234
Remove 6.0-pre0 workaround for missing InlineControl 2021-04-26 19:43:36 +02:00
fc9a4754bc allow <PRIMARY>-w to close the preferences window, just other dialogs
Preferences is a tabbable, a leftover artifact of when it was, in fact, intended to be a tabbable. Rather than
re-engineer this right now, add a key event handler so that Primary-w works for this just like other dialogs
2021-04-26 10:50:30 -06:00
cce41ee15b no need for 2nd argument in OptionEditorContainer constructor call 2021-04-26 10:49:23 -06:00
3f1e4ceaaa remove unused argument to OptionEditorContainer constructor 2021-04-26 10:48:53 -06:00
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
54c135c8b9 fix "trim to loop" region edit operation so that it applies to any region that intersects the loop, not just those spanning it 2021-04-25 09:42:06 -06:00
3e99bc5f54
Tweak silence trim threshold configuration
Amend, correct fe8418ffea
2021-04-24 16:42:22 +02:00
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
d26d8c91a0 fix per-processor latency to reflect transport direction 2021-04-23 17:38:16 -06:00
8080a14537 fix Route::latency_preroll() for reverse playback 2021-04-23 17:07:47 -06:00
fe8418ffea use -90dB as default threshold for silence trim during export, rather than -inf dB 2021-04-23 11:03:17 -06:00
4abfcca8b6 rewind/ffwd from GUI needs to start transport, not just set speed 2021-04-23 11:02:54 -06:00
0cec44ca4b diskreader: avoid double conditional, use else{} instead 2021-04-21 22:51:06 -06:00
5ebe78ad2d diskreader: fix decrement of start before zero (#8647) 2021-04-21 22:50:26 -06:00
4c1a82a153 fix URL for VST3 plugin locations specs (#8659) 2021-04-21 18:00:41 -06:00
eeadf5087d
Shuttle wheel context-menu: max speed only applies to percentage 2021-04-20 14:26:30 +02:00
80405e41b0
Fix shuttle wheel unit granularity
When switching to Semitones, round speed to nearest semitone.

This fixes an issue when rolling forward at < 25% which is
less that -24st and then scrolling right (increase pitch).
The result may still be < -24st and playback reverses.

When changing max-speed, directly constrain speed.
2021-04-20 14:14:45 +02:00
2c8746eda9
Fix shuttle wheel semi-tone mode
Previously it was not possible to return from reverse playback
since left-scroll decreased pitch, even during reverse playback.

This also fixes an edge-case when quickly scrolling through
zero. use_shuttle_fract() ignores rapid events, map_transport_state()
can round speed to zero and next scroll-event set the default +1st
speed (really should have been 0st).This is solved by starting at
-24st, similar to how percentage does not start at 100%.
2021-04-20 13:53:35 +02:00
62f47e75c9 fix double semi-colon 2021-04-19 16:38:23 -06:00
180f333cd7 export needs to start transport, not just set speed 2021-04-19 16:14:09 -06:00
f94aec5a59 fix/improve BasicUI's methods for rewind/ffwd/play (used by various surfaces) 2021-04-19 16:14:09 -06:00
4b095aad62 additional debugging for TransportFSM events 2021-04-19 16:14:09 -06:00
48f3719661 correctly initialize transport FSM's last speed request 2021-04-19 16:14:09 -06:00