Ben Loftis
764aa75f09
reset_region_scale_amplitude is redundant with reset_region_gain
2022-05-10 15:47:56 -05:00
Paul Davis
eff34f2e1b
use editor tempo editing API rather than TempoMap API
2022-05-10 09:46:08 -06:00
Paul Davis
b5487415ec
editing: a partiaally implemented version of TempoTwistDrag, to be completed.
2022-05-02 16:47:23 -06:00
Paul Davis
69ee24c22b
editor: improved handling of tempo map changes
...
This splits apart the actual signal handler from the work that needs to be done
to update the GUI in response to a tempo map change. This allows us to do the
visual update when we are manipulating the thread-local write copy of the map
during e.g. a drag operation.
2022-05-02 12:02:04 -06:00
Paul Davis
33622474af
editor: change return type of begin_tempo_map_edit()
...
This allows us to get the write-copy of the tempo map in one step.
2022-05-02 12:01:12 -06:00
Paul Davis
883a44e6a4
temporal: TempoMap::use() returns a const ptr to enforce semantics (GUI version)
...
This commit leaves two issues outstanding:
1. unclear/ugly semantics for drag operations that reset the GUI thread's tempo map to the writable copy
2. undo/redo for the tempo map
These will be addressed in future commits
2022-04-08 11:58:04 -06:00
Paul Davis
ca22ba77e1
Constification: make Stateful::get_state() const, with all other required const-ness added (GUI)
2022-04-06 21:56:59 -06:00
Paul Davis
da20e4ed60
change return type of Editor::process_redisplay_track_views() to bool
...
This allows it to be used in an idle callback. If we use
::redisplay_track_views() directly, we do not disconnect the idle
connection. This will happen automatically since the callback will return
false, but it seems better to explicit about this. Even better would be to use
::connect_once() but this may not be available in the version of glibmm that we
are using at present.
2022-04-05 20:52:10 -06:00
Ben Loftis
2a611f1d40
editor: add clip-picker list to the editor
2022-03-15 09:03:40 -05:00
Ben Loftis
b0276fd524
ripple (gui part): when Ripple is selected, RippleMode widget appears
2022-03-14 21:35:30 -05:00
Ben Loftis
01ef5a5b24
ripple (gui part): should_ripple_all() encapsulates modes Ripple+RippleAll
2022-03-14 19:26:41 -05:00
Robin Gareus
90770a2788
Consolidate get_grid_beat/music_divisions
...
This fixes "snap to bar" which previously snapped to beats
2022-03-04 17:51:21 +01:00
Robin Gareus
5cebd64924
Fix fit tracks
...
The track-height change needs to be applied so that
vertical_adjustment max range is set correctly.
Otherwise vertical_adjustment.set_value() may fail
or scroll to the wrong position.
In 5b3eacd421
`redisplay_track_views()` was moved from
EditorRoutes to Editor. The call was delegated to the idle
thread, potentially collecting multiple calls before performing
the update.
This resulted in "Fit selection" to set the y-offset before the
height-change was applied.
2022-01-27 19:57:58 +01:00
Robin Gareus
5b3eacd421
Make editor independent of EditorRoutes
2022-01-27 01:28:49 +01:00
Robin Gareus
dd4b4dc00b
Move PluginSetup callback to Editor
...
This is unrelated to the sidebar route-list and should never
have been in EditorRoutes.
2022-01-25 06:27:21 +01:00
Ben Loftis
f6813e0749
Ruler Markers: customize the menus for Cue Marks, including a way to change the Cue-ID
2022-01-21 10:13:11 -06:00
Robin Gareus
0204ea1f24
Unify Region Drag/Drop
...
Identify Regions using PDB::ID. This allows dragging regions
from almost anywhere to anywhere, without special cases.
2022-01-19 17:13:51 +01:00
Paul Davis
c916d3d952
Substantial overhaul of tempo display code
...
Major changes: do not delete and recreate markers and curves for every tempo map
change, attach tempo curves directly to their (preceding) tempo marker, notable
cleanup of TempoCurve class to remove unnecessary members.
More tweaks expected since algorithm for matching markers and tempo map
points is not correct yet.
2022-01-18 19:47:20 -07:00
Paul Davis
4db7aa6bdc
add Editor API to manage tempo map edits (at least, drags)
2022-01-15 22:53:36 -07:00
Paul Davis
7ea072a4f4
editor markers: refactor ::reassociate_metric_marks() to be able to process one marker at a time
2022-01-15 20:04:03 -07:00
Paul Davis
0baf0d859d
GUI side of cue behavior (makes it available in the ruler context menu)
2022-01-06 12:00:18 -07:00
Paul Davis
7c35783d63
various fixes for cue marker creation, dragging, naming
2022-01-05 13:27:47 -07:00
Paul Davis
b1f73d25bf
actual GUI interaction for cue marker ruler
2022-01-04 15:23:51 -07:00
Paul Davis
77d83540b1
copy-n-paste addition of cue marker ruler (based on cd marker ruler)
2022-01-04 15:23:51 -07:00
Robin Gareus
541b91d293
Implement Bounce Range to Trigger
2021-12-23 22:39:57 +01:00
Robin Gareus
8d137b1514
Add API to support Editor sidebar DnD outside of the editor
2021-12-14 21:33:24 +01:00
Robin Gareus
4720a45868
Make convert_drop_to_paths() reusable
2021-12-13 22:50:13 +01:00
Ben Loftis
1e38797efc
PropertyBoxen: move selection-properties into the sidebar
2021-12-08 12:45:11 -06:00
Ben Loftis
84111a343e
Deinterlace MIDI: gui part
2021-11-19 10:28:37 -06:00
Ben Loftis
93e68a5a00
MIDI Draw: provide a menu for Channel and Velocity
2021-11-18 07:35:13 -06:00
Ben Loftis
2a6da0113f
MIDI Draw: Provide a menu to explicitly select note-length
...
ToDo: 3,5,7's? keyboard shortcuts?
2021-11-18 07:35:13 -06:00
Paul Davis
b6f290add2
timeline type changes for new ripple code and post-conflict-resolution fixups
2021-08-13 12:51:36 -06:00
Paul Davis
3c57e4a485
fix timeline type use
2021-08-13 12:51:36 -06:00
Paul Davis
9009bbf986
fix declaration of {Public,}Editor::do_import() (post rebase conflict resolution)
2021-08-13 12:51:36 -06:00
Paul Davis
7938d8de4f
fix (some) editing based on tempo & meter marks
...
After beginning an edit operation with TempoMap::write_copy(), the tempoPoint and meterPoint objects
referenced by markers are incorrect, since they refer to the original map, not the copy we are working
on. Fix this with Editor::reassociate_metric_markers()
Some instances requiring this fix may still remain
2021-08-13 12:51:35 -06:00
Paul Davis
fed449d54d
various fixes to get time stretching basically working again
...
Time domains are not well respected at present, so more work is needed here
2021-08-13 12:51:35 -06:00
Paul Davis
b2655d13f1
make Editor::snap_to_bbt() public
2021-08-13 12:51:35 -06:00
Paul Davis
5153124664
change (GUI) Marker objects to accept any Canvas::Item as parent, and use this to draw BBT position markers in the BBT ruler
2021-08-13 12:51:34 -06:00
Paul Davis
4f1ad4ed0d
start adding new BBT marker support
2021-08-13 12:51:34 -06:00
Paul Davis
c22c8ed69f
get TempoMarkerDrag and BBTRulerDrag to compile
2021-08-13 12:51:33 -06:00
Paul Davis
6a44dcbdad
add Editor::canvas_event_time()
...
See comments in header for more
2021-08-13 12:51:33 -06:00
Paul Davis
5074553f15
add Editor::default_time_domain()
...
Not 100% certain about the logic here, but at least the method exists now
2021-08-13 12:51:33 -06:00
Paul Davis
e653e61923
fix up redrawing Tempo/Meter rulers when tempo changes
2021-08-13 12:51:32 -06:00
Paul Davis
06f93e65b2
fix timefx to use ratio_t from the beginning of the operation
2021-08-13 12:51:32 -06:00
Paul Davis
dade9994d8
collect together modifying TempoMap methods, and make ::apply_with_metrics() more clearly const
2021-08-13 12:51:30 -06:00
Paul Davis
7ef11dc698
continued work on using new tempo map API (before switch to RCU)
2021-08-13 12:51:30 -06:00
Paul Davis
749a49c278
incorporating new tempo map API
2021-08-13 12:51:29 -06:00
Paul Davis
f67029bd02
random commit to facilitate trivial move of work from laptop back to main system
2021-08-13 12:51:29 -06:00
Paul Davis
5836a4f2b6
timeline types conversion for editor_ops.cc
2021-08-13 12:51:29 -06:00
Paul Davis
2a08e4bdaa
continued work on timeline types conversion. in theory, just editor_ops.cc remains
2021-08-13 12:51:29 -06:00