Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-11-02 | rename all Evoral source from .(hpp|cpp)$ to .(h|cc) | Paul Davis | |
2019-08-03 | Update libardour GPL boilerplate and (C) from git log | Robin Gareus | |
2018-09-21 | Fix --no-nls (4/5), i18n include order in libs/* | Robin Gareus | |
"i18n.h" needs to be included last (after any includes that may indirectly pull in getext or libintl etc) | |||
2017-09-18 | globally 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-07-16 | Fix merging boolean automation + mute disconnect. | Robin Gareus | |
2017-07-16 | Add API to run automation only (emit Changed signal). | Robin Gareus | |
Note: MuteControl already implemented this, This removes the special case of boolean_automation_run(). Likewise this removes special-cases for actually_set_value() during automation playback. | |||
2017-06-23 | Implement undo for merging VCA-master automation/value on disconnect. | Robin Gareus | |
2017-06-22 | Update Slavable API | Robin Gareus | |
Do not use AutomationType to identify parameters, use complete Evoral::Parameter and Automatable. For "batch connections", a Slavables needs to implement an API to return the relevant controls. This is only a first step towards a more generic Master/Slave framework. | |||
2017-06-14 | Special-case VCA at 0 (-inf dB), force gain slaves to -inf dB | Robin Gareus | |
2017-06-14 | Merge event control lists when disconnecting a master-ctrl | Robin Gareus | |
2017-06-13 | Apply master-value to automation on disconnect. | Robin Gareus | |
2017-06-13 | Write inverse master automation. | Robin Gareus | |
* The UI and ctrl-surface controls use and display the combined value, including control-masters. * The Automation lane of a control is the raw value of the control without masters. When touching (or writing) automation, the control-master needs to be factored out (or subtracted). e.g press+hold a control -> write inverse master automation. | |||
2017-06-13 | Fix another thinko in 9581cb26 + 02b087c5 (VCA gain automation) | Robin Gareus | |
This went unnoticed because: VCA gain automation was always applied (regardless of automation state) but when it was not playing master_ratio() factored it out again (per block). | |||
2017-06-13 | Fix nasty duplicate XML node | Robin Gareus | |
2017-06-12 | Remove unnecessary temporary variables in MasterRecord::set_state | Tim Mayberry | |
XMLNode::get_property only modifies the argument if the property is found and conversion is successful. | |||
2017-06-12 | VCA/SlavableAutomationCtrl re-design: | Robin Gareus | |
* remember master-ctrl value on assignment & save with session * Control/AutomationCtrl only stores ctrl's own value (w/o master) * virtual AutomationControl::get_value () -> use SlavableAC method * MasterRecord uses weak-ptr (fixes recursive ~Controllable() deadlock) | |||
2017-06-11 | Fix thinko in 9581cb26 - scratch-buffer can't be used recursively. | Robin Gareus | |
2017-06-10 | Implement slaved boolean automation and update mute special-case | Robin Gareus | |
2017-06-10 | amend a1b4f9b8ab - handle disconnecting from all masters | Robin Gareus | |
2017-06-09 | Fix deletion of VCA with slaved controls. | Robin Gareus | |
The crashed previously because: A VCA is-a Automatable is-a Evoral::ControlSet After VCA's d'tor completes ~Automatable runs and emits signal to DropReferences of all master-controls. This in turn calls SlavableAutomationControl::master_going_away() for slaved parameters for the given master-control In ::master_going_away() the weak-pointer reference to the master's AutomationControl (owned by the destroyed VCA) is still valid. Execution is in the d'tor of Automatable which is-a ControlSet and the ContolSet keeps a reference to the Control and hence also to the AutomationControl which is-a Evoral::Control. So master_going_away() locks a boost::shared_ptr<ARDOUR::AutomationControl> which is actually the MuteControl owned by the VCA. It calls SlavableAutomationControl::remove_master() which in turn calls MuteControl::pre_remove_master() which uses the MuteMaster API to retrieve the value. The MuteMaster however is the VCA that has just been destroyed. The solution is twofold: 1) emit "drop_references" from the VCA d'tor itself, before the VCA is destroyed. 2) disconnect a slaved control from the master's drop_references signal when un-assigning a master-control. | |||
2017-06-03 | Add infrastructure for evaluating VCA automation curves | Robin Gareus | |
2017-06-03 | amend 67f9f6fd: no recursive ReaderLock | Robin Gareus | |
2017-05-30 | Prepare for automation control master | Robin Gareus | |
Basic infrastructure to allow VCA automation and Trim automation: look up events during automation playback. | |||
2017-04-19 | Use XMLNode::get/set_property API in ARDOUR::SlavableAutomationControl class | Tim Mayberry | |
2017-02-24 | no-op: move method order in file | Paul Davis | |
2017-02-23 | fix solo + mute controls when slaved | Paul Davis | |
clamp/scale by masters only applies to non-boolean controls | |||
2017-02-23 | Constrain VCA slave value to controllable range | Robin Gareus | |
This prevents overshoot e.g. when writing automation (and related oddities) | |||
2017-02-22 | fix deadlock when assigning a VCA master | Paul Davis | |
2017-02-22 | if a slave's masters are at zero, lock slave to zero and not NaN | Paul Davis | |
2017-02-21 | fix thinko/typo which failed to notify when a VCA is unassigned | Paul Davis | |
2017-02-21 | redesign VCA control over gain (and theoretically other scalar controls) | Paul Davis | |
master(s) value now just scales the control's own value; a trivial bit of math at assign/deassign ensures that values do not change during add/remove master operations | |||
2017-02-06 | save/restore VCA master state inside slaves, so that a reloaded session ends ↵ | Paul Davis | |
up back in the same state | |||
2017-01-21 | SlavableAutomationControl::get_value(), if doing automation playback, should ↵ | Paul Davis | |
still scale the returned value by the masters' value(s) | |||
2016-10-14 | much simpler implementation of fix originally in c104c9d4726f3: don't call ↵ | Paul Davis | |
Session::set_dirty() or emit Changed() unless AutomationControl actually changes value | |||
2016-10-14 | Revert "change return type of AutomationControl::actually_set_value() from ↵ | Paul Davis | |
void to bool, to indicate if value was changed." This reverts commit c104c9d4726f3ba1ecd352d13b88a57f2f964510. | |||
2016-10-12 | change return type of AutomationControl::actually_set_value() from void to ↵ | Paul Davis | |
bool, to indicate if value was changed. Don't call Session::set_dirty() when no change occurs | |||
2016-09-21 | gain controls are supposed to be "gain-like" | Paul Davis | |
2016-06-01 | fix crash during session deletion while removing VCA masters | Paul Davis | |
2016-05-31 | no-op: explanatory comments | Paul Davis | |
2016-05-31 | improve cleanup of VCA related objects | Paul Davis | |
2016-05-31 | fix compiler issues with pair<T1,T2> construction | Paul Davis | |
2016-05-31 | fix chaining of masters for boolean controls | Paul Davis | |
2016-05-31 | move ever close to working master/slave logic, this time with audio testing | Paul Davis | |
2016-05-31 | fix return type of SlavableAutomationControl::get_boolean_masters() to make ↵ | Paul Davis | |
it usefl | |||
2016-05-31 | design changes to various SlavableAutomationControls to make it possible to ↵ | Paul Davis | |
get the logic right for boolean controls | |||
2016-05-31 | move SlavableAutomationControl into its own header | Paul Davis | |
2016-05-31 | a variety of changes that get closer to correctly functioning behaviour for ↵ | Paul Davis | |
VCA solo+mute (BUT ARE NOT DONE YET) | |||
2016-05-31 | a slew of as-yet incomplete work to get VCA solo+mute closer to working | Paul Davis | |
2016-05-31 | add new files to source tree | Paul Davis | |