summaryrefslogtreecommitdiff
path: root/libs
AgeCommit message (Collapse)Author
2017-06-24Adjust the indication of the treshold value by the makup gain.makeup-testJohannes Mueller
When lifting the compressor curve by the makeup gain value the actual treshold (the level when the curve kinks in) is also lifted. Therefore we need to adjust the dashed line indicating the threshold as well as the level when the color gradient to show compression kicks in.
2017-06-24Also the stereo version needs to set need_exposeJohannes Mueller
2017-06-24Show a-comp's makeup grain in inline renderingJohannes Mueller
2017-06-11a-EQ: Tweak knob layout to be less confusingDamien Zammit
2017-06-11Fix thinko in 9581cb26 - scratch-buffer can't be used recursively.Robin Gareus
2017-06-10OSC: add option to send /reply instead of #reply (OSC1.0 compat)Len Ovens
2017-06-10Emit Session::Located only if _engine.transport_frame() is up to dateJohannes Mueller
If _engine.transport_frame() is not up to date, we emit Located in Session::backend_sync_callback() because that's when audible_frame() is up to date. We don't want to emit it twice, because then, the playhead jumps back and forth. * mouse click in the ruler -> jump to requested location * mouse release -> jump to old location (because audible_frame has to catch up) * backend_sync_callback() called -> jump to new location
2017-06-10Make Session::backend_sync_callback() emit Session::LocatedJohannes Mueller
If we sync to jackd AudioEngine::transport_frame() is not yet updated when Session emits Located. Then the playhead ends up in an obsolete position. Therefore we emit Session::Located() also from within Session::backend_sync_callback() as that is called when AudioEngine is done with the relocation.
2017-06-10semantically more correct ordering of previous commitPaul Davis
2017-06-10linker-agnostic version of recent commit to get ControlProtocol selection ↵Paul Davis
state set correctly
2017-06-10Implement slaved boolean automation and update mute special-caseRobin Gareus
2017-06-10Restore VCA Automation stateRobin Gareus
2017-06-10amend a1b4f9b8ab - handle disconnecting from all mastersRobin Gareus
2017-06-09set first selected stripable for control protocols before they are instantiatedPaul Davis
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-09a-EQ: Revert one of the previous changesDamien Zammit
One of the previous changes was not a typo, revert it.
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-09Fix reversed logic in legacy tempo secton detectionnick_m
2017-06-08Do not duplicate note id in copy constructornick_m
This fixes selection undo after copy-dragging notes, but there are probably other cases where duplicate note ids may cause problems.
2017-06-08Remove debugging from TempoTest::qnDistanceTestRamp ()nick_m
2017-06-08Fix uninitialised tempo section variablenick_m
Should fix 7390.
2017-06-08a-EQ: DSP bugfixDamien Zammit
Previously there were large spurious spikes in the signal when the bandwidth parameter was adjusted on a pure sine tone for the peaking circuits. This has been *greatly* reduced if not eliminated by fixing a typo in two of the equations.
2017-06-06OSC: add optional paging to sends in select.Len Ovens
2017-06-06Fix a-EQ when parameter changes are very slowNil Geisweiller
If the parameters change too slowly the filter may never get updated. Indeed, in spite of v_f0, v_g or v_bw being updated, set_params may never be called, thus v_filter never updated.
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 const-ness: Evaluating a curve does not change it.Robin Gareus
Note that the ControlList's lock and cache are already mutable.
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-31OSC: Some surfaces may use float for ssid. Accept this too.Len Ovens
2017-05-31OSC: check controllable exists before usingLen Ovens
2017-05-30Add Lua bindings for VCAs and VCAManagerRobin 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-29NO-OP: whitespaceRobin Gareus
2017-05-29duplicate routes start off unsoloed to avoid issues related to upstream / ↵Daniel Sheeler
downstream buses
2017-05-29Allow export presets for 176.4KHz -- "Ardour6: music for bats"Robin Gareus
2017-05-26Use string concatenation and PBD::to_string in EventTypeMap::to_symbol()Tim Mayberry
Avoid using PBD::string_compose for serialization as correct behaviour depends on the setting of the global C++ locale.
2017-05-26Remove normalization of property names from libpbd xml codeTim Mayberry
It may have been OK to add this code temporarily at this low level, but as it was introduced in 2008, this change is made with the assumption that any Sessions that were affected have been re-saved since then with corrected property names and that "normalization" is no longer necessary. Timing results before changes: XMLTest::testPerfMediumXMLDocumentTiming Create : Count: 10 Min: 30375 Max: 48253 Total: 431727 Avg: 43172 (43 msecs) Write : Count: 10 Min: 42553 Max: 49163 Total: 453353 Avg: 45335 (45 msecs) Read : Count: 10 Min: 70307 Max: 75987 Total: 734923 Avg: 73492 (73 msecs) XMLTest::testPerfLargeXMLDocumentTiming Create : Count: 10 Min: 154486 Max: 307856 Total: 2678989 Avg: 267898 (267 msecs) Write : Count: 10 Min: 304273 Max: 343274 Total: 3169158 Avg: 316915 (316 msecs) Read : Count: 10 Min: 496920 Max: 541394 Total: 5260410 Avg: 526041 (526 msecs) Timing results after changes: XMLTest::testPerfMediumXMLDocumentTiming Create : Count: 10 Min: 21437 Max: 39749 Total: 348622 Avg: 34862 (34 msecs) Write : Count: 10 Min: 42320 Max: 49989 Total: 446135 Avg: 44613 (44 msecs) Read : Count: 10 Min: 63252 Max: 68389 Total: 660841 Avg: 66084 (66 msecs) XMLTest::testPerfLargeXMLDocumentTiming Create : Count: 10 Min: 113458 Max: 263225 Total: 2215595 Avg: 221559 (221 msecs) Write : Count: 10 Min: 305439 Max: 339986 Total: 3150697 Avg: 315069 (315 msecs) Read : Count: 10 Min: 447560 Max: 488121 Total: 4698903 Avg: 469890 (469 msecs)
2017-05-26Use correct property name in generic MIDI surfaceTim Mayberry
Fixes restoring the feedback interval property, but as the mutator/setter method doesn't seem to be used this change should have no affect.
2017-05-26Use correct names when setting MidiTrack propertiesTim Mayberry
These were changed in the XMLProperty ctor and they now match the names used in MidiTrack::set_state()
2017-05-25Always create a deep copy of MIDI regions when copying playlists.Robin Gareus
2017-05-25Implement basic AU parameter-printingRobin Gareus
(don't leave buf uninitialized)
2017-05-25Include ParameterDescriptor in read-only control outputRobin Gareus
2017-05-24OSC: fix return value for successful touchLen Ovens
2017-05-24OSC: Added lpf and hpf controls for freq,enable and slopeLen Ovens