13
0
Commit Graph

38116 Commits

Author SHA1 Message Date
3c857a78c6 JACK backend: serialize all jack server calls with a mutex
As was noted in 88ee3af3ea it is unsafe/undefined behavior if two threads
sleep on the JACK request file descriptor, since there is no way to control
which one will wake and process the request. Since each thread may have
sent a different request, this can lead to a thread misinterpreting the
response because it is reading the wrong response.

This may (or may not) solve some subtle problems with JACK, but was
revealed by having a control surface (LaunchPad Pro) that registers
three ports from the butler thread at about the same as the GUI
thread is registering the auditioner. One thread read the wrong
response, and because of some slightly weird code/design, it attempts
to rename the port from within the response handler, which in JACK1
leads to deadlock (and later, zombification).
2023-09-13 09:20:41 -06:00
88ee3af3ea JACK backend: add a mutex to serialize per-thread port register requests to server
Without this, two threads can both sleep on the same communication channel, and the wake order
is non-determinate, so the wrong thread may process the response to the other thread's request.
2023-09-12 22:41:26 -06:00
36f8d48e93
Add editing mode to select marker click behavior
So far this only adds actions, not a GUI dropdown or
context menu. See also f9a121ce9c
2023-09-13 03:16:24 +02:00
810da43be6
Safeguard stripable_list_to_control_list API
See also 976e03c15c which does this for `route_list_to_control_list`.
Fix crashes with empty route-lists e.g. momentary solo which was
introduced in 03105aa760.
2023-09-13 00:28:57 +02:00
94b7ed8d4c partially revert 218fb. TODO: menu actions need to operate on the clicked section 2023-09-12 08:40:07 -05:00
218fbda6e7
Arrangement Ruler: overhaul context menu, do not select on RMB 2023-09-12 05:39:02 +02:00
4352f89ff0 align launchpad pro surface protocol name 2023-09-11 17:02:46 -06:00
0a316f7566
Remove GridTypePlayhead (fix -Wswitch) 2023-09-11 23:34:38 +02:00
b00b80ec7e
Mixbus: cut/copy section always pastes at playhead 2023-09-11 23:18:52 +02:00
964600b9bd
Remove tempo-map cut/copy section warning 2023-09-11 23:18:52 +02:00
d064a2ead1 keep highlighted note in correct place when scrolling 2023-09-11 14:29:03 -06:00
85375397ed fix semi-random MIDI note separator line vanishing 2023-09-11 14:04:59 -06:00
4b15f94ccf add theme color names for scroomer 2023-09-11 13:56:22 -06:00
de45fc3882 make scroomer color & opacity themeable 2023-09-11 13:52:31 -06:00
d1caa2401f the return of double-click on scroomer zooms to data-based note range 2023-09-11 13:16:27 -06:00
e52d9a41da NO-OP: whitespace/indent 2023-09-11 13:16:27 -06:00
9194dc9843 fix for incorrect text appearing in MIDNAM model selector
I do not understand why this works, but all of this code related to MIDNAM
model names is just a total mess in terms of rational design (caused, in turn,
by MIDNAM's design, which might possibly reflect the real world).
2023-09-11 13:16:27 -06:00
c625e13a6f
Reduce clutter when loading session with loop range
```
  ARDOUR::TransportFSM::process_events()
  ARDOUR::TransportFSM::enqueue(ARDOUR::TransportFSM::Event*)
  ARDOUR::Session::process_event(ARDOUR::SessionEvent*)
  ARDOUR::SessionEventManager::merge_event(ARDOUR::SessionEvent*)
  ARDOUR::Session::queue_event(ARDOUR::SessionEvent*)
  ARDOUR::Session::request_locate(long, bool, ARDOUR::LocateTransportDisposition, ARDOUR::TransportRequestSource)
  ARDOUR::Session::auto_loop_changed(ARDOUR::Location*)
  ARDOUR::Session::set_auto_loop_location(ARDOUR::Location*)
[...]

```
2023-09-11 20:25:28 +02:00
885fd2caff Y is the shortcut key for MouseGrid 2023-09-11 13:22:37 -05:00
25daebbaf2 remove snap-to-grid option (subsumed by SnapTarget preference) 2023-09-11 12:18:16 -05:00
082c009e1b take Snap Target preference into account when snapping with grid enabled 2023-09-11 12:18:16 -05:00
7672ea9cfe add a ui_pref to store the users Snap Target preference 2023-09-11 12:18:16 -05:00
e99305c4dd add enumeration type for SnapTarget
this defines how the grid interacts with other snap targets (ph, etc)

* Grid: we ignore other snap targets when the grid is enabled
* Both: we snap to both grid and other snap-targets when grid is enabled
* Other: we only snap to other snap-targets and ignore the grid, even
    though the grid is enabled
2023-09-11 12:18:15 -05:00
c7e5f38aa5 remove debug output 2023-09-11 10:26:54 -06:00
28af3c2024 i like nullptr 2023-09-11 10:26:54 -06:00
fa78fe1f33 fix incorrect design of abort-tempo-map-edit operation 2023-09-11 10:26:54 -06:00
4eb58e104c remove double-macro'ed debug of undo history; use nullptr
Also, prefer early return to conditionalized function body
2023-09-11 10:26:54 -06:00
88b5613f46 suppress warning about memcpy() use on a struct/class 2023-09-11 10:26:54 -06:00
734a62101f remove use of Tempo::active() from GUI
This has not been accessible in the GUI since 7.0.
2023-09-11 10:26:54 -06:00
eca4c83b7b temporal: remove concept of inactive tempos 2023-09-11 10:26:54 -06:00
730bec5dc1
Reduce ASAN clutter when starting Ardour
This currently prints warnings for statically linked libs
here: zita-resampler global Resampler_table::_mutex
Both libardour and ALSA backend statically link against zita-resampler.
2023-09-11 17:16:37 +02:00
81939faa1a
UF8 surface is currently only for Mixbus 2023-09-11 17:13:22 +02:00
b98b984859
Update Codenames 2023-09-11 17:13:06 +02:00
09b368f5db fix visual update of tempo markers during tempo marker drag 2023-09-10 20:07:41 -06:00
3a19e7d48b fix redisplay of track headers after UI scale change
The suspend/resume routes code requires that there be a call to
Editor::redisplay_track_views() if anything is to happen on resume. This was
missing from the events triggered by a UI scale change.
2023-09-10 18:20:35 -06:00
848e0e0a10 fix manual errors during rebase against master 2023-09-10 18:20:35 -06:00
776d8590f9 fix crash when opening a session created before the midnam-channel GUI property existed 2023-09-10 18:20:35 -06:00
511c3ef048 remove debug output 2023-09-10 18:20:35 -06:00
907e5571b4 remove midi_scroomer.h from MSVC project file 2023-09-10 18:20:35 -06:00
194f0fbed6 finalize (?) some details of note name display options 2023-09-10 18:20:35 -06:00
df95ec6b43 partial response to note name display option 2023-09-10 18:20:35 -06:00
2f0bfedb58 include "Channel" in text for MIDNAM display channel selector 2023-09-10 18:20:35 -06:00
090b9d4f60 remove MIDI scroomer from code 2023-09-10 18:20:35 -06:00
605fd136e0 add preferances item for note name display 2023-09-10 18:20:35 -06:00
8f41576491 add enum declarations 2023-09-10 18:20:35 -06:00
71f168834d obey note name display preference 2023-09-10 18:20:35 -06:00
b81da94fa2 add UI config var for note name display 2023-09-10 18:20:35 -06:00
b4f684e02f missing enum convert 2023-09-10 18:20:35 -06:00
6966a2b7d8 add basic Editing enums/types for note name display options 2023-09-10 18:20:35 -06:00
5611e7eeed tweak gradient width in scroomer area 2023-09-10 18:20:35 -06:00