summaryrefslogtreecommitdiff
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-10NoteCreateDrag - Fix incorrect note length due to use of region-relative ↵nick_m
position
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-09Update GUI, drop Automatable::value_as_string() APIRobin Gareus
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-09Prepare AutomationTimeAxisView for non-route (VCA) automationRobin Gareus
2017-06-09a-EQ: Revert one of the previous changesDamien Zammit
One of the previous changes was not a typo, revert it.
2017-06-09Fix incorrect positioning of tempo line subdivisions if first meter is non-zeronick_m
Commit cebefe6 assumed that frame 0 was the music origin. Silly me.
2017-06-09Add a method for obtaining the frame position of beat/whatever zeronick_m
2017-06-08Fix crash when showing plugin-UI in safe-modeRobin Gareus
2017-06-09TempoLines deletes its bfc on destructionnick_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-09Delete tempo lines when session goes awaynick_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-08Fix rec-box w/count-inRobin Gareus
Since 478f26b2ad, transport_rolling() is only true when actually rolling. Count-in is a no-roll process (don't move playhead, no playhead UI position interpolation 55b8b448). But transport isn't exactly stopped either (preparing to roll), so during count-in transport_stopped() == transport_rolling() == false.
2017-06-08Update LuaDialog example script to include File/Folder selectionRobin Gareus
2017-06-08Add a file-chooser LuaDialog WidgetRobin Gareus
2017-06-07cut buffer must not mess around with libardour selectionPaul Davis
Fixes range mode selection/cut/copy that would previously clear track selection
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-03add route dialog now has "Add" and "Add and Close" buttons. "Add" keeps ↵Daniel Sheeler
dialog open so user can add multiple templates.
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-06-02Import Dialog is Window. Dialog Esc behavior needs to be emulated.Robin Gareus
2017-06-01Remove "Close" button from import-dialog (prefer WM close button)Robin Gareus
2017-05-31if actively recording, prevent interaction between mouse and audio clock ↵Paul Davis
widget(s)
2017-05-31OSC: Some surfaces may use float for ssid. Accept this too.Len Ovens