Commit Graph

38574 Commits

Author SHA1 Message Date
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 0786be859d
Retain TransportMaster Ports across sessions
Unloading a session should only remove session-ports.
This fixes Timecode master sync when switching snapshots
or sessions.
2023-12-03 20:38:31 +01:00
Robin Gareus 4194313e4b
Make Timecode master connection order independent
When a user first connected a port to the Timecode master
input and then disconnected a previous port, the Timecode
master assumed it was not connected.
2023-12-02 23:42:27 +01:00
Robin Gareus dacf488c86
Fix callback order of port-dis/connections
Previously the port-engine was a LIFO. Changes were pushed back
and then popped-back. This causes issues when re-connecting
Transport Masters.

The GUI does the following when changing connections:
1. disconnect all
2. connect to new port

which lead to TransportMaster::connection_handler being called
in reverse order: connect, disconnect, and the transport
master was assumed to not be connected.

--

Now connections queue is a FIFO and code was consolidated.

(Note, we cannot use a std::deque because it does not support
memory pre-allocation with ::reserve)
2023-12-02 23:34:58 +01:00
Robin Gareus 1386b3b73f
Revert s/frame/sample/ for LTC frame 2023-12-02 22:45:33 +01:00
Robin Gareus 8576db5642
Fix buffer-overflow in power range spectral analysis (#9560) 2023-11-30 19:43:27 +01:00
Robin Gareus b376f271c4
AAF import tool: fix windows builds 2023-11-29 05:42:31 +01:00
Robin Gareus de7d0a986b
Foldback: fix memory leak 2023-11-29 02:20:09 +01:00
Robin Gareus 55093b2095
AAF import tool use Ardour style logging, fixes windows builds 2023-11-28 17:38:27 +01:00
Robin Gareus a8c26dbfa4
Fix localtime_r check (#9554) 2023-11-28 17:05:03 +01:00
jujudusud 5138d174cb French translations 2023-11-28 01:07:08 +01:00
Robin Gareus 1306a698a7
Sanitize MIDI track names, remove unprintable chars #9553 2023-11-28 00:29:19 +01:00
Robin Gareus 02d91a7ff0
Import aaf-session CLI
https://github.com/Ardour/ardour/pull/805
https://github.com/agfline/ardour_aaf_support/tree/aaf
2023-11-27 23:25:19 +01:00
Robin Gareus e3128e932c
Compile and install libAAF 2023-11-27 23:25:04 +01:00
Robin Gareus 7593551e49
Import libAAF into Ardour's source-tree
tools/update_libaaf.sh - libaaf v0.1-85-g3e4c2cd
2023-11-27 23:24:54 +01:00
Robin Gareus 47e437c2aa
Bootstrap libAAF support 2023-11-27 23:18:22 +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 73b44532f1
Allow to override visibility tracker
This is in preparation to keep track of external UI plugin UIs
2023-11-26 20:06:35 +01:00
Robin Gareus 04be971238
Properly stop message emission when closing external UI 2023-11-26 20:06:07 +01:00
Robin Gareus 282be3d459
Nobody cares about GLIB_2_64 anymore 2023-11-25 13:08:12 +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 f01f4eeded MIDI state tracking doesn't care about size 2023-11-20 21:40:12 -07:00
Paul Davis cb91334cc6 basic work to permit "MIDI catchup" for MIDI state at any point on the timeline
This currently does nothing and cannot be enabled
2023-11-20 21:32:49 -07: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
Albert Graef 8c38d8fbbc
raptor_arp: Fix looper bug reported in the Ardour forum by Schmitty2005. 2023-11-20 14:03:56 +01:00
Albert Graef 520ed0390e
Enable regular_block_length in all arpeggiators, to hopefully work around audio driver issues on Windows. 2023-11-20 14:03:19 +01:00
Robin Gareus bea9215a0e
Remove noop include (deprecated, unused gtk header) 2023-11-19 20:28:48 +01:00
Robin Gareus 4d7c4bf183
Clearlooks: GtkCList is deprecated and not used by Ardour 2023-11-19 20:28:44 +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
Nils Philippsen a33514e270 Make option to disable VST3 support consistent
Previously, the option was called "--vst3", yet disabled building
support for VST3 plugins (as described in the help string).

Signed-off-by: Nils Philippsen <nils@tiptoe.de>
2023-11-17 22:23:58 +01: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
Paul Davis 5723c9bf9c temporal: slightly more debug info when computing quarters from superclock 2023-11-13 22:32:15 -07:00