summaryrefslogtreecommitdiff
path: root/libs/ardour/amp.cc
AgeCommit message (Collapse)Author
2016-12-03Remove Evoral::MIDIEventDavid Robillard
It is slightly questionable whether type specific methods like velocity() belong on Event at all, these may be better off as free functions. However the code currently uses them as methods in many places, and it seems like a step in the right direction, since, for example, we might some day have events that have a velocity but aren't stored as MIDI messages (e.g. if Ardour uses an internal musical model that is more expressive). In any case, the former inheritance and plethora of sloppy casts is definitely not the right thing.
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-06-25major internal plugin & processor API change:Robin Gareus
Pass current (latency compensated) cycle times to plugin. This fixes time-reporting to plugins and also fixes automation and when bouncing (the session->transport* is not valid) etc.
2016-06-21always run amp/trim LPFRobin Gareus
This fixes "clicks" when switching fader automation from "manual" to "play/touch" while the transport is rolling.
2016-05-31implementation side of Controllable::get_user_string() with const argPaul Davis
2016-05-31probably get the design of VCAs basically correct: use a per-master ratio modelPaul Davis
See comments in the code for a bit more detail
2016-05-31vca design: gain controls cannot silently "merge" the master(s) value into ↵Paul Davis
their own
2016-01-25change exposed type of various objects' gain controls; remove Amp::gain() as ↵Paul Davis
a shortcut
2016-01-18working version of new gain control designPaul Davis
2016-01-18move Amp::GainControl out into its own source module and out of AmpPaul Davis
2016-01-18change ownership of the AutomationControl used by Amp.Paul Davis
It used to be owned by Amp. Now it is owned by Amp's owner
2016-01-02change Controllable::set_value() API to include grouped control consideration.Paul Davis
This also removes Route::group_gain_control() and associated machinery. Not yet tested with Mackie or other surfaces. More work to done to start using the group capabilities, and also potentially to add or derive more controls as RouteAutomationControls
2015-12-27proper display name for Monitor ProcessorRobin Gareus
2015-10-21Add AutomationControl::set_value_unchecked() and ↵Paul Davis
AutomationControl::writable() and use them. Classes derived from AutomationControl now check ::writable() in their ::set_value() methods to ensure that they do not attempt to overwrite data sent to them while automation playback is underway.
2015-09-21processor-box: explicitly check for "Amp" (Fader)Robin Gareus
2015-09-16Revert "add an Amp to Delivery, remove it from Send, make use of this in ↵Paul Davis
various ::run() methods" This reverts commit 601a34521c2ce1d0167ed2f3c66f2fa6eeeb6b8e.
2015-09-15add an Amp to Delivery, remove it from Send, make use of this in various ↵Paul Davis
::run() methods Delivery::_amp now will handle monitor-related delicks assuming the Session::config.get_use_monitor_fades() is true.
2015-05-27fader: start muted, ramp up/interpolate to targetRobin Gareus
2015-04-26wrap midi negative gain for midi-velocityRobin Gareus
ignore polarity invert, scale_velocity() otherwise claps the factor to zero.
2015-04-26relax gain LPF to 25Hz.Robin Gareus
2015-04-26update amp for negative (polarity-invert) gainRobin Gareus
fixes monitor-section “inv”
2015-04-25midi velocity [fader] automationRobin Gareus
2015-04-25Amp: allow to disable midi velocityRobin Gareus
2015-04-25prepare trim automationRobin Gareus
2015-04-24Amp control: power-scale (fader) and dB-scale (knob)Robin Gareus
2015-04-22Initial Gain Coefficient tweaksBen Loftis
1) Disambiguate 1.0 to GAIN_COEFF_UNITY, and 0.0 to GAIN_COEFF_ZERO 2) Add GAIN_COEFF_SMALL which replaces SMALL_SIGNAL (-140dB) 3) GAIN_COEFF_SMALL can used to avoid interpolating towards -inf on a db scale 4) GAIN_COEFF_SMALL is used to detect very small (denormal?) gains and memset to zero
2015-04-07linear declickRobin Gareus
2015-04-07low-pass filter gain-fader.Robin Gareus
fixes various fader zipper noise issues. It voids sample accuate fader automation (the fader-gain is low-pass filtered at 10Hz). Yet all musical purposes this makes a lot more sense than sample accuracy anyway.
2015-04-05децибелRobin Gareus
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-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.
2014-07-18tweaks for the monitor section. refactoring of some buttons, using new ↵Ben Loftis
ArdourKnob instead of VolumeController. New ArdourDisplay shows a controllables user value, and provides support for preset values (hardcoded at present). Further refactoring to come, so that ArdourWidgets are derived from a common class. Controllable now has more responsibility for scaling between internal, user, and interface (knob percent) values. This also needs more refactoring and might have some unintended consequences. tested with audio and nothing seems amiss, yet.
2014-05-26apply gain automation on bounce - fixes 5887Robin Gareus
2014-02-19clear up some stupid thinking in Amp regarding the way the underlying ↵Paul Davis
AutomationControl/Controllable gets set when Amp::set_gain() is called
2013-08-08rework MIDI [processor|plugin] chainRobin Gareus
* forward midi-data around plugins that have no MIDI-out * allow to insert plugins with no MIDI-input at a point with one MIDI-channel This works because excess ports (both plugin and route) remain unconnected and use scratch-buffers. Tested with LV2, LXVST and LADSPA. (AU plugins with variable in/out retain the old behavior, no bypass) fixes http://tracker.ardour.org/view.php?id=5630
2012-11-14use const static member instead of a magic numberPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13500 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-13revert to a 0..2 scale for MIDI velocity control, so that we can increase ↵Paul Davis
MIDI note velocities as well as deccrease them (note: this will make the use of MIDI CC #7 a bit more complex) git-svn-id: svn://localhost/ardour2/branches/3.0@13483 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-13change handling of MIDI gain so that we present a linear fader spanning ↵Paul Davis
0..127. this is based on the realization that we actually have no idea what the MIDI receiver will do with velocity and/or CC #7 values, and so trying to pretend that we can provide some kind of dB value in the display or the behaviour of the fader is completely wrong; ALSO: fix keyboard entry of fader levels for non EN locales (#5027) git-svn-id: svn://localhost/ardour2/branches/3.0@13480 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-25convert from Glib:: to Glib::Threads for all thread-related APIPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-14fix up part of the remaining details with automation, so that touch/write ↵Paul Davis
over-writes work correctly git-svn-id: svn://localhost/ardour2/branches/3.0@13041 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-11Make send automation work (#4734).Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12650 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24Remove over 500 unnecessary includes (including 54 of session.h).David Robillard
It's slightly possible that this causes trivial build failures on different configurations, but otherwise shouldn't cause any problems (i.e. no actual changes other than include/naming/namespace stuff). I deliberately avoided removing libardour-config.h since this can mysteriously break things, though a few of those do seem to be unnecessary. This commit only targets includes of ardour/*.h. There is also a very large number of unnecessary includes of stuff in gtk2_ardour; tackling that should also give a big improvement in build time when things are modified. git-svn-id: svn://localhost/ardour2/branches/3.0@12420 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-13convert rec-enable control for a Track from PBD::COntrollable to ↵Paul Davis
ARDOUR::AutomatioNControl, and use in MCP git-svn-id: svn://localhost/ardour2/branches/3.0@11956 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-27Display amp automation in dB using a logarithmic fader.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11535 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-21Reinstate user Controllable values, as they are neededCarl Hetherington
for gain (which I forgot about). git-svn-id: svn://localhost/ardour2/branches/3.0@11293 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-21Add a send amp's gain control as a send controllable.Carl Hetherington
Tweak AutomationControl now that PBD::Controllable has a default implementation of user_to_ui and ui_to_user. Add correct implementations of these methods to Amp::GainControl. Hence allow SendProcessorEntry to use the generic mini-fader-adding code from ProcessorEntry. git-svn-id: svn://localhost/ardour2/branches/3.0@11292 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-19much ado about nothing when it comes to gain controlPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9748 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01Fix broken whitespace. I'd apologize for the compile times if it was my ↵David Robillard
fault :D git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-07manage Route::_have_internal_generator more accurately and never flush ↵Paul Davis
processors if there is on; correctly manage declicking so that only *TRACKS* without internal generators will declick at transport state transitions (fixes horrible click at transport stop in some configurations git-svn-id: svn://localhost/ardour2/branches/3.0@9100 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-07make sure that fade in and fade out curves reach their target (1.0 and 0.0) ↵Paul Davis
rather than 1 step away from their target git-svn-id: svn://localhost/ardour2/branches/3.0@9086 d708f5d6-7413-0410-9779-e7cbd77b26cf