Commit Graph

1041 Commits

Author SHA1 Message Date
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
Paul Davis 0d89bc5789 fix height of tempo ruler curve elements
These were being drawn in a way that failed to really convey relative
tempos very well. This is now better, though perhaps there are other
improvements possible
2023-08-31 18:25:18 -06:00
Robin Gareus 2f16f87e4f
Do not re-parent ruler markers depending on ruler visibility
Previously CD-markers and Arrangement-markers were shown
in the default Maker ruler when CD or Arrangement ruler
were hidden.

This also fixes a bug that could result in marker-labels
being cut short. Editor::update_marker_labels calculates
overlap with other markes in the same group; but re-parenting
did not update the sorted_marker_lists[group] index.
2023-08-29 21:53:50 +02:00
Robin Gareus a14f216f3e
Highligh ranges in arrangement ruler 2023-08-29 00:34:29 +02:00
Robin Gareus 3aadf2daf0
Add Section Arranger to Editor sidebar 2023-08-26 14:09:54 +02:00
Robin Gareus 9c984fc2ad
Add dedicated Section Ruler and UI for section boundary markers 2023-08-26 14:09:53 +02:00
Paul Davis 3b9c63fbac editor: add additional parameter to ::snap_to_with_modifier()
Allows passing ensure_snap value through to ::snap_to_internal
2023-08-19 13:39:27 -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
Ben Loftis 8818d8484e
region groups: allow the user to explictly group and ungroup regions 2023-08-10 16:55:25 +02: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 afe5331a0b pbd: fairly unconscionable that Command in libpbd is not namespaced, so now it is 2023-08-07 16:33:16 -06:00
Paul Davis e36dfa1f09 change display and interaction for BBT Markers
Draw regular tempo/meter markers for BBT markers, and move them when BBT marker is dragged

This will (does) allow regular editing workflow for the tempo/meter at at BBT marker
2023-08-02 15:23:43 -06:00
Paul Davis d14a3b924e locations now follow session time domain, always (probably) (GUI edition) 2023-08-02 15:23:42 -06:00
Paul Davis b8af596a92 update all marker positions after a tempo map change 2023-07-15 11:08:45 -06:00
Paul Davis 509efdb290 temporal: refactor ::get_grid() for performance reasons
the API now provides the option to call ::get_grid() with an iterator which may
be re-used on subsequent calls. This avoids unbounded O(N) "walks" from the
marker preceding the start point of the grid to the start point.

This commit also includes "fast-path" code for the common case of a single
tempo and single meter
2023-07-14 13:03:36 -06:00
Paul Davis f41505a8c6 add Editor::count_bars() after removing it from libtemporal 2023-07-14 13:03:36 -06:00
Paul Davis df52c39ce0 freehand line drawing: automation & velocity share the same basic code 2023-07-14 13:03:26 -06:00
Paul Davis d688af76c0 clean up mapping bar context menu, extend with clear tempos 2023-06-30 15:50:47 -06:00
Paul Davis 60628a62be somewhat active lollipop event handling 2023-06-26 14:18:17 -06:00
Colin Fletcher 72850d456f implement time-stretch from left of region
Make click & drag in the left-hand half of a region with the Timestretch
tool stretch the region on its left, leaving the end position of the new
time-stretched region in the same place as the end of the original.
2023-06-09 17:57:52 +01:00
Robin Gareus a5946ba2e2
Fix heap-use-after-free at exit
Deleting _track_canvas_viewport automatically destroys
any child Items. The LocationMarker's group was already destroyed
when ~ArdourMarker() runs and calls `delete group`.

So first delete the marker, then the canvas
2023-06-08 22:50:15 +02:00
Robin Gareus 3468ffddbb
Update GUI: add new section operations 2023-06-06 02:42:43 +02:00
Robin Gareus c063be6a76
Implement Editor::abort_reversible_selection_op 2023-06-01 21:37:37 +02: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 cb78043adc
Indicate selection extents in time ruler 2023-05-17 01:53:40 +02:00
Robin Gareus 1ee2675716
Implement Selection Marker class and events 2023-05-17 01:50:51 +02: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 87b5849a7b kbd bindings: fix issues with delete & backspace bindings in draw/i-edit mode
We now use the same actions in all modes, and the logic is:

1. is there a selected mixer strip and are we in it: if so, delete selected
   processors
2. are we in draw or internal mode? if so ..
   2a. if there are selected control points, delete them
   2b. if not, attempt to delete MIDI notes
   2c. done
3. continue with delete operation as before
2023-04-25 11:38:16 -06:00
Paul Davis 13311b7a32 tempo mapping: tempo group and mapping group are now only ever visible one at a time
Currently, the "switch" is in Edit > Tempo
2023-04-08 11:44:21 -06:00
Paul Davis 8fbf2c3f52 add enum and member var for controlling what kind of tempo editing we are doing
note: this was much harder than it ought to be
2023-04-08 11:44:21 -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
Robin Gareus f57a9d84df
Do not incrementally ripple during cut/delete #9295
When cutting multiple regions with Ripple-ALL, removing
the first region ripples the remaining tracks which includes
selected regions on those tracks which are to be cut later.
2023-04-06 02:18:42 +02:00
Robin Gareus dd542b8f4d
Use ARDOUR::PlaylistSet instead of local typedefs 2023-04-06 02:13:51 +02:00
Robin Gareus a0286f2e6f Expose cut-copy-section in the editor
This is still a bit of an experiment, there may need to be a dedicated
ruler for sections, or a side-bar that allows arranging.
2023-03-31 23:13:20 +02:00
Robin Gareus 91c0f143ec Set sensitvity of "Insert Selected Region" 2023-03-31 22:06:41 +02:00
Paul Davis 77cefd7721 new tempo mapping drag objects (API and implementation) 2023-03-24 14:19:16 -06:00
Paul Davis aa3cbd8791 editor: expand handling of tempo-redisplay in middle of drag 2023-03-24 14:19:16 -06:00
Paul Davis ece438d73d editor: refactor snap to bbt to allow specifying non-grid-setting grid type 2023-03-24 14:19:16 -06:00
Paul Davis 5e01503a56 add a new canvas-based cursor for mapping 2023-03-24 14:19:16 -06:00
Paul Davis d61a741e4b mapping bar: some mouse handling 2023-03-24 14:19:16 -06:00
Paul Davis 18249f7395 ardour has a new ruler
The mapping bar is where tempo mapping operations will take place
2023-03-24 14:19:16 -06:00
Paul Davis 21074b189a remove unnecessary virtual (no default value involved) 2023-03-24 14:19:15 -06:00
Paul Davis d25a615e20 API development for time domain flipping (GUI edition) 2023-03-24 14:19:15 -06:00
Paul Davis b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Paul Davis b8e9e67f78 tweak ::define_one_bar() API to allow correct undo/redo command name 2023-01-16 14:57:23 -07:00
Robin Gareus 1ff5592731
Remove UI side grid limit
This concept from 2007 is no longer required Temporal::get_grid
already limits the number of grid-lines depending on the step
size (mod-bar, beat_div) and start/end positions.
2023-01-11 00:32:47 +01:00
Robin Gareus 0f949bc02b
Add region polarity invert to Region menu 2022-12-17 13:15:42 +01:00