Commit Graph

132 Commits

Author SHA1 Message Date
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
Paul Davis 0796ccfb65 use newly factored canvas in gtk2_ardour 2014-06-21 11:44:22 -04:00
Robin Gareus 94fa927861 limit automation event density - fixes #5928
Constrain control points to one per tick (1/1920 beats).

Prior to this it was possible to set two values to the
same time (interpolation and iteration failed).
2014-06-07 17:43:12 +02:00
Paul Davis 983bf548cd alter name of AutomationLine::show() to much more sensibly named ::update_visibility() 2014-03-05 12:11:22 -05:00
Paul Davis 59631acc5f fix merge with master 2014-01-11 15:19:18 -05:00
David Robillard 72d8ca89e2 Support midnam controller value labels. 2014-01-10 20:51:54 -05:00
David Robillard 0fe968a140 Fix whitespace (no functional changes). 2014-01-10 20:51:54 -05:00
Paul Davis 2d389a23d5 convert automation line from Canvas::Curve to Canvas::PolyLine (note: this means there is no actual use of Canvas::Curve now) 2013-12-28 13:52:46 -05:00
Paul Davis 7caf517b27 add (bezier) curves to canvas, use for automation lines; fix issue with rectangles missing their upper line segment; more cairo canvas fixes 2013-04-11 22:54:12 -04:00
Paul Davis aaea166135 initial commit of hand merging, plus getting "ancient" waf script to work correctly 2013-04-04 00:32:52 -04:00
Paul Davis 30237aad7f fix push-drags of automation data - previously we did not resync the model with the view for the points that were pushed (i.e. not selected, but moved anyway)
git-svn-id: svn://localhost/ardour2/branches/3.0@13681 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-19 15:55:06 +00:00
Paul Davis 1bff57131a substantive change to automation line dragging code to avoid O(N^4) behaviour. performance fixes are still required for realistically data-rich automation lines
git-svn-id: svn://localhost/ardour2/branches/3.0@13515 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-17 22:55:03 +00:00
Paul Davis 0532e2063b dramatic overhaul of automation. too long to explain here. this work is not finished - write/touch passes do not correctly overwrite existing data because the semantics of ControlList::insert_iterator need clarification. more to follow
git-svn-id: svn://localhost/ardour2/branches/3.0@13038 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-13 21:05:45 +00:00
Paul Davis e89bdcd9eb provide some numerical data during automation trim (range) drags, and correct computation of y-fraction for such drags
git-svn-id: svn://localhost/ardour2/branches/3.0@13011 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-10 15:44:56 +00:00
Paul Davis 7aa66b6623 remove extra unused argument to ::sync_model_with_view_point(s)
git-svn-id: svn://localhost/ardour2/branches/3.0@13005 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-09 22:03:32 +00:00