Commit graph

877 commits

Author SHA1 Message Date
Paul Davis
ff988eec37 fix one of 3 editing context refactoring warnings 2025-07-11 13:27:55 -06:00
Paul Davis
24343ba7f9 provide proxy APIs for MidiView "show_source" and use it in pianoroll 2025-07-04 12:22:55 -06:00
Paul Davis
5f9f754946 NO-OP: remove debug output 2025-06-24 18:04:37 -06:00
Paul Davis
28eaf90790 if in internal editing mouse mode, MidiRegionView is merely outlined, not filled, with selectionc olor 2025-06-13 17:20:09 -06:00
Paul Davis
7e75162840 allow MIDI note range (vertical) zoom to work with no selected notes if velocity-scroll is disabled 2025-04-29 10:50:16 -06:00
Paul Davis
d68472115f in MidiViews, primary-scroll is always left unhandled so that horizontal zoom works everywhere 2025-04-29 10:49:34 -06:00
Paul Davis
3cc3b867dc NO-OP: add a comment about requiring a region to be selected for MIDI scrolling 2025-04-29 10:47:51 -06:00
Paul Davis
8d7b4f7991 fixes so that cursor changes inside a MidiRegionView work as intended
They already worked in the PianorollMidiView, because that hands off enter/leave events
to the parent EditingContext (a Pianoroll). But MidiRegionView and Editor were
not interacting in the same way, so leaving a note object would not cause the Editor
to do the right thing with the cursor.
2025-04-25 11:28:45 -06:00
Paul Davis
a3213de634 NO-OP: remove double semicolon 2025-04-24 12:07:19 -06:00
Paul Davis
1f4ddcd53f fix inheritance design error in MidiRegionView/MidiView
trim_front_(starting|ending) must be in a class derived from RegionView,
which MidiView is not.

This ensures that Carl's original design for this (with these two methods
called at the start and end of a front-trim drag) is still operational, and we
do not end up with MIDI regions that have a negative start value.
2025-04-08 15:50:30 -06:00
Paul Davis
c509de6814 work on fixing/improving MIDI region/track scrolling behavior 2025-03-14 13:24:49 -06:00
Paul Davis
68ca768bc4 dbl-click on MIDI region shows combined properties/pianoroll editor 2025-02-08 12:22:48 -07:00
Robin Gareus
000c25edcc
Update gtkmm -> ytkmm header location (omnibus commit) 2025-02-01 15:25:14 +01:00
Paul Davis
ab39c26f68 a variety of changes to make timeline-region editing-in-pianoroll to start to work
This also removes the useless "new pianoroll window" menu option and action
2025-01-20 18:05:19 -07: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
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
98c9c03e9f remove all trace of cursor stacks; canvas cursor is always "just set" 2024-12-08 12:13:41 -07:00
Paul Davis
8064353a82 fix/remove on the current #warnings arising from the pianorule refactor 2024-11-23 09:06:38 -07:00
Paul Davis
61f1466f50 use virtual methods to get MidiRegionView to do ::set_model() correctly 2024-11-05 13:27:22 -07:00
Robin Gareus
74c4ca3e52
Reduce reliance on boost - the hard part
the rest from `tools/convert_boost.sh`.

* replace boost::function, boost::bind with std::function and std::bind.

This required some manual fixes, notably std::placeholders,
some static_casts<>, and boost::function::clear -> = {}.
2024-10-19 03:47:21 +02:00
Paul Davis
b8fb779fa7 allow dragging in MIDI automation line in cue editor
Note: once this is cleaned up and checked with respect to snap and more,
the same should be done for MidiRegionView
2024-10-17 07:44:32 -06:00
Paul Davis
54fdf90cc2 lots of detailed fixes to get lollipops in tracks working again, post re-factor 2024-10-17 07:44:31 -06:00
Paul Davis
7899829a5e note range for midi * views API cleanup 2024-10-17 07:44:30 -06:00
Paul Davis
9dbdf0eb43 share code between MidiRegioNView and MidiView 2024-10-17 07:44:29 -06:00
Paul Davis
10b48d2cc4 lock in some major steps for the midi cue/pianoroll editor 2024-10-17 07:44:29 -06:00
Paul Davis
549defc068 more work on fixing pianorule recomposition of objects 2024-10-17 07:44:29 -06:00
Paul Davis
3700f191cd fix some region-view level selection issues 2024-10-17 07:44:29 -06:00
Paul Davis
a8895e50c7 Fix behavior of midi region when height changes
MidiView cares about the previous height, so call that first, before
RegionView::set_height() sets the member that controls height()
2024-10-17 07:44:29 -06:00
Paul Davis
5a55f04b16 fix group used as parent for a Midi(Region)View
this fixed the nesting of the _note_group and thus notes are drawn
in the correct place.
2024-10-17 07:44:29 -06:00
Paul Davis
33298a0ba0 get region-create drags working and no crashes (nut also no note) for note-drags 2024-10-17 07:44:29 -06:00
Paul Davis
27e9e19aac initial refactoring of MidiRegionView IS-A MidiView 2024-10-17 07:44:29 -06:00
Paul Davis
e3be2c781f constification of EditingContext/{Public}Editor time+snap methods 2024-10-17 07:44:29 -06:00
Paul Davis
9e5211e9b1 move 2 relative time methods from RegionView to EditingContext 2024-10-17 07:44:29 -06:00
Paul Davis
9d7a87083a removed unused MidiRegionView argument from SysEx (visual) constructor 2024-10-17 07:44:29 -06:00
Paul Davis
204d4237f8 further steps towards MidiRegionView outside the Editor 2024-10-17 07:44:29 -06:00
Paul Davis
3341184f8c clean up minor mess after manual rebasing 2024-10-17 07:44:29 -06:00
Paul Davis
dee8e920e6 editing refactoring, the drag part 2024-10-17 07:44:29 -06:00
Paul Davis
089a9521d5 steps to an ecology of editing 2024-10-17 07:44:29 -06:00
Robin Gareus
4fa4fdf498
Remove patch change GUI Flag when MIDI model changes
Previously patch changes were only removed when the
removal was initiated by the GUI.
2024-09-09 00:16:33 +02:00
Robin Gareus
3766b22e06
Add GUI support to remove SysEx Events 2024-09-08 23:59:56 +02:00
Robin Gareus
f693c0406a
When drawing a note, only play it once
Previously two identical Note on events were sent:
 * Select newly created note -> note-on event
 * Play newly created note -> note-on event
2024-05-20 19:42:29 +02:00
Robin Gareus
5d175786e8
Remove debug messages, cleanup output (1/2) 2024-05-08 00:56:43 +02:00
Robin Gareus
4b6e372ce7
Fix deleting the same point multiple times (#9689)
When iterating over automation tracks, previously it was
possible that the same point was added multiple times to
the selection.
2024-04-15 00:39:20 +02: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
Paul Davis
b92b2389fd make note-tupling work on multiple notes 2023-11-22 19:37:46 -07:00
Paul Davis
c3d14b1169 basic note-tupling functionality implemented 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