Commit Graph

398 Commits

Author SHA1 Message Date
Chris Cannam
9e423cdd8c Handle non-ideal sample rates in R3; document sample rate parameter 2022-09-26 16:02:13 +01:00
Chris Cannam
57d59b4c7a Eliminate the mlock logic entirely. It's caused a couple of issues lately and it turns out it wasn't even used! 2022-09-26 10:11:16 +01:00
Chris Cannam
020702e7ea Fix include path. Very poor that this wasn't exercised by my build or CI runs 2022-09-26 09:37:55 +01:00
Chris Cannam
56058cc288 Fix plainly dumb error 2022-09-20 10:27:16 +01:00
Chris Cannam
a5e2bfa444 Fix some (benign) shadowing warnings 2022-09-20 09:30:48 +01:00
Chris Cannam
e90f377600 Don't use drand48, it doesn't always exist and since we don't care about the quality of output, it's not worth testing for 2022-09-20 09:30:34 +01:00
Chris Cannam
2eb9a20052 There's no longer any good reason to do this; remove it 2022-09-09 11:22:53 +01:00
Chris Cannam
92362bdba0 Resample in chunks as well, to avoid overrunning resample buffer 2022-09-02 15:08:29 +01:00
Chris Cannam
021de9d51c Add resample-before mode 2022-09-02 14:49:34 +01:00
Chris Cannam
deb84a5f78 Update build files 2022-09-02 13:11:15 +01:00
Chris Cannam
8c817265d5 Pick more rational rational values 2022-09-02 12:07:41 +01:00
Chris Cannam
2025c51d64 Use extracted pickNearestRational; ensure the max rational is actually the max for both num and denom 2022-09-02 12:06:45 +01:00
Chris Cannam
a525654d6a Pull out nearest-rational into mathmisc so it can be used in other places than BQResampler 2022-09-02 12:06:11 +01:00
Chris Cannam
ee3091ab75 Merge from branch speexdsp 2022-09-02 11:12:35 +01:00
Chris Cannam
e0a6fc686d Add support for external libspeexdsp 2022-09-02 11:10:44 +01:00
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
20d22f76d6 Don't pass debug level through to FFT - it doesn't respect the log target 2022-08-30 18:55:33 +01:00
Chris Cannam
53eca719fb Apply gradual phase-reset on unity in the R2 stretcher (R3 already does this) 2022-08-18 16:41:43 +01:00
Chris Cannam
e58c6018c5 This appears benign and should be slightly quicker 2022-08-18 15:24:24 +01:00
Chris Cannam
c9565266f2 Adjust the limits, with performance in mind - to be auditioned 2022-08-18 14:27:57 +01:00
Chris Cannam
8fee46b704 Add SLEEF FFT support 2022-08-09 15:50:02 +01:00
Chris Cannam
f81598c166 Backed out changeset c03ab2acf74e
No, that worked very badly in practice. Revisit
2022-08-08 17:02:08 +01:00
Chris Cannam
f027a59fa4 I don't like adjusting the rational approximation - it changes (even if only nominally) the effective ratio based on quality. I think this is more appropriate 2022-08-08 16:55:53 +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
4aea160ec3 Indentation only 2022-08-04 16:58:00 +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
63ebc45107 ... I said, in RatioOftenChanging mode 2022-08-04 13:34:31 +01:00
Chris Cannam
76ee5998f1 Permit rational precision to vary by quality setting in RatioOftenChanging mode 2022-08-04 13:31:33 +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
d211121701 Ah, this was still in use in Scavenger. It can stay for now 2022-07-14 17:49:22 +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
279c44477e Fix unity handling in short-window mode 2022-07-14 12:07:43 +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
7179c2626c Update Profiler to use std::chrono 2022-07-14 09:42:10 +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
4673a663f0 Add the other new 3.0 functions to the C API 2022-07-06 11:56:01 +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
31984af826 Add a test case to cover realtime block-by-block processing with latency commpensation 2022-07-05 13:49:28 +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