Commit Graph

38136 Commits

Author SHA1 Message Date
Ben Loftis 6716f64032 tone down selection-rect fill 2023-09-15 17:40:32 -05:00
Ben Loftis 98f926d6f5 'midi meter' is not an appropriate alias color for a widget 2023-09-15 17:32:29 -05:00
Robin Gareus cc0c00f807
Snap cursor for section_rect ctx menu, just like popup_ruler_menu 2023-09-15 14:49:33 +02:00
Ben Loftis 8da5d49e54
Add a checkbox for 'stretch markers' and show it when MouseGrid is active
Also, de-sensitize the checkbox if the session is AudioTime
2023-09-14 23:13:14 +02:00
Ben Loftis 8ba74e2a51
Add an argument to move markers during tempo-map 2023-09-14 23:13:11 +02:00
Ben Loftis b03f6d8616
Set the default ruler visibility based on the new session's time domain 2023-09-14 23:13:08 +02:00
Ben Loftis 4bed642d71
Allow user to choose the session time-domain 2023-09-14 23:13:05 +02:00
Ben Loftis d7345d7d4d
Remove marker 'Hide' item from context menu.
It is accessible in sidebar.
In the sidebar you can both Hide and Show, so less prone to error
2023-09-14 23:12:50 +02:00
Robin Gareus 214a2a962f
Fix grid off-by one, complete removal of Playhead grid
See also 503e6249f4
2023-09-14 20:42:04 +02:00
Paul Davis 09b919bb85 faderport (classic): fix a variety of SNAFUs since switch to MidiSurface (#9439) 2023-09-14 12:15:19 -06:00
John Emmas 56772b8156 Revert an unintended change from #eff61bde325b 2023-09-14 16:54:15 +01:00
Paul Davis 1cc0870725 tweak scroomer colors and alpha to work better with most themes
Blueberry Milk is a problem, but cooltehno will need to take a look
2023-09-14 08:22:06 -06:00
Paul Davis 73d559056e partial Route::set_state() calls with a MementoCommand should not reset processor state (#9434) 2023-09-14 07:49:13 -06:00
Paul Davis eff61bde32 JACK: accomodate MSVC in DEBUG_TRACE stmts involving pthread_self 2023-09-14 06:59:29 -06:00
Paul Davis f5d3b1c79f use new user-immediate API in GUI 2023-09-13 23:58:31 -06:00
Paul Davis d44c9787b6 MIDI tracks: split immediate events into ardour- and user-generated
This now allows the already-apparently possible recording of user-input from the kbd
in the MIDI track header to actually be successful
2023-09-13 23:58:31 -06:00
Paul Davis a2656d6612 when the "draw channel" is set to auto, consider the midnam display channel
This has higher priority than the playback mask
2023-09-13 23:58:31 -06:00
Robin Gareus 31f45a488a
Add menu items to set/cycle marker click behavior 2023-09-13 20:44:07 +02:00
Paul Davis 5644c8587e only show scroomer note names in draw/internal edit modes (if at all) 2023-09-13 11:53:18 -06:00
Paul Davis 2fa6500ec5 NOOP: fix indentation 2023-09-13 10:23:58 -06:00
Paul Davis 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
Paul Davis 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
Robin Gareus 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
Robin Gareus 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
Ben Loftis 94b7ed8d4c partially revert 218fb. TODO: menu actions need to operate on the clicked section 2023-09-12 08:40:07 -05:00
Robin Gareus 218fbda6e7
Arrangement Ruler: overhaul context menu, do not select on RMB 2023-09-12 05:39:02 +02:00
Paul Davis 4352f89ff0 align launchpad pro surface protocol name 2023-09-11 17:02:46 -06:00
Robin Gareus 0a316f7566
Remove GridTypePlayhead (fix -Wswitch) 2023-09-11 23:34:38 +02:00
Robin Gareus b00b80ec7e
Mixbus: cut/copy section always pastes at playhead 2023-09-11 23:18:52 +02:00
Robin Gareus 964600b9bd
Remove tempo-map cut/copy section warning 2023-09-11 23:18:52 +02:00
Paul Davis d064a2ead1 keep highlighted note in correct place when scrolling 2023-09-11 14:29:03 -06:00
Paul Davis 85375397ed fix semi-random MIDI note separator line vanishing 2023-09-11 14:04:59 -06:00
Paul Davis 4b15f94ccf add theme color names for scroomer 2023-09-11 13:56:22 -06:00
Paul Davis de45fc3882 make scroomer color & opacity themeable 2023-09-11 13:52:31 -06:00
Paul Davis d1caa2401f the return of double-click on scroomer zooms to data-based note range 2023-09-11 13:16:27 -06:00
Paul Davis e52d9a41da NO-OP: whitespace/indent 2023-09-11 13:16:27 -06:00
Paul Davis 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
Robin Gareus 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
Ben Loftis 885fd2caff Y is the shortcut key for MouseGrid 2023-09-11 13:22:37 -05:00
Ben Loftis 25daebbaf2 remove snap-to-grid option (subsumed by SnapTarget preference) 2023-09-11 12:18:16 -05:00
Ben Loftis 082c009e1b take Snap Target preference into account when snapping with grid enabled 2023-09-11 12:18:16 -05:00
Ben Loftis 7672ea9cfe add a ui_pref to store the users Snap Target preference 2023-09-11 12:18:16 -05:00
Ben Loftis 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
Paul Davis c7e5f38aa5 remove debug output 2023-09-11 10:26:54 -06:00
Paul Davis 28af3c2024 i like nullptr 2023-09-11 10:26:54 -06:00
Paul Davis fa78fe1f33 fix incorrect design of abort-tempo-map-edit operation 2023-09-11 10:26:54 -06:00
Paul Davis 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
Paul Davis 88b5613f46 suppress warning about memcpy() use on a struct/class 2023-09-11 10:26:54 -06:00
Paul Davis 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
Paul Davis eca4c83b7b temporal: remove concept of inactive tempos 2023-09-11 10:26:54 -06:00