I’m struggling to understand the behavior of softcut.rec. I figured it would just enable/disable the voice “tape head” abstraction from writing to the buffer or not, but would otherwise not change its behavior. However, I’m seeing that it seems to change the timing of the recording in mysterious ways.
A minimal reproduction example: take study 4, and swap line 56 from softcut.rec_level(1,rec) to softcut.rec(1,rec). Then, with pre at 1.0 use K2 to “punch in” short segments. You’ll quickly see that the segments when looped are not where they originally were recorded. E.g., record pitch 1 for one second, then immediately turn recording off. When the loop comes back around, immediately when pitch 1 is complete, toggle record on and record pitch 2 for one second, then toggle recording back off. Then repeat again for pitch 3. Instead of pitch 1 and pitch 2 and pitch 3 being back to back, pitch 2 or 3 or both are now at a seemingly random time, often significantly overlapping with pitch 1. (sorry that’s probably hard to follow, but I couldn’t think of a simpler way to explain it).
Is there something I’m misunderstanding about rec, and how it offsets the record head? I’ve even tried using softcut.rec_offset(1, 0) (which I’d think would sync the play head and record head) but that didn’t seem to help either.