4c5c7769bb
canvas: skip intermediate Canvas::Rect object (trivial optimization)
2023-09-15 17:34:30 -06:00
55b862832a
Stretch Markers -> Adjust Markers
2023-09-15 18:05:14 -05:00
12f02a685e
tweak section-marker height so they fill the whole ruler
2023-09-15 18:04:59 -05:00
e49005d0e4
implement color themes for piano roll keyboard and text
2023-09-15 17:41:24 -05:00
53ccede4fb
make piano-keyboard colors theme-able
2023-09-15 17:40:56 -05:00
6716f64032
tone down selection-rect fill
2023-09-15 17:40:32 -05:00
98f926d6f5
'midi meter' is not an appropriate alias color for a widget
2023-09-15 17:32:29 -05:00
cc0c00f807
Snap cursor for section_rect ctx menu, just like popup_ruler_menu
2023-09-15 14:49:33 +02:00
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
8ba74e2a51
Add an argument to move markers during tempo-map
2023-09-14 23:13:11 +02:00
b03f6d8616
Set the default ruler visibility based on the new session's time domain
2023-09-14 23:13:08 +02:00
4bed642d71
Allow user to choose the session time-domain
2023-09-14 23:13:05 +02:00
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
214a2a962f
Fix grid off-by one, complete removal of Playhead grid
...
See also 503e6249f4
2023-09-14 20:42:04 +02:00
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
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
73d559056e
partial Route::set_state() calls with a MementoCommand should not reset processor state ( #9434 )
2023-09-14 07:49:13 -06:00
eff61bde32
JACK: accomodate MSVC in DEBUG_TRACE stmts involving pthread_self
2023-09-14 06:59:29 -06:00
f5d3b1c79f
use new user-immediate API in GUI
2023-09-13 23:58:31 -06:00
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
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
31f45a488a
Add menu items to set/cycle marker click behavior
2023-09-13 20:44:07 +02:00
5644c8587e
only show scroomer note names in draw/internal edit modes (if at all)
2023-09-13 11:53:18 -06:00
2fa6500ec5
NOOP: fix indentation
2023-09-13 10:23:58 -06:00
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