Tim Mayberry
1170bd9043
Remove LocaleGuards from SVAModifier and HSV classes
...
float <=> string conversion now done using PBD::to_string/string_to so
LocaleGuards are no longer needed.
2017-06-22 10:48:38 +10:00
Tim Mayberry
5103663f13
Remove LocaleGuard from ARDOUR::PannerShell
...
All Panner implementations using PBD::to_string/string_to for float <=> string
conversion and no longer require a LocaleGuard.
2017-06-22 10:48:38 +10:00
Tim Mayberry
e4b5a84211
Remove LocaleGuard from ARDOUR::Pannable class
...
string <=> float conversions are using PBD::to_string/string_to and no longer
require a LocaleGuard
2017-06-22 10:48:38 +10:00
Tim Mayberry
00803ca69b
Remove LocaleGuards from ARDOUR::Tempo class
...
All float <=> string conversions are done for PBD::string_to/to_string and no
longer require a LocaleGuard.
2017-06-22 10:48:38 +10:00
Tim Mayberry
8d039d3211
Remove LocaleGuards from ARDOUR::Speakers class
...
float <=> string conversions are now using PBD::to_string/string_to via XMLNode
for locale independent conversion and these guards are not necessary.
2017-06-22 10:48:38 +10:00
Tim Mayberry
f597711428
Remove LocaleGuards from ARDOUR::Session transport related methods
...
ARDOUR::AutomationList is no longer using LocaleGuards as float <=> string
conversion is using PBD::to_string/string_to so the reason for adding these
guards as per comment no longer applies.
2017-06-22 10:48:38 +10:00
Tim Mayberry
5c5cfac4a3
Remove LocaleGuard from Session::load_options
...
PBD::ConfigVariable uses PBD::to_string/string_to methods so this LocaleGuard
is no longer necessary.
2017-06-22 10:48:38 +10:00
Tim Mayberry
58371af68a
Remove LocaleGuards from SessionConfiguration class
...
ConfigurationVariable is now using PBD::to_string/string_to for float <=>
string conversions so LocaleGuard is no longer necessary.
2017-06-22 10:48:38 +10:00
Tim Mayberry
0e3a132097
Remove LocaleGuard from Session::immediately_post_engine method
...
I think this was only to protect the float <=> string conversion in
Session::setup_click_state related to click gain which is now using
PBD::to_string/string_to and so no longer necessary.
2017-06-22 10:48:38 +10:00
Tim Mayberry
5694d877aa
Remove LocaleGuard from ARDOUR::Route class
...
Route and all members are now using locale independent string <=> float
conversions.
2017-06-22 10:48:38 +10:00
Tim Mayberry
f8abdd9cdf
Remove LocaleGuard from ARDOUR::MonitorProcessor state method
...
All float <=> string conversions are done using PBD::to_string/string_to via
XMLNode and LocaleGuard is not necessary.
2017-06-22 10:48:38 +10:00
Tim Mayberry
1a39da25e4
Remove LocaleGuard from ARDOUR::RCConfiguration class
...
This presumes that all ControlProtocol implementations either use
PBD::to_string/string_to for float <=> string conversions, which is now the
case.
2017-06-22 10:48:38 +10:00
Tim Mayberry
579d856cc7
Remove LocaleGuards from LuaProc class
...
All float <=> string conversions are done using PBD::to_string/string_to via
XMLNode so no LocaleGuard is necessary.
2017-06-22 10:48:38 +10:00
Tim Mayberry
3c59d38f1c
Remove LocaleGuard from ARDOUR::MidiTrack class
...
There are no float <=> string conversions and they are all now performed using
PBD::to_string/string_to via XMLNode
2017-06-22 10:48:38 +10:00
Tim Mayberry
482be1410b
Remove LocaleGuard from ARDOUR::MidiDiskstream class
...
There are no float <=> string conversions in MidiDiskstream state methods,
these guards must have been to protect conversions in Diskstream state methods
which are now using PBD::to_string/string_to via XMLNode so no longer need
guarding.
2017-06-22 10:48:38 +10:00
Tim Mayberry
d5cf19d606
Remove LocaleGuards from ARDOUR::ExportFormatSpecification state methods
...
All float <=> string conversions are performed by PBD::to_string/string_to via
XMLNode.
2017-06-22 10:48:38 +10:00
Tim Mayberry
810c6e7833
Remove LocaleGuard from ARDOUR::Diskstream state method
...
The float conversion in Diskstream::get_state is now done using
PBD::to_string/string_to via XMLNode::set_property API.
There was no explicit LocaleGuard protecting the string -> float conversion to
remove so it was probably protected by the caller.
2017-06-22 10:48:38 +10:00
Tim Mayberry
9954b476cb
Remove LocaleGuard from ARDOUR::AutomationList class
...
All float conversions are using PBD::to_string/string_to via
XMLNode::get/set_property API
2017-06-22 10:48:38 +10:00
Tim Mayberry
cfd78ab07b
Remove LocaleGuard from ARDOUR::Region class
...
Property conversions <=> string use PBD::to_string/string_to so float
conversions don't need to be protected by a LocaleGuard
2017-06-22 10:48:38 +10:00
Tim Mayberry
ffe0bbe0ab
Remove LocaleGuard from ARDOUR::AudioRegion state methods
...
float <=> string conversions are performed using PBD::to_string/string_to via
XMLNode
2017-06-22 10:48:38 +10:00
Tim Mayberry
11b4da078a
Remove LocaleGuard from ARDOUR::AudioTrack class
...
The gain property float <=> string conversion is now performed using
PBD::to_string/string_to via XMLNode
2017-06-22 10:48:38 +10:00
Tim Mayberry
2e4277ad7b
Remove LocaleGuard from AudioFileSource::get_state
...
Not necessary when using XMLNode::set_property API
2017-06-22 10:48:38 +10:00
Tim Mayberry
47b1f0869b
Remove LocaleGuard from ARDOUR::AudioDiskstream state methods
...
There are no float <=> string conversions and they are all now performed using
PBD::to_string/string_to via XMLNode
2017-06-22 10:48:38 +10:00
Tim Mayberry
eb5161b601
Remove LocaleGuard from ARDOUR::IO class state methods
...
There are no float <=> string conversions that require a LocaleGuard and all
conversions are performed using PBD::to_string/string_to via XMLNode
2017-06-22 10:48:38 +10:00
Tim Mayberry
6ab970efa3
Remove LocaleGuard from PBD::Controllable state methods
...
These are no longer necessary as float <=> string conversion is handled by
locale independent PBD::to_string/string_to via XMLNode::get/set_property
2017-06-22 10:48:38 +10:00
Len Ovens
3b718c60de
OSC: Accept mixed parameter types for touch
2017-06-21 15:18:56 -07:00
Paul Davis
940be0cbb9
compilation requires <stdint.h>
2017-06-21 14:19:21 -04:00
Robin Gareus
ed4909bd59
Some ToDo notes about AutomationTypes
2017-06-21 18:14:33 +02:00
Robin Gareus
ce059e2d66
Remove internal_to_user/user_to_internal API
...
Also GainControl can just use the AutomationControl's implementation of
get_user_string()
2017-06-21 18:13:46 +02:00
Robin Gareus
55df5b39bc
Prepare removal of redundant get_user/set_user API.
2017-06-21 18:13:41 +02:00
Robin Gareus
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
Robin Gareus
d85ce60158
Fix VST default value. query once at instantiation time.
2017-06-21 18:13:29 +02:00
Robin Gareus
7ab15def2b
Consolidate ParameterDescriptor settings+ranges
2017-06-21 18:13:26 +02:00
Robin Gareus
df6655ac68
Add interpolation-mode menu to ATAV.
2017-06-21 18:13:06 +02:00
Robin Gareus
fd36355e2c
Log-scale/relative automation point dragging
2017-06-21 18:13:03 +02:00
Robin Gareus
1db9ce4c90
update GUI to use new APIs
2017-06-21 18:13:01 +02:00
Robin Gareus
394bd8f428
Set default interpolation type (for new lanes)
2017-06-21 18:12:58 +02:00
Robin Gareus
16624f3139
Add API to compute parameter delta, depending on AutomationType
2017-06-21 18:12:55 +02:00
Robin Gareus
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
Robin Gareus
8dcc28c9ad
Remove duplicates from ControlList
2017-06-21 18:12:31 +02:00
Robin Gareus
3d15499cda
Clamp values in ControlList
2017-06-21 18:12:29 +02:00
Robin Gareus
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
Robin Gareus
36e32e5641
Remove separate ControlList min/max/default, use ParameterDescriptor.
2017-06-21 18:12:23 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
2627cd414c
Remove old API
2017-06-21 18:12:11 +02:00
Robin Gareus
ea1f27162b
Fix/update maximum gain computation
2017-06-21 18:12:07 +02:00
Robin Gareus
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
Robin Gareus
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