Commit graph

146 commits

Author SHA1 Message Date
Robin Gareus
f5d1792510
Allow to deselect in draw and internal-edit mode
By default "Escape" in those modes triggers binding for
`EditorAutomation/end-edit within Editor`. This is intentional
when editing automation. Yet when not editing, Esc should deselect.
2025-11-19 23:13:26 +01:00
Paul Davis
fa97071872 mamy improvements to kbd-driven automation editing
Really needs a short video to demo/explain
2025-08-12 21:44:50 -06:00
Paul Davis
854e999436 automation text entry only when using kbd 2025-07-10 23:23:08 -06:00
Paul Davis
9067971130 floating point text entry when using kbd automation workflow (unfinished) 2025-07-09 21:58:20 -06:00
Paul Davis
dd3683bc06 fix another #warning from the pianorule refactoring
There is one single place in AutomationLine code where we need to callback
to its AutomationTimeAxisView, if it is part of one, regarding automation
state. This permits that to happen
2025-03-16 15:43:11 -06:00
Paul Davis
f81b700395 more work on midi cue editor automation line colors (when insensitive) 2025-01-06 20:41:02 -07:00
Paul Davis
32f074bdd4 use colors for non-active automation lines in MidiCueEditor
Currently this just uses random ("nonexistent") colors; to be changed to
some palette next
2025-01-06 20:41:02 -07:00
Paul Davis
ebcbed53e6 change AutomationLine::_line_color to _line_color_name 2025-01-06 09:31:33 -07:00
Paul Davis
05476514c0 Add concept of insensitive automation lines for use in MIDI cue editor
This commit also includes auto-fication of several loops

It also includes a new concept: control points inherit line color. This is enabled
by default, so control points just take their color from their parent line. More
work is needed here to handle selection colors
2025-01-05 11:49:18 -07:00
Paul Davis
bbdb6b0e63 more extensive automation display design for cue editor 2024-11-07 16:10:31 -07:00
Paul Davis
2afdeb519f refactor rubberband drags to take a functor for the no-drag condition
Also move code for adding automation line control points into automation line, rather
than in AutomationTimeAxisView (some work still required to finalize this)
2024-10-17 07:44:32 -06:00
Paul Davis
4b8c51574d refactor the "selectables" API to allow use within separate (e.g. cue) editors 2024-10-17 07:44:32 -06:00
Paul Davis
56ce9c33c0 renaming: AutomationLineBase => AutomationLine, AutomationLine => EditorAutomationLine 2024-10-17 07:44:31 -06:00
Paul Davis
fa79645c19 move most of AutomationLine into AutomatonLineBase, a class not strongly tied to the editor 2024-10-17 07:44:31 -06:00
Robin Gareus
38adfdf79e
Add custom color for region effect automation 2024-04-23 21:56:26 +02:00
Robin Gareus
b2d4280e0f
Add support for Region Fx Automation 2024-04-23 21:56:22 +02:00
Robin Gareus
ad9a3ae103
Fix region-gain envelope auto-enable when dragging
When using freehand drawing of automation, the line itself
is not notified (no ::start_drag(), ::end_drag() calls).

This adds a end_draw() call which allows the AutomatioLine
to perform additional actions.
2024-04-23 21:56:05 +02: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
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
f1d784afbb deep fix to the way automation control point drags are handled/computed
The old code could not snap to the grid, because it had a lot of confusion about pixels vs. time,
and between line-origin-relative time and absolute time
2023-02-10 11:11:51 -07:00
Paul Davis
e883c39e7a control point drag: fix the way bounding-to-region is computed 2023-02-06 21:04:17 -07:00
Paul Davis
3d96a318ac automation line: add dump() method to inspect GUI control points 2023-02-06 21:04:17 -07:00
Paul Davis
5dd60c03df automation lines: fix missing line segments 2022-10-26 16:57:06 -06:00
Paul Davis
83ad0a10b5 automation line: drop ::redisplay() method 2022-10-26 14:01:59 -06:00
Paul Davis
a928e35efb significant overhaul of automation region/lines to update during tempo map drags etc 2022-10-25 11:10:36 -06:00
Paul Davis
373a73cb51 fix selectability of region-associated automation (i.e. MIDI)
The fix here is really just dropping the use of _offset when computing the session position
of a control point. This was just an arithmetical error.

