summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
AgeCommit message (Collapse)Author
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-26Add signal for foldback send add or removeLen Ovens
2019-08-23Detect monitor-send by instance, not nameRobin Gareus
2019-08-06foldback may be mono don't set panner typeLen Ovens
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-07-02Mixbus uses K14 (not K20) master meter by default (see also 297ed001d)Robin Gareus
2019-07-02Mixbus/master is always using K20 by defaultRobin Gareus
This only affects the meter-bridge, toolbar and editor track-header (Mixbus' mixer is always using DPM, which is always enabled).
2019-06-09Consolidate meter-type state and APIRobin Gareus
In theory different UIs can show different meter-types, so it can make sense to maintain the type in different places. MeterType is a bit-set and PeakMeter implementation provides for this. However, this is not being used, and the current implementation was rather fragmented, cross-connected signals to keep types in sync, allowed inconsistent meter-types in GUI and backend. MeterType is now kept by meter itself, however it is still saved/restored as part of the Route state. N.B. This change breaks the API, various methods have been renamed for consistency.
2019-05-08NO-OP: Unclutter -DGraphRobin Gareus
2019-04-13NO-OP: whitespaceRobin Gareus
2019-04-12NO-OP: whitespaceRobin Gareus
2019-04-12More Ardour/Mixbus codebase unificationRobin Gareus
Note Presentation-Info bits used by Mixbus to prevent conflicts when sharing sessions.
2019-04-12NO-OP: mixbus codebase unificationRobin Gareus
2019-04-07Fix bounce-process: skip all processors before disk-readerRobin Gareus
2019-04-07Bounce process always uses speed 1.0Robin Gareus
2019-03-25Do not create automation when shifting (insert/remove time)Robin Gareus
This fixes a bug when shift() creates automation for parameters that can not have any automation (hidden parameters, Mixbus PRE). The GUI (RTAV) aborts() when it finds an automation lane for a hidden parameter. This also cleans up shift() operations in general. Empty automation lanes should be left alone, no guard-point at zero should be added.
2019-03-20remove "rename_playlist" argument from Route::set_name_in_state().Paul Davis
We no longer find playlists by name when constructing tracks, so the name of the playlist is not relevant
2019-03-17Remove unneeded calls to configure_processors during session-loadRobin Gareus
Those are superseded by b890cf73ad, which is done after all IOChanges have been processed.
2019-03-15Amend 883ee9c2, setup required invisible processorRobin Gareus
This fixes a potential silent master-bus when re-loading a session ("mains_out" may be skipped).
2019-03-06Allow to call set_state() on existing routesRobin Gareus
Delaylines are not saved in the XML and internal-return is an invisible processor not explicitly re-added when the state is restored. They are [re]inserted during Route::setup_invisible_processors(). So this method need to be called after restoring processor state (indirectly via configure_processors_unlocked as needed). PS. During route creation this call happens explicitly and on session load hookup_io() -> Route::output_change_handler() implicitly sets this up.
2019-03-06Tweak, optimize route setupRobin Gareus
Speed up route creation: add_processor() takes a process-lock and calls configure_processors() but this is done explicitly at the end of init() already.
2019-03-05Fix recursive WriteLock crash due to signal emissionRobin Gareus
Route::processors_changed() signal connects to a same thread session-slot Session::route_processors_changed() which can end up iterating over Routes and Processors to re-calculate latency. This takes a ReadLock after WriteLock, which eventually leads a duplicate unlock and segfault.
2019-02-26Amend d61efbee3 - remove check for MixbusNikolaus Gullotta
2019-02-26Route::save_as_template() needs call state() with true, and add ↵Nikolaus Gullotta
modified-with node to state for template-files
2019-02-22remove PostTransportWorkCurveReallocate (no longer used)Paul Davis
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.
2019-01-18Hmm, balanced panner didn't seem to make it inLen Ovens
2019-01-18foldback sends should have unlinked balanced pannerLen Ovens
Or 1+2 for mono sends.
2018-12-21Remove duplicate automation shiftRobin Gareus
Amp, Trim are now processors, moving processor-automation takes care of gain automation.
2018-11-28Consolidate ambiguous engine API callsRobin Gareus
available(), connected(), running() were ill-defined and used interchangeably.
2018-11-23Load audition synth on demandRobin Gareus
This saves some memory (gmsynth loads a 30MB soundfont), and also re-initializes the synth every time to gm defaults in case some .mid changes patches or parameters.
2018-11-12Changed send/deliver role "Personal" to "Foldback" so bus type can matchLen Ovens
2018-11-01Update names of sidechains.Johannes Mueller
When a PluginInsert is created it does not have an owner right away. That's why a we need to set the sidechains name once the owner is known, in order to include owner's name into the name. Furthermore we need to follow renames of the owner.
2018-10-29Safe-guard non-rt-safe sidechain operationsRobin Gareus
This is required by 7d8b93ad for showing error when actively recording. It also prevents other UIs (OSC, Lua,..) to change re-configuring sidechain ports/plugins while recording.
2018-10-19Add personal monitor sendsLen Ovens
2018-10-16OSC: personal monitor send hidden follows aux hiddenLen Ovens
2018-10-10Fix master_send_enable_controllable for MixbussesRobin Gareus
2018-09-30Fix Mixbus master-bus tape-saturation controllableRobin Gareus
2018-08-06Fix track rename oddity, don't skip over current name.Robin Gareus
ensure_track_or_route_name() can produce the current name. This fixes the following issue: Create a two audio tracks. Their names are "Audio" and "Audio 1". Try to rename "Audio 1" to "Audio", its name becomes "Audio 2".
2018-07-09move rt-stop to routeRobin Gareus
currently this is only used to resolve midi events for plugins (this is conceptually not correct, note offs should be resolved by the disk-reader only), but it calls into all processors now (incl disk-reader if present), which is handy (e.g. flush delaylins)
2018-07-09Remove global declick APIRobin Gareus
De-click will be per disk-reader, latency compensated and buffer-size independent. Cue-monitoring should not be affected by de-click.
2018-02-14Auto-monitor == Cue for MIDI tracks.Ben Loftis
2018-02-11SoloSelection: libardour part.Ben Loftis
2017-12-31Process Panner Automatables (emit Changed)Robin Gareus
Pan-automation is evaluated directly from the control-list. ::distribute_automated() does not update the controls. However, the *owner* of each automation-control is responsible to evaluate automation of automated automation-controls (and emit Changed() signals to notify the GUI and slaved controls). This follow the same concept as PluginInsert: The Changed signal is called on demand when evaluating automation. This fixes pan-automation-sliders (automation-lane header) not updating.
2017-11-26Sidechain latency compensation - part oneRobin Gareus
This properly sets the port-latencies of PluginInsert owned ports as well as handles external sends (send-target playback latency). NB. This needs more work to ensure that Sidechain input port playback latency is set before the feeding send queries it the connected latency. Re-ordering process may change sidechain or external-send latencies, but since re-ordering does not change the route's latency, engine.update_latency() may not be called.
2017-11-04Clean up delayline API: don't use 'get_' for accessor method-nameRobin Gareus
2017-11-03Fix polarity-control size (and crash during audition)Robin Gareus
Also initialize new polarity-invert with gain 1.0, not inverted. Don't fade-in.
2017-10-31Fix set_loop() return value (amend 00a4ad)Robin Gareus
2017-10-31Relax assertion to allow rolling backwards into 0.Robin Gareus
2017-10-31Move Loop Location to ProcessorsRobin Gareus
The processors will becomes responsible to know about loop-positions and map latency-compensated start_sample, end_sample into the loop-range as needed.