summaryrefslogtreecommitdiff
path: root/libs/ardour
AgeCommit message (Collapse)Author
2017-11-26Add convenience methods to set port latenciesRobin Gareus
2017-11-23fix call to std::unique; to actually erase dups.Robin Gareus
2017-11-23remove useless test, fgets() already ensures MAX_STRING_LENRobin Gareus
Found by PVS-Studio - https://www.viva64.com/en/b/0540/
2017-11-23Fix another duplicate if from session/system config consolidationRobin Gareus
Found by PVS-Studio - https://www.viva64.com/en/b/0540/
2017-11-23Fix typo in 318e7efbRobin Gareus
2017-11-23Add clock-delta mode enumRobin Gareus
2017-11-23Introduce a dedicated "Clock Origin" MarkerRobin Gareus
2017-11-22Release (debug) lock before emitting signalRobin Gareus
2017-11-12Add API to allow buffer offsets when applying gainRobin Gareus
2017-11-12Add a noise generator (Lua DSP)Robin Gareus
2017-11-06Some further notes (and experiments) on optimizationsRobin Gareus
2017-11-04Add some notes for future optimizations (and prepare API)Robin Gareus
2017-11-04Change Delayline to use power-of-two size and bitmaskingRobin Gareus
2017-11-04[Re]-Implement Delayline flush.Robin Gareus
Also don't automatically flush the delayline at transport or monitor- changes anymore. With full-graph latency compensation, delaylines are before the disk-reader, aligning input (disk uses read-ahead to align). Flushing the delayline should only happen when input-monitoring is disengaged. It's best degated to the Route or object using the Delayline (potentially latency-aligned delayed flush).
2017-11-04Optimize Delaylines: block-process (not one sample at a time)Robin Gareus
This also tweaks fade behavior when the latency changes to prefer a x-fade when possible. This new variant does not support concurrent re-allocation and execution. Hence the auto-connect thread needs to take a lock before updating latencies (actually there's no need for an explicit update with built-in backends, so this case remains to be updated further)
2017-11-04Clean up delayline API: don't use 'get_' for accessor method-nameRobin Gareus
2017-11-03Auditioner, silence buffer at end.Robin Gareus
2017-11-03Don't crash when auditioning empty .mid files.Robin 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-11-02Accommodate newly added/removed source(s) in our MSVC project (libardour)John Emmas
2017-11-01Wrap automation on loop-position, split plugin processingRobin Gareus
2017-10-31Click-free polarity inversion, also use accelerated (AVX, SSE) AmpRobin Gareus
2017-10-31Fix samples-moved (and invalid use of not initialized CubicInterpolation)Robin Gareus
2017-10-31Interpolation phase[] is initially emptyRobin Gareus
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.
2017-10-31Small steps towards rolling backwards..Robin Gareus
2017-10-31Migrate to Polarity-inversion processor & fix proc positionsRobin Gareus
* invert polarity after disk i/o proc or return * fix position of export-proc (after polarity) * fix input-meter (before disk-writer or after return)
2017-10-31Add polarity-invert processorRobin Gareus
2017-10-30Use new externally_connected APIRobin Gareus
2017-10-30NO-OP: whitespaceRobin Gareus
2017-10-30Add & implement PortEngine::externally_connected() APIRobin Gareus
2017-10-30Fix fade-out at quit.Robin Gareus
2017-10-30remove non rt-safe debug messagesRobin Gareus
2017-10-30Parallel execution of cycle-start/endRobin Gareus
2017-10-30Add a RT-TasklistRobin Gareus
2017-10-30Add MSVC support for building the 'zita-resampler' library (which is now ↵John Emmas
needed by libardour)
2017-10-30Accommodate the change from libtimecode to libtemporalJohn Emmas
2017-10-29Remove unused per-port buffer offsetRobin Gareus
2017-10-29NO-OP: whitespaceRobin Gareus
2017-10-29Quick hack to test engine vari-speed (1/2)Robin Gareus
2017-10-29Move vari-speed into backend (resample ports)Robin Gareus
Previously Ardour used a /local/ per track vari-speed mechanism. Now that the disk-reader is a latency-compensated processor, the speed of each disk-reader would need to be maintained locally, offset by each disk-reader's output latency. Furthermore each disk-reader may produce a different number of samples, depending on its global alignment. This commit introduces port-data resampling directly at the engine-level: Up/down-sample all input ports at the beginning, and down/up-sample output port-data using the inverse ratio at the end of the session's process cycle. The session itself is unaware of the speed-change, and only needs to handle transport speeds {-1, 0, +1}. This also allows for aligned cue-monitoring and vari-speed recording, and also pitch-shifts synthesized MIDI along.
2017-10-29Update Lua Bindings, fix inconsistencies.Robin Gareus
2017-10-28Fix loading sessions w/new tempo-map.Robin Gareus
Newly constructed sessions don't save "Tempo-start" property. If there's no "start" node, _legacy_bbt is never explicitly set and the default c'tor is used, which sets bar = 1. The test for legacy session checks bar != 0. All new sessions were processed with fix_legacy_session(), which breaks the tempo-map and makes the session not loadable (duplicate Tempo).
2017-10-26switch from std::auto_ptr<> (deprecated) to boost::scoped_ptr<>Paul Davis
2017-10-26remove unused variablePaul Davis
2017-10-26switch from std::auto_ptr<> (deprecated) to boost::scoped_ptr<>Paul Davis
2017-10-26optimization for track with zero audio channels should not short-circuit ↵Paul Davis
MIDI disk reading
2017-10-26remove unnecessary callsPaul Davis