Commit graph

40157 commits

Author SHA1 Message Date
Nil Geisweiller
34fe8c46e9
Make Stripable::Sorter::_mixer_order const
This is not required by C++17, but it is rather clear that this field should
not be changed after initialization.
2024-12-29 19:45:55 +01:00
Nil Geisweiller
5ac2e6b8a8
Make Stripable::Sorter::operator() const
as required by C++17
2024-12-29 19:45:52 +01:00
Paul Davis
4e80b8c9c7 set zoom focus selector tooltip in the right class 2024-12-29 11:30:06 -07:00
Paul Davis
0a40b50b86 refactor zoom focus handling so that all EditingContexts can use the same code 2024-12-29 11:24:16 -07:00
Paul Davis
9b22e16bec NO-OP: add lifetime comment 2024-12-29 11:24:16 -07:00
Paul Davis
5157234f2f auto-fication of a loop 2024-12-29 11:24:16 -07:00
Paul Davis
41814519ab auto-fication of a loop 2024-12-29 11:24:16 -07:00
Paul Davis
5a97ce4a0c NO-OP: fix brace indentation 2024-12-29 11:24:16 -07:00
Paul Davis
730cf01ff9 use nullptr instead of NULL 2024-12-29 11:24:16 -07:00
Paul Davis
478d688aac use nullptr instead of NULL 2024-12-29 11:24:16 -07:00
Paul Davis
3248fb8b59 remove unusued variables 2024-12-29 11:24:16 -07:00
Paul Davis
e36b1211b6 fix drawn length of notes in MIDI cue editor 2024-12-29 11:24:16 -07:00
Robin Gareus
6e2d34df2d
Fix MIDI Clock generator (rounding issues)
This broke in f67029bd0 and notably bcc1aeeb86.

next_tick needs to accommodate for sub-sample accuracy when
PPQN are not integer samples. e.g. 110 bpm @ 48kHz

PS. Instead of `double` we could use superclock next_tick, and
`one_ppqn_in_superclocks` respectively. This would provide us
with 62 bit significand (instead of 52 bit using double).

Yet for the case of MIDI clock, this will have no real world
effect.
2024-12-29 16:05:31 +01:00
Paul Davis
c98a36be0f switch mouse button and motion handling in MidiView to use Drag formalization
It appears that mouse handling in MidiRegionView (now moved into MidiView)
predated the full Drag formalization. This led to inconsistencies as parts of the Drag
formalization were adopted, including the use of motion events to start a drag (this
is incorrect in the current semantics of a Drag).