However, session_sample_position() was redundant and just caused more work, so this
method was removed, and only ::session_position() is now used.

In addition, several closely related places now use C++11 (or later) "auto"
syntax for iterating over containers, for cleaner looking code
2022-08-11 15:26:42 -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
49424ab0e3 Region::_start should be a timepos_t not a timecnt_t (GUI edition) 2021-08-13 12:51:34 -06:00
Paul Davis
0162d3f9d6 GUI changes to *try* to adapt to a world without explicit beats<->samples converter objects (i.e. use AutomationLine::get_origin() instead 2021-08-13 12:51:34 -06:00
Paul Davis
888239a834 remove dual (x,y) version of AutomationLine::view_to_model_coord()
The x-axis coordinate was never transformed or modified anyway (6.x just changed it
from double to integer and back again!)
2021-08-13 12:51:33 -06:00
Paul Davis
9d69fa3820 another day or two's work on timeline type conversion 2021-08-13 12:51:29 -06:00
Paul Davis
04e8dbb342 another day of slow timeline type conversion 2021-08-13 12:51:29 -06:00
Paul Davis
7433bc27e0 intermediate, unfinished snapshot of ongoing timeline types work on GTK GUI 2021-08-13 12:51:29 -06:00
Paul Davis
a855119bdd rename all Evoral source from .(hpp|cpp)$ to .(h|cc) 2019-11-02 16:32:18 -06:00
Robin Gareus
4050ca5633
Update GPL boilerplate and (C)
Copyright-holder and year information is extracted from git log.

git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
2019-08-03 15:53:15 +02:00
Paul Davis
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Thomas Brand
63ea7b6516 NO-OP whitespace (updated GH PR #357) 2017-07-01 19:28:26 +02:00
Robin Gareus
fd36355e2c Log-scale/relative automation point dragging 2017-06-21 18:13:03 +02:00
Robin Gareus
1db9ce4c90 update GUI to use new APIs 2017-06-21 18:13:01 +02:00
nick_m
0b50945484 Fix various snap issues when dragging control points (AutomationRegionView). 2016-10-16 03:47:10 +11:00
Robin Gareus
4f7d3069ab highlight area below automation lanes 2016-07-05 00:39:43 +02:00
Robin Gareus
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
Paul Davis
4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
David Robillard
5c11e43f08 Clam points to valid values on drag end.
Fixes bug #6214.

It would be better to do this while dragging, but this would require rewriting
much of the drag code to keep track of a cumulative y delta since the current
position of points would be "sticky" and prevent any movement at all, so this
will have to do for now.
2015-03-26 13:22:57 -04:00
David Robillard
b3ea22fc3f Remove unused method. 2014-12-01 23:35:24 -05:00
David Robillard
ed1bbefd19 Somewhat working gain automation.
This probably isn't correct in several ways, but it works more than it did, so
I figure it's push worthy.

Still not working:

 * Saving mute automation list
 * Dragged control points are not snapped to model restrictions
   (boolean, in this case, but general problem)
 * Line goes funny if you record mute automation
   (as opposed to drawing it which works)
2014-11-29 01:25:27 -05:00
David Robillard
f190e630ab Show discrete/toggled automation as stepped line. 2014-11-28 21:15:28 -05:00
David Robillard
47c4929bc2 Display gain and midiNote plugin parameters/properties nicely.
Show fancy values on generic GUI controls, automation lane controls, and automation lane verbose cursor.
Fix text display of midiNote values.
Make bigstep of midiNote parameters 12 (one octave).
Add ARDOUR::value_as_string() as a stateless one-stop-shop for value printing.
2014-11-02 02:10:24 -05:00
David Robillard
8a128b33d3 Automation of LV2 plugin properties.
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-11-02 02:10:24 -05:00
Paul Davis
6a5d805b38 more canvas refactoring.
Remove Canvas::Layout, use Canvas::Container for the same purpose, move child-rendering into Item::render_children() so that it
could theoretically be used by any derived type.
2014-06-22 11:41:05 -04:00