Commit Graph

16988 Commits

Author SHA1 Message Date
Robin Gareus
1434c624ff Fix ffmpeg-5+ encoding drop-frame framerates 2023-12-13 17:41:44 +01:00
Robin Gareus
e7cc096d19 Fix location list order (amend 7ee5a3f24) 2023-12-11 15:54:30 +01:00
Robin Gareus
fa0d1d98f9 Update Section list (once) in the background
This can accumulate multiple signal emissions into a
single idle update.
2023-12-10 04:10:01 +01:00
Robin Gareus
bdfee53d1f Fix signal emission for Locations::ripple (2/2) 2023-12-10 04:08:55 +01:00
Robin Gareus
fe3827b1d8 Fix crash when session range is created (bug introduced in 7ee5a3f) 2023-12-10 01:48:13 +01:00
Paul Davis
f407d4e3b7 ensure that MidiStreamView calls a color handler for each region
This allows MIDI regions to auto-update during theme editing
2023-12-09 14:07:58 -07:00
Robin Gareus
7ee5a3f24d Keep location lists ordered by start-time 2023-12-09 02:26:49 +01:00
Robin Gareus
1da5c7f389 Fix ordering of locations
There are two lists, one for ranges, and one for
everything else.
2023-12-09 01:43:40 +01:00
Robin Gareus
62f20d126f Another speedup when multiple locations change
This is mainly relevant for redo, and ripple
when all multiple locations are changed and static signals
are emitted by each Location.
2023-12-08 23:03:38 +01:00
Robin Gareus
857d8096a9 Revert "Keep Location List ordered by start-time"
This reverts commit 67f6363dcd.

This VERY slow when there are many locations in the session
e.g. with #9568 it can take seconds.
2023-12-08 22:14:04 +01:00
Robin Gareus
67f6363dcd Keep Location List ordered by start-time
Now that Location signal(s) are only emitted when the
drag ended, the list can be kept in sync.

This also adds a further optimization to only update the
list once, even when multiple locations have been changed.
2023-12-08 22:03:22 +01:00
Robin Gareus
067a124fd1 Suspend signal emission of Locations during Drag
This significantly speeds up Location Drag/motion
2023-12-08 21:48:23 +01:00
Robin Gareus
7b1997ffda Speed up Location changes #9568
Section Markers only need to be updated when an actual
section-marker is modified OR flags change.

