13
0
Commit Graph

24806 Commits

Author SHA1 Message Date
55df5b39bc Prepare removal of redundant get_user/set_user API. 2017-06-21 18:13:41 +02:00
8cd8cb1650 Temporary session-format compatibility (revert before release)
Saving the new ControlList interpolation methods (enum) breaks loading
the session in older version. The session-format version will
need to be increased.

Until then:
 * Fader automation + region gain envelope uses linear fades
 * The automation-line visible in the GUI does not match the actual fade
   (the y-axis is log/exp-scale, the fade is linear)
 * Adding new points on the line is not using the correct initial value
 * Custom changes of interpolation mode are not available

Neither of these issues is a regression.
2017-06-21 18:13:36 +02:00
d85ce60158 Fix VST default value. query once at instantiation time. 2017-06-21 18:13:29 +02:00
7ab15def2b Consolidate ParameterDescriptor settings+ranges 2017-06-21 18:13:26 +02:00
df6655ac68 Add interpolation-mode menu to ATAV. 2017-06-21 18:13:06 +02:00
fd36355e2c Log-scale/relative automation point dragging 2017-06-21 18:13:03 +02:00
1db9ce4c90 update GUI to use new APIs 2017-06-21 18:13:01 +02:00
394bd8f428 Set default interpolation type (for new lanes) 2017-06-21 18:12:58 +02:00
16624f3139 Add API to compute parameter delta, depending on AutomationType 2017-06-21 18:12:55 +02:00
37905d82a6 Centralize Parameter scaling
This exposes an AutomationType dependent abstract version of
inteface_to_internal(), internal_to_interface().
2017-06-21 18:12:45 +02:00
8dcc28c9ad Remove duplicates from ControlList 2017-06-21 18:12:31 +02:00
3d15499cda Clamp values in ControlList 2017-06-21 18:12:29 +02:00
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