summaryrefslogtreecommitdiff
path: root/libs/ardour/parameter_descriptor.cc
AgeCommit message (Collapse)Author
2018-07-21Fix log-scale rangesteps and log-control numeric spinboxesRobin Gareus
2018-07-18Fix and tweak LV2:RangeStepRobin Gareus
Explicit cast to float (rangestep is unsigned int) when calculating interface steps. Also prefer to round to nearest value-point (rather than round-down).
2017-09-23prefer floor() over round(), this avoids "-0"Robin Gareus
GUI interface values are always in the range 0..1 so there's no abiguity with trunc()
2017-07-06Consistently set parameter steps.Robin Gareus
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-04Work-around for plugins with log-scale parameter 0..SR/2Robin Gareus
2017-07-02Add API to step though parameter enumerationsRobin Gareus
2017-06-30Don't invert azimuth & elevation display valueRobin Gareus
2017-06-23Improve default parameter displayRobin Gareus
2017-06-21Consolidate ParameterDescriptor settings+rangesRobin Gareus
2017-06-21Add API to compute parameter delta, depending on AutomationTypeRobin Gareus
2017-06-21Centralize Parameter scalingRobin Gareus
This exposes an AutomationType dependent abstract version of inteface_to_internal(), internal_to_interface().
2017-06-21remove min/max unbound -- LADSPA special case.Robin Gareus
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-21Move logarithmic property into Evoral, add rangestepsRobin Gareus
This allows complete mathematical description of a given parameter and parameter values. Semantic type abstraction is reserved for Ardour::ParameterDescriptor.
2017-06-21Switch to PBD control-math and prefer Controllable APIRobin Gareus
Note: Control-surfaces should always use interface_to_internal() and internal_to_interface().
2017-05-14Add note name parser to convert to midi note numberNil Geisweiller
Supports i18n, is case and whitespace insensitive for more resilent parsing.
2016-10-11cater for Note translations. e.g. "Ré ♯" UTF-8Robin Gareus
2016-08-19MIDI polyphonic pressure, part 2Paul Davis
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-12Add a new API to format midi-note-names with translation: Do Re Mi...Robin Gareus
This deprecates Evoral::midi_note_name(). we don't maintain i18n for libevoral.
2016-07-05add support for http://lv2plug.in/ns/ext/port-props/#rangeStepsRobin Gareus
2016-05-31universal change in the design of the way Route/Track controls are designed ↵Paul Davis
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-02-22prepare for gcc6 rint() precision degradationRobin Gareus
gcc6 returns a float for "rint ((float) val)"
2016-02-01don't abuse ScalePoints ideaPaul Davis
2016-02-01add new automation types to ParameterDescriptor constructor.Paul Davis
This allows it to be used everywhere, as intended
2015-09-07fix some more uninitialized varsRobin Gareus
2015-07-13use “1” as small-step for integer controls.Robin Gareus
2015-04-24define Trim Parameter Type.Robin Gareus
2014-12-04Fix steps for log controls with wide range.David Robillard
2014-12-04Make gain controls step by roughly 1.0/0.1 dB.David Robillard
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-02Fix range of pan controls.David Robillard
Set default range to [0,1] since [0,0] is problematic and useless anyway.
2014-12-01Replace half-baked param metadata with descriptor.David Robillard
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.