summaryrefslogtreecommitdiff
path: root/libs/ardour/automation_list.cc
AgeCommit message (Collapse)Author
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
2011-01-27merge 3.0-panexp (pan experiments) branch, revisions 8534-8585 into 3.0, ↵Paul Davis
thus ending 3.0-panexp. THIS COMMIT WILL BREAK ALL EXISTING 3.0 SESSIONS IN SOME WAY (possibly not fatally). git-svn-id: svn://localhost/ardour2/branches/3.0@8586 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-03Remove all use of nframes_t.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@8166 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-24fix load+save of plugin parameter automationPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@7678 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-19forward port automation handling changes from 2.x, upto and including about ↵Paul Davis
rev 6981 (will need full testing in the 3.X context). as on 2.x, this removes real-time visual updates to automation curves during write/touch automation recording git-svn-id: svn://localhost/ardour2/branches/3.0@7653 d708f5d6-7413-0410-9779-e7cbd77b26cf