summaryrefslogtreecommitdiff
path: root/libs/ardour/automation_list.cc
AgeCommit message (Collapse)Author
2017-10-04Clean up State API:Robin Gareus
* Processor implement get_state(), classes derived from Processor implement protected ::state() -- as documented in processor.h * likewise for Route, Track: make ::state() a protected interface * removal of "full_state", use explicit "template_save" * use RAII/Unwind to skip saving automation-state
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
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-18Revert "Temporary session-format compatibility (revert before release)"Robin Gareus
This reverts commit 8cd8cb165037906d5a35c8e147785845d0f4f808.
2017-08-12use a lock to set/get AutomationList automation statePaul Davis
It isn't 100% clear that we should use the list's data lock, but it seems quite likely that this is the correct design, because of the interlock between data being present and automation state
2017-07-24Update WritePass logic + AutomationList UndoRobin Gareus
Fixes various issues when changing AutomationState while rolling.
2017-07-24Remove unused "mark" parameter from stop_touch() APIRobin Gareus
2017-07-07Consistent ControlList freezing -- fixes #7419Robin Gareus
AudioRegion::set_fade_in() freezes the original ControlList, then assigns a new one and thaws that. Frozen state needs to be retained during assignment. Related: The overloaded assignment operator in AutomationList performed duplicate signal emission and didn't freeze the list.
2017-07-04Compatibility with old out-of-range automation-lane dataRobin Gareus
Ardour may have ignored log-scale for parameters 0..N and allowed writing '0'. Force those values into the valid range on session load. Also mark the list as "needs sorting" which removes potential duplicates.
2017-06-22Remove LocaleGuard from ARDOUR::AutomationList classTim Mayberry
All float conversions are using PBD::to_string/string_to via XMLNode::get/set_property API
2017-06-21Temporary session-format compatibility (revert before release)Robin Gareus
Saving the new ControlList interpolation methods (enum) breaks loading the session in older version. The session-format version will need to be increased. Until then: * Fader automation + region gain envelope uses linear fades * The automation-line visible in the GUI does not match the actual fade (the y-axis is log/exp-scale, the fade is linear) * Adding new points on the line is not using the correct initial value * Custom changes of interpolation mode are not available Neither of these issues is a regression.
2017-06-21Set default interpolation type (for new lanes)Robin Gareus
2017-06-21Remove separate ControlList min/max/default, use ParameterDescriptor.Robin Gareus
2017-06-21Remove Cruft -- AutomationStyle never did anything.Robin Gareus
Trim automation is planned via SlavableAC as normal AutomationMode. Some of this code have a revival (a special "Trim+Preview" state before merging Automation but that has to be more general than Pan & Gain.
2017-04-26fix a -Wreorder following d837914e2Robin Gareus
2017-04-26AutomationLine time-unit conversion and paste API updateRobin Gareus
This fixes copy/paste of MIDI automation (time-unit: beat) from/to Parameter automation (time-unit: samples). It also fixes repeatedly pasting with tempo-ramps: pre-multiply length before converting to samples.
2017-04-19Use PBD::string_to/to_string when de/serializing in AutomationList classTim Mayberry
This avoids requiring a LocaleGuard to get the correct numeric formatting and saves/restores the automation data to the precision required for roundtrip equality.
2017-04-19Use XMLNode::get/set_property API in ARDOUR::AutomationListTim Mayberry
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-05-07fix LocaleGuard contstructor (3dc77280)Robin Gareus
2016-05-05we always only use the "C" locale when saving.Robin Gareus
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-04-24hand over automationlist undo state ownership (mem-leak)Robin Gareus
2016-04-10add a C++ lifetime MementoCommand APIRobin Gareus
2015-11-03AutomationList::set_automation_state () only needs a memento for toggled.nick_m
2015-11-02Fix missing undo for record mute automation.nick_m
2015-11-02Clean up _before XMLNode in AutomationList if no automation write occurred.nick_m
2015-10-20Make automation record undo per pass rather than per touch.nick_m
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2015-06-17Fix thinko in automation write undo.nick_m
- also allow saved automation list state to be touch or off if actually in write mode.
2015-04-25prepare trim automationRobin Gareus
2015-01-19use C locale, because POSIX locale is not supported on windows, and ↵Ben Loftis
operation is undefined. C works on all platforms
2014-12-01Replace half-baked param metadata with descriptor.David Robillard
Among other things, this means that automation controls/lists have the actual min/max/normal/toggled of parameters, and not those inferred from the Parameter ID, which is not correct for things like plugin parameters. Pushing things down to the Evoral::ParmeterDescriptor may be useful in the future to have lists do smarter things based on parameter range, but currently I have just pushed down the above-mentioned currently used attributes.
2014-07-09make AutomationList::operator==() private and abort() as its core, because ↵Paul Davis
it should never be called/used. Also make AutomationList::operator=() use ControlList::operator=() rather than try to reimplement it
2014-05-31do not thin() automation event list on load.Robin Gareus
only thin() when writing automation. This fixes issues with loading short x-fades (which can be stretched later). TODO: thinning should not just drop, but interpolate and use more elaborate logic, compared to A2/MB2 Curve::merge_nascent()
2013-01-08tentative redesign of MIDI looping, will probably fix #5050 but needs more ↵Paul Davis
extensive testing; remove several unused parameter names git-svn-id: svn://localhost/ardour2/branches/3.0@13810 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-23fix #5035 - restore pan automation stateRobin Gareus
git-svn-id: svn://localhost/ardour2/branches/3.0@13724 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-14add missing <<endmsgPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13504 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-13dramatic overhaul of automation. too long to explain here. this work is not ↵Paul Davis
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-06-16Add new SharedStatefulProperty which manages a shared_ptr toCarl Hetherington
some Stateful object, and a subclass to use this for AutomationList. SharedStatefulProperty will manage undo / redo using full copies of the XML state, like MementoCommand, but does it within the Property undo system. git-svn-id: svn://localhost/ardour2/branches/3.0@12740 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-04make ARDOUR::AutomationList state management full locale-independentPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12553 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-30revert previous changePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12498 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-30try not thinning when loading old-school automation listsPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12497 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-04Remove ControlList::_max_xval which is set up and stored inCarl Hetherington
state but never actually read. git-svn-id: svn://localhost/ardour2/branches/3.0@11787 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-26(1) do not write sequential same-value automation data into a ControlList ↵Paul Davis
(2) thin AutomationList data when reloading from disk (similar code as Ben's from ardour 2.X, but without user-adjustable thinning density at present). Should fix #4583 and maybe others caused by NaN's occuring from zero-slope lines git-svn-id: svn://localhost/ardour2/branches/3.0@11078 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-18make Stateful::_id private and provide appropriate methods to set it, and ↵Paul Davis
use them throughout ardour git-svn-id: svn://localhost/ardour2/branches/3.0@10222 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01Fix broken whitespace. I'd apologize for the compile times if it was my ↵David Robillard
fault :D git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-20Fix an assertion failure when stopping the transport with an active ↵Carl Hetherington
controllable touch gesture. git-svn-id: svn://localhost/ardour2/branches/3.0@9389 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-20Remove unused NascentInfo::is_touch member.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@9386 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-20Add assert.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@9385 d708f5d6-7413-0410-9779-e7cbd77b26cf