13
0
Commit Graph

24744 Commits

Author SHA1 Message Date
d6c47def09 Implement additional ControlList interpolation methods.
The Control and ControlList uses the raw value (eg. coefficient for gain,
Hz for frequencies) and those Lists are stored in existing sessions.

In the vast majority of cases interpolating automation values using exp/log
scale for dB, freq makes more sense -- it's also what the fader does.

Adding additional interpolation methods is future proof (we might at allow
to even add different methods per automation point (to the next) like other
DAWs do.

Currently it's mainly used in preparation for consistent GUI automation-
lanes. Between 2 points there's always a visual straight line.
2017-06-21 18:12:26 +02:00
36e32e5641 Remove separate ControlList min/max/default, use ParameterDescriptor. 2017-06-21 18:12:23 +02:00
cb48bb0e1c remove min/max unbound -- LADSPA special case.
This explicit case should never have existed in the first place.

Plugins can always implicitly exceed the range and are expected to
cope with out-of-range values (e.g. meters when fed with a peaking signal
may return an out-of-bounds value)
2017-06-21 18:12:20 +02:00
555fcb89e5 GUI: prepare for API changes
remove use of
- unbound_min/max
- list->default_value and min/max_y
2017-06-21 18:12:16 +02:00
fe83e1e2ed Move logarithmic property into Evoral, add rangesteps
This allows complete mathematical description of a given parameter
and parameter values.

Semantic type abstraction is reserved for Ardour::ParameterDescriptor.
2017-06-21 18:12:14 +02:00
2627cd414c Remove old API 2017-06-21 18:12:11 +02:00
ea1f27162b Fix/update maximum gain computation 2017-06-21 18:12:07 +02:00
567c0a8f53 Switch to PBD control-math and prefer Controllable API
Note: Control-surfaces should always use interface_to_internal()
and internal_to_interface().
2017-06-21 18:12:04 +02:00
e91b80eb85 Centralize control-parameter math functions in libpbd.
Functions formerly in ardour/util.h and some more functions.
The main motivation is libevoral which can use libpbd but not libardour.

The eventual goal is to consolidate various different interpolation,
scaling and deflection methods.
2017-06-21 18:12:01 +02:00
9f37396315 Format boolean parameter values 2017-06-21 18:11:43 +02:00
86dea93299 Tweak value-as-string dB and float decimals printing 2017-06-21 13:16:58 +02:00
7c94499aec Remove Cruft -- AutomationStyle never did anything.
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-21 13:16:27 +02:00
31c6f66d9b Fix duplicate Gain+Trim AutomationLists in session file. 2017-06-21 13:15:34 +02:00
fd3bd35203 OSC: value not initialized soon enough 2017-06-20 13:11:59 -07:00
973d58e8f9 Add option add automation-lane points on the line -- #7397 2017-06-18 22:13:02 +02:00
c2cba9e57c 'ARDOUR::Stripable::Sorter()' needs to be exportable (since it gets used outside of libardour) 2017-06-18 12:05:48 +01:00
3595eb75b9 Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour) 2017-06-18 12:02:44 +01:00
Hiroki Inagaki
c0611fb55e Update Japanese translation, including a fix for an issue that translation for a certain string leads failure to launch the application on Windows 10 2017-06-17 22:15:41 +02:00
506b478fe7 NO-OP, just cleanup & scope 2017-06-17 18:29:26 +02:00
fec5aec9a0 Fix TrackView selection after re-order.
because reordering a TreeView [pragmatically] does not retain selection.
2017-06-17 18:29:23 +02:00
ea1669aa00 Remove delayed selection which causes duplicate selection actifacts.
The first click to select a new stripable may actually un-select strip.
counting and ignoring this leads to strange behavior.
Also when the selection_counter hit zero, VCAs were not ignored.