This also removes duplicate signal subscriptions and
caches sorted Location list when iterating over section markers.
2023-12-08 17:22:32 +01:00
Robin Gareus
87181710b2 Drop UI shared_ptr references to Transport Masters
This allows ARDOUR::cleanup to unregister ports before
destroying the Audio Engine. This fixes a crash at exist
with JACK since 0786be8.
2023-12-05 04:37:39 +01:00
Robin Gareus
8576db5642 Fix buffer-overflow in power range spectral analysis (#9560) 2023-11-30 19:43:27 +01:00
Robin Gareus
de7d0a986b Foldback: fix memory leak 2023-11-29 02:20:09 +01:00
jujudusud
5138d174cb French translations 2023-11-28 01:07:08 +01:00
Robin Gareus
e3128e932c Compile and install libAAF 2023-11-27 23:25:04 +01:00
Robin Gareus
3355e753bf Keep track of LV2 externalUI visibility
This allows Ardour to re-open previously shown plugins,
and toggle externalUI.

This worked in the distant past, before Ardour 3.3 introduced
the Ardour Window Manager.
2023-11-26 20:07:00 +01:00
Robin Gareus
04be971238 Properly stop message emission when closing external UI 2023-11-26 20:06:07 +01:00
Nils Philippsen
e995daa375 Fix failure to build with libxml2 version 2.12
This declared some xmlError pointers const, which probably was always
assumed, but not made explicit.

Signed-off-by: Nils Philippsen <nils@tiptoe.de>
2023-11-25 00:30:04 +01:00
Paul Davis
253dcb312b make note joining code a bit cleaner and preserve note velocities 2023-11-24 09:29:31 -07:00
Paul Davis
d6beba67dc note joining should occur per-channel 2023-11-24 08:32:28 -07:00
Paul Davis
f95e94bc29 note tupling tweaks, and note join added
bindings moved to s/S and j, no need to use split-by-grid first

split-by-grid still needs work for non-grid aligned notes
2023-11-23 22:42:04 -07:00
Robin Gareus
438bd7a720 Import Dialog: clean up MIDI information 2023-11-23 18:35:56 +01:00
Paul Davis
b92b2389fd make note-tupling work on multiple notes 2023-11-22 19:37:46 -07:00
Paul Davis
fb930e8f47 add invalidator() calls to MixerStrip as it connects to ParameterChanged
when the surround bus is removed, it (probably erroneously) causes
changes to the I/O routing for the auditioner, which will be
delivered to anyone who cares via an RCConfiguration ParameterChanged
signal. This will be emitted from a non-GUI thread, and so will not
be handled synchronously. The GUI thread will first handle the notification
that the surround bus was deleted, and that will include deleting the
MixerStrip for the surround bus. But another call_slot() request will
be pending to notify the now-deleted MixerStrip about the auditioner change.

Adding invalidator() calls ensures that the deletion of the MixerStrip removes
all of these pending call_slot() requests.
2023-11-22 17:24:26 -07:00
Paul Davis
c3d14b1169 basic note-tupling functionality implemented 2023-11-21 17:07:42 -07:00
Paul Davis
7f779bb934 define new MIDI note splitting actions 2023-11-21 17:07:42 -07:00
Paul Davis
3792bf86e4 MidiRegionView: stubs for new methods 2023-11-21 17:07:42 -07:00
Paul Davis
0f170ec87b MidiRegionView: initialize new members 2023-11-21 17:07:42 -07:00
Paul Davis
e39709863a add new state and methods to MidiRegionView for note splitting 2023-11-21 17:07:42 -07:00
Robin Gareus
71e049202c Fix crash when clicking on region boundary box to start Drag
The box outlines a given region, the grab position may be earlier
than the region's position.

Previously this caused a crash (uncaught exception):

```gdb
__cxa_throw () at /lib/x86_64-linux-gnu/libstdc++.so.6
Temporal::timecnt_t::timecnt_t(Temporal::timecnt_t const&, Temporal::timepos_t const&) at ../libs/temporal/timeline.cc:79
RegionMoveDrag::setup_pointer_offset() at ../gtk2_ardour/editor_drag.cc:2226
```
2023-11-21 20:17:20 +01:00
Paul Davis
4647dd6b41 fix crash when freezing a track with > 1 region (#9539)
deleting regionviews changed the region selection, but the regionview
ptr had not been removed from the RegionViewList. The selection change signal
caused an iteration over the list, and manipulated the deleted regionview.
2023-11-20 19:13:22 -07:00
Mate Pušić
e010cf91b9 Fixed a typo 2023-11-20 20:04:27 +01:00
Robin Gareus
bea9215a0e Remove noop include (deprecated, unused gtk header) 2023-11-19 20:28:48 +01:00
Paul Davis
da175cc2e8 temporal: remove TempoMap::insert_time() and use shift() instead
The former was incorrectly implemented, and the latter has already been tested more
in real life.

We should likely remove ::remove_time also and use shift() there too, but that
requires testing negative shifts more broadly.
2023-11-19 12:14:10 -07:00
Paul Davis
b76c3b11d9 when importing SMF tempo map, use copy&paste to keep position 2023-11-17 10:02:34 -07:00
Paul Davis
e0d9970056 remove mistakenly retained stacktrace() call 2023-11-14 19:47:17 -07:00
Paul Davis
7762fa47ea make an attempt to show note length with verbose cursor
Likely much more intelligent string formatting is needed to make this
actually useful to most people
2023-11-14 11:05:13 -07:00
Paul Davis
f5af821aba startup: in the usual weird logic, mark startupFSM complete from startup_done()
this disconnects the startupFSM from signals it should no longer
handle, even if its existence continues as a leak (noted
elsewhere in the code).
2023-11-14 11:03:09 -07:00
Paul Davis
729eb60de3 startupFSM: move definition of ::set_complete into source file
and also disconnect from Keyboard signal when called.
2023-11-14 11:02:08 -07:00
Paul Davis
8e583f4c4c startup FSM: save connection to Keyboard::HideMightMeanQuit signal 2023-11-14 11:01:39 -07:00
Robin Gareus
7be61b0909 Fix typo in 69c7db8595 2023-11-13 22:19:03 +01:00
Robin Gareus
69c7db8595 Add Mute button to recorder view 2023-11-13 00:08:38 +01:00
Paul Davis
adb508b189 no-strobe behavior for varispeed blink 2023-11-11 10:11:30 -07:00
Paul Davis
a5ac6e097e switch no-strobe from cmdline to UI config preference 2023-11-10 15:50:44 -07:00
Paul Davis
cc5bd6c63a provide a (visible) UI preferences option for no-strobe 2023-11-10 14:33:39 -07:00
Paul Davis
863ad01a90 no strobe for rec-enable buttons (all of them) 2023-11-10 11:18:17 -07:00
Paul Davis
1b35d5824b remove non-existent method decl 2023-11-10 11:17:53 -07:00