summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
AgeCommit message (Collapse)Author
2015-04-21merge monitor_section branchBen Loftis
2015-04-07Revert "prevent double declicks (click after RecStop)"Robin Gareus
This reverts commit 6ba555c2f57fb793431aef0cedfbacf11d643a2b. which does not yet take monitoring states into account. Ideally the case handled here should not happen in the first place, It should be fixed in session_transport transport_sub_state.
2015-04-07prevent double declicks (click after RecStop)Robin Gareus
If there's port-latency > period-size, there is a split cycle with (this_event->action_frame - _transport_frame). Yet Session::check_declick_out() keeps PendingDeclickOut if StopPendingCapture is set. The route declick’ed twice: Once with the period-size and one with the remaining frames, which resulted in a click.
2015-03-21fix --disable-plugins (bypass ‘em all)Robin Gareus
2015-03-14ignore master & monitor when “solo all [in group]”Robin Gareus
should fix #6193
2015-03-05fix import of v2 session redirects: active or inactiveBen Loftis
2015-02-27potential fix for the_CLA reported problem: v2 fader values are lost if you ↵Ben Loftis
are using a non-US locale
2014-12-18Mute automation via normal mute button.David Robillard
2014-12-05if a Route's processor lock cannot be taken, fill buffers with silence ↵Paul Davis
(causing click) rather than abort()
2014-11-30Save mute automation state.David Robillard
2014-11-29Somewhat working gain automation.David Robillard
This probably isn't correct in several ways, but it works more than it did, so I figure it's push worthy. Still not working: * Saving mute automation list * Dragged control points are not snapped to model restrictions (boolean, in this case, but general problem) * Line goes funny if you record mute automation (as opposed to drawing it which works)
2014-11-13Don't iterate in 'ARDOUR::Route::get_control()' unless a ReaderLock was ↵John Emmas
successfully obtained
2014-11-13Make sure we can't execute 'ARDOUR::Route::meter()' unless a ReaderLock was ↵John Emmas
successfully obtained
2014-11-02Automation of LV2 plugin properties.David Robillard
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-10-15allow internal generators to make noise, even if we are not rolling, and ↵Ben Loftis
using auto-input
2014-07-04disable latency-compensation preparations for nowRobin Gareus
Don't add delaylines to tracks by default just yet, currently only sends are aligned with delaylines
2014-07-01remove debug outputPaul Davis
2014-07-01add partial support for mute automation (playback does not work, data is not ↵Paul Davis
recorded in the session)
2014-06-26implement track numberingRobin Gareus
2014-06-26allow to set custom file name for each diststreamRobin Gareus
2014-06-24fix f6aaa16 (boost shared pointer)Robin Gareus
2014-06-23en/disable internal send+returns with tracks en/disable.Robin Gareus
2014-06-22Do not allow to de/activate a track while the transport is rolling.Robin Gareus
roll_delay and latency are only re-calculated when the transport is stopped. de/activating a track is also not RT-safe.
2014-06-15offset automation by latencyRobin Gareus
2014-06-15offset automation by processor latency for bouncing/freezingRobin Gareus
the same remains to be done for general route processing
2014-06-11align internal sends using delaylinesRobin Gareus
2014-06-11basic integration of delaylines (still un-nused)Robin Gareus
2014-06-04re-work bounce/freeze. Freezer stops at first active delivery.Robin Gareus
amend to 8f52bf7d9f
2014-05-26apply gain automation on bounce - fixes 5887Robin Gareus
2014-05-25ignore sends when bouncing w/processing - only break on inserts.Robin Gareus
2014-05-25bounce to target number of channelsRobin Gareus
2014-05-25compensate for processor latency during bounceRobin Gareus
2014-03-21fix thinkoPaul Davis
2014-02-04merge (w/fix) with masterPaul Davis
2014-02-03fix processor_lockRobin Gareus
Only WriterLock requires to hold process_lock() as well otherwise Route::process_output_buffers() may deadlock
2014-01-23fix merge conflict with masterPaul Davis
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-19visibility macros and flush() added to SrcFileSource; merge with masterPaul Davis
2014-01-17remove cruftRobin Gareus
2014-01-16Merge branch 'master' into cairocanvasPaul Davis
2014-01-16allow auditioning via the monitor section to work.Paul Davis
Ideally, we would feed the monitor section via an internal (aux) send/return, but this is an improvement over what we had before
2014-01-15cont'd backend work on panner-linkingRobin Gareus
2014-01-14merge (with conflict fixes) with master (even against rgareus' recommendation)Paul Davis
2014-01-13first stab at send+route panner linkRobin Gareus
2014-01-13independent panning for external sendsRobin Gareus
2014-01-13add independent panner for internal (Aux) sendsRobin Gareus
2014-01-13ignore additional channels for AFL, PFL:Robin Gareus
If the monitor-section has fewer-channels than the solo-listen point: ignore additional channels.
2014-01-13fix deadlock when removing monitoring-sectionRobin Gareus
2014-01-13fix processor -> reconfigure I/O || process concurrencyRobin Gareus
Add a ReaderLock to Route::process_output_buffers(). But process_output_buffers() is always called with processor-lock held. To avoid deadlocks, a processor WriterLock must always imply a process-lock (IFF reconfigure-I/O is called with _processor_lock). Otherwise: e.g. * add_processor() -> takes processor-lock. set up and activate processor. * simult. audio-engine process, process-lock -> call process_output_buffers() -> wait for processor-lock * add_processor() continues -> calls reconfigure-io -> take process-lock -> deadlock.
2014-01-13take process lock when adding processors:Robin Gareus
fixes possible crash if a processor modifies port-count 1. a processor is inserted and activated with processor-lock held 2. only after that the process_lock() is taken, configure_processors() is called which reconfigures-IO BUT if the processor that is inserted changes the channel count AND audio is processed before IOs are reconfigured -> possible crash (invalid port-buffers) To reproduce: Bus1 (2in, 3out), Bus2 (2in, 3out) - add a send from Bus1 to Bus2, - then add a processor to Bus1, just before the send which increases the channel-count to 4 -> occasional crash or assert.