whatever this workaround was good for, it's more trouble than it's worth.
As side-effect this also improves DnD + Gtk::Entry behavior with stock GTK.
2017-06-17 18:29:19 +02:00
cfe63b7b15 Simplify route-display TreeView.
There's no TargetEntry receiver for the custom DnDTreeView<Route> object.
We can just use a default Gtk::TreeView.
2017-06-17 18:29:15 +02:00
af2ee3c856 Don't de-select tracks when order changes 2017-06-17 16:14:28 +02:00
8fa60eaf05 Ignore Selection::set() without actual changes 2017-06-17 16:11:24 +02:00
f77540120c Remove Cruft 2017-06-17 15:52:03 +02:00
c02a3413e1 Move implementation out of header file 2017-06-17 15:52:00 +02:00
f80958e168 Add Lua bindings to query all stripables 2017-06-17 04:37:14 +02:00
1e97c09eed Fix adding tracks/busses at the top 2017-06-17 04:37:10 +02:00
591d75f1d2 Fix stripable order for new strips & master-order 2017-06-17 04:37:05 +02:00
237aa3e3a0 Remove Cruft 2017-06-17 04:36:55 +02:00
d88da33949 NO-OP: whitespace 2017-06-17 04:36:50 +02:00
1d28665f86 Use Stripable::Sorter in GUI consistently. 2017-06-17 04:36:39 +02:00
140c511d2c Add method to ensure Stripable sort constrains (for UI use) 2017-06-17 04:36:32 +02:00
10db824461 Use Stripable::Sorter in libs 2017-06-17 04:36:28 +02:00
867a0f5228 Move StripableSorter into libardour 2017-06-17 04:36:22 +02:00
921bdd4a51 Fix engine-state history.
Remove old code to remove duplicate engine state which was used to
work-around a bug since 3.x saved duplicates but broke with 4.x separate
i/o devices.

Add a new variant to purge old unused states per backend (after sorting).
2017-06-16 22:32:56 +02:00
0331a9a233 OSC: plugin feedback mathfix - 0 param (meter) checked for. 2017-06-16 11:33:02 -07:00
af6941ac34 Prepare VCA Automation Lanes -- refactor TAV
* add an abstract StripableTimeAxisView (Route TAV + VCA TAV)
* move common strip-methods into STAV
* Add Automation Lanes to VCA TAV
* Allow ATAV without Automatable for VCA Controls
2017-06-15 16:06:32 +02:00
5957a4619a Remove another explicit Close button. 2017-06-15 16:06:05 +02:00
9c629c0c76 Fix region-gain offset when separating ranges 2017-06-14 22:47:32 +02:00
34abc2dc2d Squelch error message when toggling master-bus visibility. 2017-06-14 21:23:12 +02:00
7c84deb2c4 OSC: Add send/plugin page values to GUI 2017-06-14 10:28:45 -07:00
d76e6d84c7 OSC: save and restore send/plugin page size. 2017-06-14 08:18:43 -07:00
910e93470f Fix range-separate for musically-locked MIDI regions
Cloning a region retains the region-lock style.
Playlist partitioning set the region start-property only (audio-time).
If a MIDI region is locked to musical-time, Properties::start is ignored
and overwritten by Properties::start_beats.
2017-06-14 15:21:19 +02:00
22bddf5434 Special-case VCA at 0 (-inf dB), force gain slaves to -inf dB 2017-06-14 15:21:16 +02:00
e0a1c7690a Merge event control lists when disconnecting a master-ctrl 2017-06-14 02:40:09 +02:00
8b917c4c16 Add infrastructure to merge ControlLists 2017-06-14 02:40:09 +02:00
9c0f6ea948 OSC: Allow set_surface to set send and plugin page sizes. 2017-06-13 16:56:10 -07:00
8e6f71b8c1 Apply master-value to automation on disconnect. 2017-06-13 20:57:37 +02:00
c1912b6d51 Write inverse master automation.
* 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 18:09:59 +02:00