Commit Graph

657 Commits

Author SHA1 Message Date
Robin Gareus 96c45b65ee
Remove more or less useless Mouse Audition Button
Audition action is very much preferred and also works with
multiple selection.
2023-10-05 21:49:55 +02:00
Paul Davis 2194ae70da must reset BBT markers in GUI after reset_tempo_marks()
reset_tempo_marks() will have destroyed the tempo marks referenced by any
existing BBT marks
2023-10-03 10:16:36 -06:00
Paul Davis 764ed125a4 region gain line freehand draw: ensure drawn line is above waveform 2023-10-02 12:04:57 -06:00
Paul Davis 18819a48a9 region gain and MIDI CC freehand line drawing
This involved a significant change in event handling for automation region views,
but it brings it into line with how it works for other things. On button press
we initiate a drag, then if no motion occurs, the Drag returns false during
finalization, and only then do we continue through Editor::button_release_handler()
to eventually end up in ::add_automation_event().

Although it is a substantial change, the fact that it now works the same
way for audio regions, automation regions and automation tracks seems
like a definite plus.
2023-09-30 11:09:58 -06:00
Paul Davis 944fcf251d initial refactoring of freehand line drawing
This sets the state to use it with MIDI CC and region gain.

class names LineMerger and MergeableLine need revisiting
2023-09-30 11:09:58 -06:00
Robin Gareus 201b9574a2
In Draw mode, do not allow to grab lines.
see also 3cf1227421 and c578695a64
2023-09-26 17:03:09 +02:00
Robin Gareus 3cf1227421
Revert "in draw mode, mouse drags in automation tracks are always freehand drawing"
This reverts commit c578695a64.

When hovering over a control point there is still the "Fader"
cursor shown. It is also handy to be able to directly modify
a control-point right after adding it.

A freehand draw operation can be still be initiated above,
below, or left/right of a given control point.
2023-09-26 01:10:16 +02:00
Paul Davis 318af69057 do not grab magic widget focus for MIDI editing purposes
The bindings use will all work just fine without this focus grab; the focus
grab in turn confuses the use of some/all global bindings (such as the spacebar
to toggle tranport state)
2023-09-24 15:01:04 -06:00
Robin Gareus 0a1ab716a1
Try to track down abort() reported by Nathan
This should have had a `fatal` message like other
all abort() calls.
2023-09-21 20:49:36 +02:00
Ben Loftis 376246f0fc markers should snap when created by context-menu 2023-09-15 19:05:23 -05: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
Paul Davis 5644c8587e only show scroomer note names in draw/internal edit modes (if at all) 2023-09-13 11:53:18 -06:00
Robin Gareus d57676b9c7
Maybe clear time-selection when switching to draw tool 2023-09-08 14:50:43 +02:00
Robin Gareus 019a3a1976
Allow to select Arrangement sections
This also adds interaction with sections in the
Arrangement Ruler.

