From 927788a0b0bf6a621e7cee60365f4e8cbd67d829 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 29 Oct 2017 18:30:18 +0100 Subject: Move vari-speed into backend (resample ports) 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. --- libs/ardour/wscript | 1 + 1 file changed, 1 insertion(+) (limited to 'libs/ardour/wscript') diff --git a/libs/ardour/wscript b/libs/ardour/wscript index df28255d5e..1604803884 100644 --- a/libs/ardour/wscript +++ b/libs/ardour/wscript @@ -396,6 +396,7 @@ def build(bld): 'libaudiographer', 'libtemporal', 'liblua', + 'zita-resampler', ] if bld.env['build_target'] != 'mingw': obj.uselib += ['DL'] -- cgit v1.2.3