This commits removes all/most of the special purpose drag handling machinery in MidiView
and uses Drags instead
2024-12-27 14:13:02 -07:00
Paul Davis
28e9c3908e select useful cursors for clip end/start handles and "background" in MidiCueEditor 2024-12-27 14:10:57 -07:00
Paul Davis
dbcf4c14f4 fix mechanism used for moving/dragging clip end handles 2024-12-27 14:10:00 -07:00
Paul Davis
84c78db3ad remove unused variables 2024-12-27 14:09:27 -07:00
Paul Davis
76fa75cf9a add a check on the event type passed to start Drags
Drags should always be started by a button press event.
2024-12-27 14:09:11 -07:00
Paul Davis
25b830b032 fix event handling/routing from MidiView up to EditingContext
in particular, rename MidiView::canvas_group_event() to
avoid confusion with TimeAxisViewItem::canvas_group_event()
since a MidiRegionView inherits from both these classes.
2024-12-27 14:00:55 -07:00
Paul Davis
c98fc2477a add a new canvas item for cue start/end dragging 2024-12-27 13:44:56 -07:00
Paul Davis
07046510d9 add new editing context item types to enums list 2024-12-27 13:18:05 -07:00
Paul Davis
24a1fd9dbe NO-OP: whitespace 2024-12-26 09:28:06 -07:00
Paul Davis
084a23a80d some work on being able to swap channels and have different MIDI automation displayed in pianoroll 2024-12-20 11:48:40 -07:00
Paul Davis
5248e81f9d start using visible channel in MIDI cue editor 2024-12-20 10:44:35 -07:00
Paul Davis
8486c5ba98 kind-of-sort-of get MIDI automation editing working in cue editor/pianoroll
Still lots of details required here but the basic idea of displaying multiple lines and only
editing one is now operational
2024-12-20 10:08:20 -07:00
Paul Davis
228a4931e1 NO-OP: obey code formatting rules and conventions 2024-12-20 10:06:57 -07:00
Paul Davis
5f943295fc copying a tempo map should not bail out just because there is only 1 tempo & meter 2024-12-18 16:46:07 -07:00
Robin Gareus
daa6808a30
Scale Metronome icon to match other transport icon height 2024-12-18 21:56:13 +01:00
Robin Gareus
561f0579f0
Round to bars when mouse scroll/dragging BBT bars 2024-12-18 20:23:55 +01:00
Robin Gareus
d34213d7f3
Prelight Audio Clock 2024-12-18 15:29:02 +01:00
Robin Gareus
f7d2c0b33e
ToggleMixerProps are Mixbus only (fix "missing action") 2024-12-17 16:51:25 +01:00
Robin Gareus
cbe838ce26
Fix crash when dragging plugins from sidebar 2024-12-17 15:50:03 +01:00
Robin Gareus
72aebf0308
Tweak mixer-icon's fader-caps 2024-12-17 15:47:54 +01:00
Robin Gareus
17cd211d06
Allow to configure number of mixer scene buttons
For Mixbus increase mixer-scene buttons to 12 (same as Function buttons)
2024-12-16 23:28:00 +01:00
Robin Gareus
42b32fbd7c
Also change automation time-domain to match default (cde26c5205) 2024-12-16 19:51:24 +01:00
Robin Gareus
8c2a907bdc
Increase number of ASAN backtrace frames 2024-12-15 16:32:18 +01:00
Robin Gareus
91d91eac0d
Fix export encoder race condition
The CmdPipeWriter::Terminated signal is used to trigger the FileWritten
callback, which invokes ExportGraphBuilder::Encoder::copy_files

Encoder::filenames must not be destroyed before the callback
arrives. This is now guaranteed by the Encoder d'tor waiting
for for the encode process to terminate.
2024-12-15 16:31:43 +01:00
Robin Gareus
bae7c52f01
The return of the tape-reel icon
This was removed with destructive record mode
a4d7b45fe0

This new version is no longer red by default, and
also works with light theme
2024-12-14 16:39:06 +01:00
Paul Davis
4c34f3cd29 provide rudimentary button control over percussive/sustained drawing in clip editor
Note that the note length selector can always be used to change the length of a note added
via a click
2024-12-13 21:48:18 -07:00
Paul Davis
0ff0d4df8b get mouse-centered zoom working in cue editor 2024-12-12 11:53:15 -07:00
Paul Davis
953091bdd2 add *all* cursors to the cursors container of MouseCursors 2024-12-12 11:53:15 -07:00
Paul Davis
d9160e5d1a fix use-after-free error caused by not clear MouseCursors::cursors when we recreate them 2024-12-12 11:53:15 -07:00
Paul Davis
fb4fefe573 fix some issues with zoom focus after refactoring it into EditingContext 2024-12-12 11:53:15 -07:00
Paul Davis
050828cc10 cue editor: note that we're in the canvas when we enter it, etc. 2024-12-12 11:53:15 -07:00
Paul Davis
38f5546327 actually implement ::reposition_and_zoom() for midi cue editor 2024-12-12 11:53:15 -07:00
Paul Davis
9ad24161c1 add canvas debugging item names 2024-12-12 11:53:15 -07:00
Paul Davis
d5dc2779cc no need for MidiCueEditor to have its own ::temporal_zoom_step() method 2024-12-12 11:53:15 -07:00
Paul Davis
0e170b6457 C++, please 2024-12-12 11:53:15 -07:00
Paul Davis
c24b889717 for now, midi cue view uses mouse for zoom focus 2024-12-12 11:53:15 -07:00
Paul Davis
755aeb74b0 midi cue view can use midi view's canvas event method directly 2024-12-12 11:53:15 -07:00