Commit Graph

35 Commits

Author SHA1 Message Date
Chris Cannam
4336d47a02 With longer process sizes we can end up with insufficient space in the inbuf, but enough in the outbuf following the previous retrieve call for a consume to be possible before writing to the inbuf 2022-09-01 10:41:25 +01:00
Chris Cannam
e58c6018c5 This appears benign and should be slightly quicker 2022-08-18 15:24:24 +01:00
Chris Cannam
6ecc973d41 Keep a structure with recommended limits for inhop/outhop in current configuration; skip readahead entirely when inhop is greater than a certain limit - allowing us to reduce start delay further in short-window mode 2022-08-05 14:58:12 +01:00
Chris Cannam
3eae190a85 This is not actually usually a serious problem, unlike the <1 case which can be genuinely troublesome 2022-08-04 16:31:23 +01:00
Chris Cannam
7833e1bff1 Avoid kick analysis in single-window mode; comment update 2022-08-04 12:08:15 +01:00
Chris Cannam
5b26e90a58 Fix to windowing offsets 2022-08-04 11:19:13 +01:00
Chris Cannam
fe9e86bc3c Per-channel window source buffer, & connect it up 2022-08-04 10:31:36 +01:00
Chris Cannam
d1386b0a0c Provide a separate window source buffer to simplify single/multi window logic 2022-08-04 10:02:09 +01:00
Chris Cannam
2fa0e1162e Toward properly expressing the window sizes in Guide when in single-window mode, so as to separate the time-domain frame length from the longest FFT within R3Stretcher and allow us to use a shorter time-domain frame. Not working correctly in single-window mode yet. 2022-08-03 14:16:17 +01:00
Chris Cannam
9fff2836c6 Avoid RatioMostlyFixed in RealTime mode, it can lead to unpleasant surprises 2022-08-02 16:22:24 +01:00
Chris Cannam
d0cca91e30 Impose a limit here 2022-07-14 13:52:04 +01:00
Chris Cannam
e018458736 Make this fully single-windowed rather than just short-windowed 2022-07-14 13:44:22 +01:00
Chris Cannam
02928a3c86 Experimentally (re-)introduce short window mode 2022-07-14 11:55:21 +01:00
Chris Cannam
dc74c993cf Add profile points; switch to microseconds 2022-07-14 10:02:39 +01:00
Chris Cannam
dca4c96834 Wire up setExpectedInputDuration 2022-07-07 10:54:23 +01:00
Chris Cannam
263e0cbf70 Ensure output accumulator is properly drained at finish. We rely on the calculated output count (in offline mode) to truncate properly. 2022-07-07 10:35:01 +01:00
Chris Cannam
a66d2a5140 Fix consumed counter for key-frame mapping 2022-07-07 09:43:17 +01:00
Chris Cannam
567e8636cd Enable PROCESS_SAMPLE_TYPE for R3 as well, switching from double to process_t throughout 2022-07-06 10:40:10 +01:00
Chris Cannam
6e941fa2d3 Update the OptionPitch* options so that they do the expected thing for the R3 engine as well - this speeds up realtime mode when not dynamically pitch-shifting 2022-07-06 10:22:50 +01:00
Chris Cannam
72654b04ea Introduce getPreferredStartPad(), deprecate getLatency() and replace with getStartDelay(); document and test both 2022-07-05 17:53:36 +01:00
Chris Cannam
687e3958a7 Connect up the ChannelsTogether option in R3 as well, to extend the channel lock range upward 2022-07-04 10:52:50 +01:00
Chris Cannam
54b10f155c Padding and key-frame fixes 2022-06-29 16:51:18 +01:00
Chris Cannam
56c60d2420 Fix target duration in offline mode 2022-06-29 14:44:21 +01:00
Chris Cannam
2940bde16f Since we're adding more padding than a half-frame, we have to remove a scaled proportion of it 2022-06-27 16:37:52 +01:00
Chris Cannam
5e726e79aa Toward further tests 2022-06-24 18:05:32 +01:00
Chris Cannam
b9e6ebb6e3 Implement setMaxProcessSize in R3 2022-06-24 14:01:11 +01:00
Chris Cannam
9c04885d27 Read correct sample count out from mixdown buffer, when draining and having read less than one outhop at input 2022-06-24 13:25:36 +01:00
Chris Cannam
2478d54c05 We actually need to fill with the whole size (matching our reported latency) 2022-06-24 11:51:25 +01:00
Chris Cannam
d65755427f In offline mode, create the resampler only if needed (i.e. if the pitch ratio is still 1.0 at the point when process is first called); and use plain 2048-sample fft with unity stretch 2022-06-24 10:51:40 +01:00
Chris Cannam
b318fb4e8b Wire through debug level changes; tidy 2022-06-22 13:42:58 +01:00
Chris Cannam
5137b19407 Wire up Log throughout 2022-06-22 11:33:36 +01:00
Chris Cannam
e8b63bd10d These can just be overloads for log, which at least avoids us using log2 as a method name here 2022-06-22 09:10:02 +01:00
Chris Cannam
7434abe664 More on logging 2022-06-21 17:03:24 +01:00
Chris Cannam
35653f3a86 Start reworking log output 2022-06-21 16:06:16 +01:00
Chris Cannam
e546767a6d Rename/rejig so as to have just a single Impl and then R2 and R3 stretcher classes 2022-06-21 10:25:08 +01:00