summaryrefslogtreecommitdiff
path: root/libs/ardour/send.cc
AgeCommit message (Collapse)Author
2020-03-10NO-OP: use set/clear_flag() API instead of set_flags()Robin Gareus
2020-03-02Refactor send naming (#7905)Robin Gareus
This allows users to rename sends without enforcing a numeric bitslot number. However this prevents a user to to use "send" names that are potentially used for new sends or inserts.
2020-02-29Fix off-by-one, start "Send" names at bitslot 1 (not 2)Robin Gareus
Session::next_*_send_id() starts counting at bit 1. Probably for historical reasons (bit zero = 1).
2020-02-28Convert v5 send state-stateRobin Gareus
2020-02-20Update Control flags of Aux SendsRobin Gareus
This fixes old session-state of sessions saved after 6.0-pre0-3039-g93180ceea9 and before 6.0-pre0-3459-g587fc50059. It's mainly relevant for Mixbus6.0
2020-02-18Fix loading send gain automationRobin Gareus
This cleans up various issues that have been accumulated over the past and fixes bugs introduced in d4e023e1 and e31f5d99. Previously GainControl as saved as part of the Amp, however the automation was saved via Send (is-a Automatable). In d4e023e1cb, the GainControl was changed a "BusSendLevel" parameter, but AutomationList was not updated. This prevented loading existing automation (control parameter was not found).
2019-12-14Add Inline Control Port PropertyRobin Gareus
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-14Make BusSendLevel 1st class citizen (1/2)Robin Gareus
Equivalent to Gain and Trim (gain-coefficient, not dB) and use it for Sends.
2019-09-20Add abstract API for latency compensated sendsRobin Gareus
This is in preparation for MixbusSends that are not derived from Delivery : IOProcessor.
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-02-16Prepare to allow to disable latency-compensationRobin Gareus
Previously "zero custom/user latency" meant "default plugin latency". This is now saved in a separate boolean allowing a user to reduce a processor's latency to zero. This also prepares for a global switch to use zero latency throughout the whole session.
2018-11-12Changed send/deliver role "Personal" to "Foldback" so bus type can matchLen Ovens
2018-10-19Add personal monitor sendsLen Ovens
2018-10-16OSC: personal monitor send hidden follows aux hiddenLen Ovens
2017-10-04Clean up State API:Robin Gareus
* Processor implement get_state(), classes derived from Processor implement protected ::state() -- as documented in processor.h * likewise for Route, Track: make ::state() a protected interface * removal of "full_state", use explicit "template_save" * use RAII/Unwind to skip saving automation-state
2017-09-29Update Send: Include internal 'thru' delay-lineRobin Gareus
This allows to push latency upstream and delay the source in case the destination has a longer latency. Also add a signal to notify the Session in case this happens, intended to queue a latency-recompute.
2017-09-29Aux-Send Latency compensation, part 1: latent sourcesRobin Gareus
2017-09-29Delayline naming -- for debug purposesRobin Gareus
2017-09-29NO-OP: WhitespaceRobin Gareus
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2017-06-29Fix send mono to stereo (or N to M; M > N) sends #7409 part 1/2Robin Gareus
2017-06-09Remove Automatable::value_as_string API from libardourRobin Gareus
Keep Pannable::value_as_string() for now. That is another inconsistency which needs cleaning up. GUI StereoPanner and MonoPanner print the value as they see fit, the panner-plugin provided formatting is not used.
2017-04-19Use XMLNode::get/set_property in ARDOUR::Send classTim Mayberry
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-05-31implementation side of Controllable::get_user_string() with const argPaul Davis
2016-05-07make boost shared_ptr debugging a little easier to turn on/offPaul Davis
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-04-17add self-removing Sends (remove on disconnect)Robin Gareus
The idea is to dynamically add/remove sends for feeding a sidechain and re-use all existing "External Send" infrastructure in particular latency compensation.
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
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
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.
2014-11-14add abort() to non-reached codeRobin Gareus
This cleans up a lot of false-positives in static analysis and also helps compilers to optimize code paths in general. (tagging the fatal stingstream operator as ‘noreturn’ is far less trivial)
2014-06-13send-delayline: proper debug output (and sort includes on the way)Robin Gareus
2014-06-11basic integration of delaylines (still un-nused)Robin Gareus
2014-01-22fix bitslot already in use warningRobin Gareus
in e45151b89c64 route.cc was changed to create internal sends directly with role = Delivery::Aux; and not Delivery::Role (0). This change was motivated to initialize the panner for Aux-sends in the Delivery. Role(0) was used to override bitslot numbering during initial construction of the object when the state is loaded from XML after construction. This patch adds an explicit flag for that. (The previous Role(0) approach only worked for Aux-Sends but not Sends, anyway.)
2014-01-15remove debug codeRobin Gareus
2014-01-13fix output metering for Sends (Aux and External)Robin Gareus
2013-08-02rework 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
2013-03-27Squashed commit of the following:Paul Davis
commit fdbae82077db53add90df7448a06869dac89acc6 Author: Paul Davis <paul@linuxaudiosystems.com> Date: Wed Mar 27 21:45:28 2013 -0400 mammoth changes in basic signal flow, total redesign of MIDI channel filtering and more. commit 59343a8283698e02bc0f622313b29e98f449e4c8 Author: Paul Davis <paul@linuxaudiosystems.com> Date: Wed Mar 27 01:58:53 2013 -0400 initial working version after changes to MIDI channel filtering. may affect metering input too. testing not yet finished this commit merges many deep changes in ardour's internal architecture, combined with a total redesign of how MIDI channel filtering works. data in a track used to flow from JACK port buffers to diskstream's ringbuffers and was then copied from the ringbuffers into a BufferSet for use during Route::process_output_buffers(). The butler thread would handle the movement of data between the ringbuffers and disk. with this commit, data now flows from JACK port buffers into the BufferSet used for Route processing, and is copied from the BufferSet into the diskstream's ringbuffers (the butler thread continues to handle interactions with disk as usual). this change allowed a dramatic consolidation of code and simplification of most aspects of Track/Route::roll() and Track/Route::no_roll(). in particular, see Route::fill_buffers_with_input() which now concisely describes how we move data from JACK port buffers into the BufferSet for all Route types (including Tracks). this work was initially motivated by changing MIDI channel filtering so that we can process capture and playback independently. there is now a very clean pathway for this - see MidiTrack::roll() (NOTE: This needs implementing in the no-roll case too - a TODO item). the channel selector for MIDI tracks has been moved out of the track header and is now accessible via the context menu. more work is likely here, to make it (more) obvious to the user when filtering is going on.
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-03-15better, cleaner fix for copying sends/returns/port inserts via XML statePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@11691 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-13redesign how XML state, bitslots and names get propagated during copying a ↵Paul Davis
send/port insert/return git-svn-id: svn://localhost/ardour2/branches/3.0@11669 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-28Use dBs for send gain automation controls too.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11539 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
2012-01-18fix reload of session with new send naming in place, drop "aux-" prefix from ↵Paul Davis
name of aux sends git-svn-id: svn://localhost/ardour2/branches/3.0@11264 d708f5d6-7413-0410-9779-e7cbd77b26cf