Commit Graph

37 Commits

Author SHA1 Message Date
Robin Gareus
93180ceea9 Add Inline Control Port Property
This allows to indicate that a control should by default be displayed
inline in the mixer-strip.

Previously that was hard-coded for and enabled for send-level
controls only.
2019-12-14 15:50:56 +01:00
Robin Gareus
d4e023e1cb Make BusSendLevel 1st class citizen (1/2)
Equivalent to Gain and Trim (gain-coefficient, not dB) and use
it for Sends.
2019-12-14 15:06:23 +01:00
Robin Gareus
c663a2d8ef Invert Pan-Azimuth (up means left)
It's a well established convention that pan y-axis automation,
or vertical uses (top) +1 for left.

This special cases rotary knobs (and horizontal sliders) to retain
a clockwise movement (or movement to the right) for panning to the
right.
2019-10-07 05:07:55 +02:00
Robin Gareus
3ae46256c8 Properly initialize BusSendEnable min/max 2019-09-22 04:15:36 +02:00
Robin Gareus
a22f918d9d Update libardour GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
Robin Gareus
2f91bdfa53 NO-OP: <tab> after <space> fixes in libs 2019-04-13 19:19:29 +02:00
Robin Gareus
9cf9833a93 Fix log-scale rangesteps and log-control numeric spinboxes 2018-07-21 17:19:49 +02:00
Robin Gareus
14517e13ec Fix and tweak LV2:RangeStep
Explicit cast to float (rangestep is unsigned int) when calculating
interface steps.
Also prefer to round to nearest value-point (rather than round-down).
2018-07-18 10:57:57 +02:00
Robin Gareus
a9c8a25fc4 prefer floor() over round(), this avoids "-0"
GUI interface values are always in the range 0..1 so there's no abiguity
with trunc()
2017-09-23 18:59:39 +02:00
Robin Gareus
73ad5c97f2 Consistently set parameter steps.
And it's actually mostly moot. interface_to_internal maps
any range to 0..1.
The GUI could just hardcode min/max 0, 1 and steps 1/30, 1/300.
Except for controls that have explicit range-steps & ctrl surfaces.
2017-07-06 16:32:27 +02:00
Robin Gareus
135ffdcf6b Work-around for plugins with log-scale parameter 0..SR/2 2017-07-04 20:09:11 +02:00
Robin Gareus
7ed775a716 Add API to step though parameter enumerations 2017-07-02 21:04:22 +02:00
Robin Gareus
1cbc91788f Don't invert azimuth & elevation display value 2017-06-30 20:01:53 +02:00
Robin Gareus
d34fdb98e3 Improve default parameter display 2017-06-23 17:39:20 +02:00
Robin Gareus
7ab15def2b Consolidate ParameterDescriptor settings+ranges 2017-06-21 18:13:26 +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
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
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
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
Nil Geisweiller
40f3efa3aa Add note name parser to convert to midi note number
Supports i18n, is case and whitespace insensitive for more resilent parsing.
2017-05-14 18:13:07 +02:00
Robin Gareus
78fef4a253 cater for Note translations. e.g. "Ré ♯" UTF-8 2016-10-11 14:09:54 +02:00
Paul Davis
26f1578568 MIDI polyphonic pressure, part 2 2016-08-19 08:32:44 -04:00
Paul Davis
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
Robin Gareus
6b5be3d892 Add a new API to format midi-note-names with translation: Do Re Mi...
This deprecates Evoral::midi_note_name(). we don't maintain i18n
for libevoral.
2016-07-12 23:02:46 +02:00
Robin Gareus
e542e501a0 add support for http://lv2plug.in/ns/ext/port-props/#rangeSteps 2016-07-05 16:21:09 +02:00
Paul Davis
653ae4acd6 universal change in the design of the way Route/Track controls are designed and used. The controls now own their own state, rather than proxy for state in their owners.
Massive changes all over the code to accomodate this. Many things are not finished. Consider this a backup safety commit
2016-05-31 15:30:40 -04:00
Robin Gareus
30497db823 prepare for gcc6 rint() precision degradation
gcc6 returns a float for "rint ((float) val)"
2016-02-22 00:07:21 +01:00
Paul Davis
22ea6423cd don't abuse ScalePoints idea 2016-02-01 15:49:54 -05:00
Paul Davis
9539d0da40 add new automation types to ParameterDescriptor constructor.
This allows it to be used everywhere, as intended
2016-02-01 15:13:59 -05:00
Robin Gareus
d6a5e6fc2e fix some more uninitialized vars 2015-09-07 00:00:44 +02:00
Robin Gareus
fa3896a483 use “1” as small-step for integer controls. 2015-07-13 15:33:46 +02:00
Robin Gareus
6e66b0e9db define Trim Parameter Type. 2015-04-24 22:37:03 +02:00
David Robillard
59af923b77 Fix steps for log controls with wide range. 2014-12-04 21:22:31 -05:00
David Robillard
24727e65be Make gain controls step by roughly 1.0/0.1 dB.
Shoot for roughly 30 steps for all controls.

Always keep sensible step information in ParameterDescriptor and just convert
for the UI.

This is a little weird, but it's less weird than it was before, and works.
2014-12-04 00:30:47 -05:00
David Robillard
25efe5953c Fix range of pan controls.
Set default range to [0,1] since [0,0] is problematic and useless anyway.
2014-12-02 19:02:03 -05:00
David Robillard
767c0238a3 Replace half-baked param metadata with descriptor.
Among other things, this means that automation controls/lists have the actual
min/max/normal/toggled of parameters, and not those inferred from the Parameter
ID, which is not correct for things like plugin parameters.

Pushing things down to the Evoral::ParmeterDescriptor may be useful in the
future to have lists do smarter things based on parameter range, but currently
I have just pushed down the above-mentioned currently used attributes.
2014-12-01 23:35:24 -05:00