summaryrefslogtreecommitdiff
path: root/libs/evoral/src/ControlList.cpp
AgeCommit message (Collapse)Author
2015-04-15Replace control list locks with RWLocks4.0-rc4Robin Gareus
towards fixing #6238 and #6096. GUI thread: #2 Glib::Threads::Mutex::Lock::Lock #3 Evoral::ControlList::eval #4 Evoral::Control::get_double #5 ARDOUR::AutomationControl::get_value #6 ProcessorEntry::Control::control_changed .. #15 PBD::Timer::timeout_handler at the same time: Audio Thread (try-lock, fails) #0 Evoral::Curve::rt_safe_get_vector #1 ARDOUR::Amp::setup_gain_automation #2 ARDOUR::Route::process_output_buffers Due to the failed try-lock.. AMP::_apply_gain_automation is false. and Amp::run() uses a different gain factor. -> click.
2014-12-17Remove some aborts that don't really need to be.David Robillard
Enforce PatchPrimaryKey sanity at the type level rather than attempting to check for it everywhere. Remove dead file.
2014-12-06Fix seek in linearly interpolated control lists.David Robillard
2014-12-06Adapt range when copying between automation types.David Robillard
For things like copying from pitch bender to a CC. Also things like fader to pan, but that seems a bit funny. The conversion probably needs to be a bit smarter here, perhaps taking the normal into consideration...
2014-12-01Fix automation write/touch.David Robillard
2014-12-01Factor out copy-paste code.David Robillard
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-12-01Make it compile with C++11 support.Julien de Kozak
Reference : https://bugs.webkit.org/show_bug.cgi?id=59249
2014-11-30Replace thinning static state with parameter.David Robillard
2014-11-30Remove dead code.David Robillard
2014-11-29Set discrete by default for boolean parameters.David Robillard
2014-11-28Fix crash when deleting all points from a line.David Robillard
2014-11-22Fix clang and MSVC build.David Robillard
2014-11-22Fix assert failure in control list interpolation.David Robillard
How we never hit this before is beyond me, it's in some ooooold code.
2014-11-16Don't add origin value to MIDI controller regions on initial insert.David Robillard
This should probably hijack the same modifier as the guard points and work the same on all automation tracks, but I did it this way to not change behaviour of track automation where a default is much more reasonable.
2014-11-16Make ControlList::paste const-correct.David Robillard
2014-11-14add abort() to non-reached codeRobin Gareus
This cleans up a lot of false-positives in static analysis and also helps compilers to optimize code paths in general. (tagging the fatal stingstream operator as ‘noreturn’ is far less trivial)
2014-08-06More fixes for range-based automation editing.Ben Loftis
-Remove redundant start_grab calls. -Show gain curves in Range mode, so you can see the curves you are selecting
2014-08-05Initial steps towards usable range-based automation editing.Ben Loftis
TODO: needs undo. only works in top quarter of automation lane. selection model feels weird sometimes. needs to show gain curve when you are using Range tool
2014-07-09make sure that copy constructors and operator= for ControlList pass along ↵Paul Davis
the _interpolation value
2014-06-07limit automation event density - fixes #5928Robin Gareus
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-02-19add option to skip guard points when adding new control points to a ↵Paul Davis
ControlList; add more debugging statements
2013-09-06Fix for isnan using MinGW compilerTim Mayberry
2013-07-31fixes for windows branch build failures under linux. still does not build on ↵Paul Davis
linux, now due to taglib changes
2013-07-23'std::isnan' is not available in MSVC (at least, not VC8)John Emmas
2013-04-02fix (?) behaviour when punching into automation write mode while the ↵Paul Davis
transport is moving, hopefully without breaking anything else
2013-01-15control lists should use the default value of their parameter, not zero ↵Paul Davis
(noticeable for pitchbend) git-svn-id: svn://localhost/ardour2/branches/3.0@13844 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-08fix automation/control list behaviour when manually adding a point within ↵Paul Davis
existing data git-svn-id: svn://localhost/ardour2/branches/3.0@13619 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-15add a "guard" point after a write/touch automation insertion, preserving the ↵Paul Davis
shape of the later segment of the existing line git-svn-id: svn://localhost/ardour2/branches/3.0@13507 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-14likely fixes for most remaining issues with data in automation/control ↵Paul Davis
lists, but more testing needed git-svn-id: svn://localhost/ardour2/branches/3.0@13497 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-09-17fix missing variable initializationPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13194 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-09-09comment tweaks from a second readingPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13182 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-09-09remove unused codePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13181 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-25convert from Glib:: to Glib::Threads for all thread-related APIPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-17lots more fidgety work on automation. sort of works now, but undo/redo needs ↵Paul Davis
attention git-svn-id: svn://localhost/ardour2/branches/3.0@13047 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-14fix up part of the remaining details with automation, so that touch/write ↵Paul Davis
over-writes work correctly git-svn-id: svn://localhost/ardour2/branches/3.0@13041 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-07-09automation fixes/changes: when add a new control point, create necessary ↵Paul Davis
points to construct a flat default-valued line from zero the first point, and revert to the default value at the end of the write (breaks value-holds-after-write behaviour); fix bug in data elimination when recording flat-line data git-svn-id: svn://localhost/ardour2/branches/3.0@12997 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-05-11switch to 5 new fade curves, taken from mixbus2 branch. make xfade context ↵Paul Davis
menus functional even though the images are not accurate git-svn-id: svn://localhost/ardour2/branches/3.0@12253 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-22Use a list of ControlPoints to hold the automation selection,Carl Hetherington
rather than a time range. This makes more sense now that we display every point on an automation line, rather than just a subset. Makes the code a fair bit simpler, and should fix some unexpected behaviours, especially when cutting automation points. git-svn-id: svn://localhost/ardour2/branches/3.0@12054 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-20Fix some warnings.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12048 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-16Fairly major change to the way in which crossfades are handled;Carl Hetherington
they are now done with region fades, rather than separate objects. After this commit, Ardour will try to convert your session files to the new crossfade format, but will make a backup in your session folder first. If you have works in progress using Ardour 3 it is ***STRONGLY RECOMMENDED*** that you back up session files before updating to this commit. git-svn-id: svn://localhost/ardour2/branches/3.0@11986 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-15A few tweaks to make Ardour build in GCC -std=c++0x mode.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11983 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-05make automation thinning factor controllable at run timePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@11795 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-31Don't round control list events when x-scaling them; prevents large loss of ↵Carl Hetherington
accuracy with xfades when they are scaled to be small and then expanded again (#4602). git-svn-id: svn://localhost/ardour2/branches/3.0@11125 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-11-23Fix broken whitespace via merciless application of the emacs hammer.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@10782 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