Note that selecting a range switches to the Range tool.
This is enforced because time-range selection is only meaningful
with tools that perform edit operations on the whole timeline.
2023-09-08 03:25:59 +02:00
Ben Loftis 3f14b27ee3 remove (unimplemnted) Stretch MIDI checkbox 2023-09-07 15:18:36 -05:00
Ben Loftis da4d2a645f
remove tempo-mapping bar, tempo_meta group. this reverts 8fbf2c and related 2023-09-06 19:31:00 +02:00
Ben Loftis 784d2ecce4
Add the tool for Grid, and accompanying buttons and event-handling 2023-09-06 19:30:56 +02:00
Ben Loftis 268d1d33c7
Add invisible Rectangle to initiates Tempo(grid) drags 2023-09-06 19:14:14 +02:00
Ben Loftis 7d95334c0d fix thinko in e53a7 which resulted in unmatched tempo-map UNDO transactions 2023-09-04 08:48:49 -05:00
Robin Gareus 9c984fc2ad
Add dedicated Section Ruler and UI for section boundary markers 2023-08-26 14:09:53 +02:00
Paul Davis c578695a64 in draw mode, mouse drags in automation tracks are always freehand drawing 2023-08-18 17:42:51 -06:00
Paul Davis bb8858be81 remove debug output from editor mouse -> tempo dragging startup 2023-08-16 09:06:43 -06:00
Paul Davis e53a70722a fix ordering of reversible command initiation and tempo mapping ops 2023-08-16 09:05:18 -06:00
Paul Davis 7c029f5f6a next iteration of changes to handle time domain bounces as undoable (GUI) 2023-08-14 23:42:08 -06:00
Paul Davis b3a5e0b2b1 API change for the start of making tempo mapping undoable (GUI) 2023-08-07 16:33:16 -06:00
Paul Davis df52c39ce0 freehand line drawing: automation & velocity share the same basic code 2023-07-14 13:03:26 -06:00
Robin Gareus 4c8b414fb6
Allow to numeric ctrl point edit to apply to all selected points 2023-07-11 00:53:48 +02:00
Paul Davis 86d5e2472c automation drawing: we have the squiggly 2023-07-09 17:39:32 -06:00
Robin Gareus 168b67bd17
Allow to initiate Rubberband-drag on blank Trackview 2023-07-02 21:19:46 +02:00
Robin Gareus 1f4490fff9
Allow to select region-gain points via rubber-band drag 2023-07-02 20:47:41 +02:00
Paul Davis 99c87e0614 no smart mode behavior for automation region views (it makes no sense) 2023-06-28 13:44:59 -06:00
Paul Davis cf7ba80fc1 the basics of lollipop dragging 2023-06-26 14:18:18 -06:00
Robin Gareus 921b4aaa75
Allow to drag time selection markers 2023-06-01 21:37:40 +02:00
Ben Loftis c1fe193def tempo mapping: handle the special case of trying to ramp the 'first' marker 2023-05-22 15:51:38 -05:00
Ben Loftis ed7683d029 tempo mapping: initiating a drag on a BEAT line applies a ramped twist
as opposed to grabbing a BAR line, which explicitly creates or moves a
  tempo marker, and creates constant tempo lines when dragged
2023-05-22 13:33:03 -05:00
Ben Loftis ca5e56f98c tempo mapping: MappingTwist drag should differentiate between ramped and constant twist
TODO:  probably break these into separate ::Drag classes
2023-05-22 13:33:03 -05:00
Robin Gareus dbebc0b7e0
Make Markers properly themable, use color-names
This simplifies code, and also immediately changes marker
colors when the theme is changed.
2023-05-18 01:26:35 +02:00
Robin Gareus 1ee2675716
Implement Selection Marker class and events 2023-05-17 01:50:51 +02:00
Ben Loftis cceb917806 handle special cases of the first and last tempo-mapping markers
TODO: once all cases are recognized, we can probably simplify the logic
2023-05-14 09:05:08 -05:00
Ben Loftis a258b82ce9 tweak behavior and naming of tempo-map drags:
* correctly handle clicks on the immediate right or left of a beat line
* prefer Mid-Twist and End-Stretch terminology over Twist and Linear
* static-tempo vs ramped-tempo is orthogonal to mid- and end- drags (TODO)
2023-05-04 09:33:08 -05:00
Paul Davis 23a9ce4651 more debug information 2023-04-16 10:33:48 -06:00
Paul Davis c10b265333 tempo mapping: various tweaks and improvements to workflow/Ux 2023-04-13 17:47:34 -06:00
Paul Davis caa42c8b4d remove debug output 2023-04-10 09:18:44 -06:00
Paul Davis 53a98a64fa tempo mapping: when not close to a beat line, revert cursor to grabber 2023-04-10 09:18:44 -06:00
Paul Davis 518fc7754f tempo mapping: half-way towards working drags again
For some reason, mid-drag changes are not visible
2023-04-09 14:36:03 -06:00
Paul Davis 57398b1e5e tempo mappoing: use actual mouse cursors not canvas item cursors
Also some changes to attempt to do "half-twist" that will be removed soon.
2023-04-07 12:56:57 -06:00
Paul Davis 0aea2a2ef8 tempo twisting: GUI improvements, including undo/redo logic 2023-03-24 14:19:16 -06:00
Paul Davis 77cefd7721 new tempo mapping drag objects (API and implementation) 2023-03-24 14:19:16 -06:00
Paul Davis 868d606d16 track mouse motion in the mapping bar
This does not yet snap to BBT positions
2023-03-24 14:19:16 -06:00
Paul Davis d61a741e4b mapping bar: some mouse handling 2023-03-24 14:19:16 -06:00