Commit Graph

187 Commits

Author SHA1 Message Date
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
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
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
d2126c8a2e Fix array overrun 2022-06-30 09:32:39 +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
0452145ff3 Avoid compiler warning 2022-06-28 11:18:58 +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
Chris Cannam
f3f06c55cb Sketch implementation of setKeyFrameMap 2022-06-17 17:52:28 +01:00
Chris Cannam
8c07d06d72 Small simplification 2022-06-17 16:56:09 +01:00
Chris Cannam
b4e921003f Perform polar-to-cartesian conversions only on range that will actually be used 2022-06-17 16:52:55 +01:00
Chris Cannam
6128ba6d36 Add convertToPolar to capture some of the awkward decisions in analyseChannel 2022-06-17 16:32:14 +01:00
Chris Cannam
ca0afe3a33 Merge 2022-06-17 15:01:39 +01:00
Chris Cannam
380cad53b4 Attempt to "fade in" phase resets on return to unity, so as to return to an approximate pass-through without too audible a click 2022-06-17 15:01:26 +01:00
Chris Cannam
ea148cb3ca More rt entry points 2022-06-17 08:26:05 +01:00
Chris Cannam
326f9b721d Add RTENTRY macro for STOAT testing 2022-06-15 17:22:32 +01:00
Chris Cannam
8b25206e7f Fix some compiler warnings 2022-06-15 11:58:46 +01:00
Chris Cannam
291271d532 Loosen locking gradually as the ratio increases 2022-06-15 10:39:41 +01:00
Chris Cannam
3db535281b This must round down; otherwise we can end up with the outhop exceeding 256 for some hops when we haven't planned it 2022-06-15 10:00:49 +01:00
Chris Cannam
a61a4f3201 Avoid dropping the 1024-point FFT until at least ratio 1.5 2022-06-15 09:40:09 +01:00
Chris Cannam
136c546955 We need the full range for this FFT now, since we are switching to it of necessity when outhop > 256 2022-06-15 09:39:36 +01:00
Chris Cannam
2c57d0ee30 Fix compiler warnings 2022-06-14 16:52:09 +01:00
Chris Cannam
b160475b07 Fix some compiler warnings 2022-06-14 15:15:55 +01:00