summaryrefslogtreecommitdiff
path: root/libs/ardour/automatable.cc
AgeCommit message (Collapse)Author
2020-04-15Fix PolyKeyPressure, consolidate AutomationType checksRobin Gareus
2020-03-21Pan: remove/consolidate parameter-descriptorRobin Gareus
2020-03-18Add flag to explicitly hide a controlRobin Gareus
Eventually this is to replace a literal name "hidden" that is currently used as hack throughout Ardour's codebase.
2020-03-10NO-OP: use set/clear_flag() API instead of set_flags()Robin Gareus
2019-12-14Make BusSendLevel 1st class citizen (1/2)Robin Gareus
Equivalent to Gain and Trim (gain-coefficient, not dB) and use it for Sends.
2019-12-11Remove hardcoded session-state versionsRobin Gareus
2019-11-18NO-OP: simplify codeRobin Gareus
find_next_ac_event, needs to find the next event *after* (but not at) start. std::upper_bound returns an iterator pointing to the first element in the range [first, last) that is greater than value. This is equivalent to using std::lower_bound an iterating until finding the first element greater than.
2019-11-18Automation event lookup when rolling backwardsRobin Gareus
When rolling backwards we need to be able to find the *next* event before "start".
2019-09-18NO-OP: fix some Wimplicit-fallthroughRobin Gareus
gcc can recognize various regexps in comments. Since C++17 provides [[fallthrough]], using /* fallthrough */ consistently seems appropriate until we switch to C++17. see also https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2018-12-17MSVC won't allow us to erase an item that's managed by 'const_iterator'John Emmas
2018-12-16NO-OP: whitespaceRobin Gareus
2018-12-16Optimize automation-event process splittingRobin Gareus
Use RCU of automated parameter when looking for next automation event to use for split processing. This speeds up PluginInsert processing when rolling for plugins with many not-automated parameters.
2018-12-16Optimize plugin-processing for non-automated paramsRobin Gareus
Keep a dedicated list of automated parameters to evaluate in realtime. This fixes a performance issue with plugins that have many controls with only few of them being automated.
2018-10-31Add option to limit automatable control parmatersRobin Gareus
VCVRack VST currently exposes 9999 automatable-control parmaters. This slows down various GUI dropdown lists and dialogs. (even worse: those parameters are not mapped to anything by default). This change allows to limit automatable parameters to a reasonable number, without loosing state of already automated parameters in existing sessions.
2018-10-26Fix some Wimplicit-fallthroughRobin Gareus
A "fall through" comment is most portable way to indicate "no break, fallthru" cases. * __attribute__ ((fallthrough)) // is not portable * [[fallthrough]]; // is C++17
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-18Add support for Latch AutomationRobin Gareus
2017-08-07Explicitly initialize parent in the copy constructorRobin Gareus
2017-07-27Start a new write-pass when writing automation and locating while rollingRobin Gareus
2017-07-24Remove unused "mark" parameter from stop_touch() APIRobin Gareus
2017-07-22NO-OP: consistent [internal] API name for AutomatablesRobin Gareus
2017-07-22NO-OP: Consistent API nameRobin Gareus
2017-07-16Consistent Automation evaluation:Robin Gareus
Rule #89: The *owner* of each automation-control is responsible to evaluate automation of automated automation-controls (and emit Changed() signals to notify the GUI and slaved controls). This can happen during run(), when the Processor evaluates automation (eg. PluginInsert does that), but needs to regardless, every cycle. Emit Changed signal for GainControl This follow the same concept as PluginInsert: The Changed signal is called on demand when evaluating automation.
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-06-09NO-OP: whitespaceRobin Gareus
2017-06-09Remove Automatable::value_as_string API from libardourRobin Gareus
Keep Pannable::value_as_string() for now. That is another inconsistency which needs cleaning up. GUI StereoPanner and MonoPanner print the value as they see fit, the panner-plugin provided formatting is not used.
2017-05-30Prepare for automation control masterRobin Gareus
Basic infrastructure to allow VCA automation and Trim automation: look up events during automation playback.
2017-05-05libardour now has CoreSelection object to manage selection status of ↵Paul Davis
Stripables and AutomationControls
2017-01-09save state of an automation list, even if empty, because it might exist in ↵Paul Davis
the history state
2017-01-05Fixing LV2_SUPPORT #ifdefsDobroslav Slavenskoj
2016-08-19MIDI polyphonic pressure, part 2Paul Davis
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-06-28ignore automation for non-automatables.Robin Gareus
Since 4.7-1477-g2c6d595 Ardour implements Control::NotAutomatable. This can lead to situations where automation exists for parameters that were not supposed to be automatable, which in turn caused a "programming-error" abort() in RouteTimeAxisView::add_processor_automation_curve()
2016-05-31implementation side of Controllable::get_user_string() with const argPaul Davis
2016-05-31extend function of Automatable::control_factory() [ this may be the wrong ↵Paul Davis
design ... review coming ]
2016-05-31do not non-automable controls to an Automatable's list of what can be automatedPaul Davis
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-01-18move Amp::GainControl out into its own source module and out of AmpPaul Davis
2016-01-18change ownership of the AutomationControl used by Amp.Paul Davis
It used to be owned by Amp. Now it is owned by Amp's owner
2015-11-02Clean up _before XMLNode in AutomationList if no automation write occurred.nick_m
2015-11-01Revert starting write pass only in write mode when transport located.nick_m
2015-10-21fix automation update at transport stop when in automation Play modePaul Davis
2015-10-20Automation - more toggled controller twiddling.nick_m
2015-10-20Automation - fix occasional inverted bool state after write.nick_m
2015-10-20Make automation record undo per pass rather than per touch.nick_m
2015-10-07only subdivide plugin-cycle when automation is playingRobin Gareus
PluginInsert::automation_run() subdivides plugin-run on every control-port automation event (without splitting the process cycle). libevoral has no automation-control context, hence this function must be implemented by Automatable.
2015-10-05use quotes for in-tree pbd/glib wrapper includeRobin Gareus
2015-10-05remove i/ofstream from libardourRobin Gareus
except: * audio-unit (ifstream is known to work on OSX) * evoral curve algorithm debugger * cycle-timer debug code * export_handler's CDMarker -> TODO