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
c98fc2477a
add a new canvas item for cue start/end dragging
2024-12-27 13:44:56 -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
Paul Davis
9243dcf961
draw clip rect correctly after it is reset\n
2024-11-25 18:30:01 -07:00
Paul Davis
465f39e5bf
create nonfunctional clip boundary drags when appropriate
2024-11-23 09:06:38 -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
d5cc1b5efc
initial steps to trigger start/end point display and editing
2024-11-22 09:33:38 -07:00
Paul Davis
48ed5be776
skeleton for clip start/end editing
2024-11-12 18:54:41 -07:00
Paul Davis
a1dd7ae4c3
remove unused member variable
...
this was a solution to a problem eventually solved a different way
2024-11-11 22:06:05 -07:00
Paul Davis
61f1466f50
use virtual methods to get MidiRegionView to do ::set_model() correctly
2024-11-05 13:27:22 -07:00
Paul Davis
8986768731
fix invisble notes in MidiRegionView after transport stopped-recording
...
MidiCueView needs an _active_notes array setup when it is assigned a track that is
already rec-enabled, because we can start clip recording without session record-enable
being active.
MidiRegionView does not need this; it uses session rec-enable status to create or delete
_active_notes (also transport stop, sometimes)
2024-10-31 12:22:35 -06:00
Paul Davis
c7192b4cc0
add the concept of a length that is data-independent to MIDI files (GUI)
2024-10-31 12:22:35 -06:00
Robin Gareus
ff95d81612
Reduce reliance on boost - the easy part
...
* boost::unordered_map -> std::unordered_map
* BOOST_STATIC_ASSERT/static_assert
* BOOST_FOREACH -> for
* boost::tuple -> std::tuple/g
* boost::math::isnormal -> std::isnormal
* boost::container::set -> std::set
* boost::none -> std::nullopt
* boost::optional -> std::optional
2024-10-19 03:41:16 +02:00
Paul Davis
c2094085e3
sort of get MIDI notes to extend during clip recording
...
Also, robustify MidiView against a missing MidiModel member variable
2024-10-17 07:44:33 -06:00
Paul Davis
d7e85de7c2
first somewhat version of show-clip-capture MIDI notes as they arrive
2024-10-17 07:44:33 -06:00
Paul Davis
bd0b5495c6
robustify MidiView so that it can be created without a MidiTrack
2024-10-17 07:44:33 -06:00
Paul Davis
35f16f1bb6
preparations for clip data display (MIDI) while recording (GUI edition)
2024-10-17 07:44:33 -06: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
ca1583cdad
the great onceification (gui)
...
Replace use of #ifndef header guards with #pragma once
Modern C++, baby!
2024-10-17 07:44:31 -06:00
Paul Davis
56ce9c33c0
renaming: AutomationLineBase => AutomationLine, AutomationLine => EditorAutomationLine
2024-10-17 07:44:31 -06:00
Paul Davis
fa993ec9f4
various fixes to get lollipops to display (cue editor only so far)
2024-10-17 07:44:31 -06:00
Paul Davis
96e074d78c
refactor velocity display so that it can be used in the editor and elsewhere
2024-10-17 07:44:31 -06:00
Paul Davis
f80395fc2f
use MidiModel::ContentsChanged to drive MIDI cue edit swaps (GUI version)
...
No need for a special method called post-edit
2024-10-17 07:44:31 -06:00
Paul Davis
fcfa4fecb4
more preparation for MIDI cue editing to propagate to the slot (trigger)
2024-10-17 07:44:30 -06:00
Paul Davis
044aec6563
basics of MIDI clip editing notification via model swap
2024-10-17 07:44:30 -06:00
Paul Davis
30a7f44c12
fix geometry calculations during NoteCreateDrags.
...
This also only uses the draw length parameter if no motion
occured during the NoteCreateDrag. Otherwise it uses the length that was
dragged (which is subjected to a threshold).
2024-10-17 07:44:30 -06:00
Paul Davis
36d0a6e908
fix dangling references to a MidiRegion and MidiTrack in a MidiView
2024-10-17 07:44:30 -06:00
Paul Davis
d356cacb2a
working and accessible canvas cursor setting
2024-10-17 07:44:30 -06:00
Paul Davis
7899829a5e
note range for midi * views API cleanup
2024-10-17 07:44:30 -06:00
Paul Davis
9d8ddd814c
expose ::set_note_range() as public in MidiView
2024-10-17 07:44:30 -06:00
Paul Davis
f7b6a3cac8
tentative beginnings for a canvas piano roll header
2024-10-17 07:44:30 -06:00
Paul Davis
0311bffed8
progrss with rubber band selection and event handling in MIDI cue editor
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
182a24751b
get standalone MidiView to display notes
...
This also removes an unused TriggerBoxWidget from each regular
MixerStrip.
2024-10-17 07:44:29 -06:00
Paul Davis
69d929b9d2
no more slice.h
2024-10-17 07:44:29 -06:00
Paul Davis
c39558471f
remove current slice usage/members
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
a550b6482f
start using the now-compilable MidiView
...
Nothing yet derives from this, but MIDI display items and drags
do use it.
2024-10-17 07:44:29 -06:00
Paul Davis
e67e6aa363
no-compilable steps towards MidiView
2024-10-17 07:44:29 -06:00