summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
AgeCommit message (Collapse)Author
2017-06-17Use Stripable::Sorter in libsRobin Gareus
2017-06-17Move StripableSorter into libardourRobin Gareus
2017-06-14Special-case VCA at 0 (-inf dB), force gain slaves to -inf dBRobin Gareus
2017-06-14Merge event control lists when disconnecting a master-ctrlRobin Gareus
2017-06-13Apply master-value to automation on disconnect.Robin Gareus
2017-06-13Write 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-13amend 11ba1854 -- locked curve-evaluation is not publicRobin Gareus
2017-06-13Allow group gain sharing + VCA againRobin Gareus
2017-06-12VCA/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-10Implement slaved boolean automation and update mute special-caseRobin Gareus
2017-06-09NO-OP: whitespaceRobin Gareus
2017-06-09Fix 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-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-06-09Prepare to eventually drop Automatable::value_as_string()Robin Gareus
Probably due to historical reasons, there are two APIs to format a control's value. In all both variants end up calling either ARDOUR::value_as_string() or the Controllable's formatting function (except for panners).
2017-06-09Add a method for obtaining the frame position of beat/whatever zeronick_m
2017-06-09Tempo lines display subdivisions correctly over a tempo changenick_m
TempoMap::get_grid() supplies a list of beat positions, leaving the lines to work out any subdivision positions. This is fine, unless a tempo section falls in between beats. Use a BeatsFramesConverter along with a quarter note position (in the BBTPointsList) to make this easier.
2017-06-08Fix uninitialised tempo section variablenick_m
Should fix 7390.
2017-06-03Apply VCA master gain automation to Amp (Fader, Trim)Robin Gareus
2017-06-03Add infrastructure for evaluating VCA automation curvesRobin Gareus
2017-06-03amend 67f9f6fd: no recursive ReaderLockRobin Gareus
2017-06-03Add a scratch buffer for automation.Robin Gareus
Useful as temporary buffer: This allows a controllable to get a master's automation-curve and combine it with its own (gain, trim, send) automation buffer.
2017-06-03NO-OP: whitespaceRobin Gareus
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-25Always create a deep copy of MIDI regions when copying playlists.Robin Gareus
2017-05-25Include ParameterDescriptor in read-only control outputRobin Gareus
2017-05-23Remove old jack_utils.h header that was moved to the JACK backendTim Mayberry
Also remove a related test that has not been part of the unit tests since the move (years).
2017-05-14Add note name parser to convert to midi note numberNil Geisweiller
Supports i18n, is case and whitespace insensitive for more resilent parsing.
2017-05-14Sanitize "well-known" ctrl APIRobin Gareus
2017-05-12change ControlProtocolManager protocol mutex into a RW lock.Paul Davis
Probably not gaining much in terms of contention, but there's really no reason to be using a mutex
2017-05-12don't actually use a method from libardourcp inside libardour; use a ↵Paul Davis
PBD::Signal to avoid linker issues
2017-05-12change the way ControlProtocols (control surfaces) are notified and handle ↵Paul Davis
Stripable selection changes The Editor continues to notify them, but via a direct call to ControlProtocolManager, not a signal. The CP Manager calls the ControlProtocol static method to set up static data structures holding selection info for all surfaces and then notifies each surface/protocol that selection has changed.
2017-05-12MCP: Mixbus32C: Restore missing filter controls to the Dyn page.Ben Loftis
2017-05-10Selection::get_stripables() needs to recurse into an Automatable's child ↵Paul Davis
Automatables when looking for for an Automation Control It also needs renaming (to come)
2017-05-10Bump VST param-name length limit to 128 bytes and centralize definitionRobin Gareus
The official VST spec says 8 bytes, JUCE uses 24 + 1, and there's anecdotal evidence that some VSTs use up to 100 (which apparently works in many hosts).
2017-05-08allow Session to call Session::remove_stripable_by_id()Paul Davis
2017-05-06The new class 'ARDOUR::CoreSelection' needs to be exportable (since it gets ↵John Emmas
used outside of libardour)
2017-05-05add missing files from selection development branch(es)Paul Davis
2017-05-05libardour now has CoreSelection object to manage selection status of ↵Paul Davis
Stripables and AutomationControls
2017-05-05Move special-cased FP8 mute-state into libardourRobin Gareus
2017-05-04Lua bindings for "end-is-free" (automatic session-end location marker)Robin Gareus
2017-05-03Move RouteGroup color into libardour.Robin Gareus
This allows to change it from scripts and surfaces and consolidates code.
2017-05-03NO-OP: whitespaceRobin Gareus
2017-04-30Fix vari-speed and non-locked slave modesRobin Gareus
A transport-speed-change is no reason to skip processing. Prior to this change cannot_process() silently skipped in the process cycle of the speed-change (which may have been every process-cycle), without moving the transport or doing any processing.
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-25Add an API to conveniently query plugin-parameter labelsRobin Gareus
2017-04-24Swap inheritance, simplifies Lua BindingsRobin Gareus
2017-04-22remove unused semaphoreRobin Gareus
2017-04-22Privatize non-public methodsRobin Gareus
2017-04-20Remove unused enumRobin Gareus
2017-04-19Changes needed for building Tim's new 'string_convert' stuff with MSVC ↵John Emmas
(libardour)