monome / dust

norns incantations
GNU General Public License v3.0
72 stars 51 forks source link

SoftCut: engine.rate(i,f) unable to handle negative values, under certain conditions #193

Closed dndrks closed 5 years ago

dndrks commented 6 years ago

Outside of MLR, direct application of engine.rate(i,f) causes severe playback glitching if f values are less than 0. Application of positive f values behaves as desired.

Steps to replicate:

  1. load @tehn 's halfsecond.lua through Maiden
  2. toggle HOLD on norns to freeze the buffer at 1x
  3. execute engine.rate(1,-1) -> playback glitches
  4. execute engine.rate(1,1)-> eventually, playback re-stabilizes

I'm unsure if there's a condition unique to halfsecond.lua that causes this (vs MLR), but I have also replicated in other WIP SoftCut scripts.

dndrks commented 6 years ago

this also might just be my complete unawareness of certain conditions that need to be met for the reverse playback to function, but since positive f values produce desired results I feel like it's something worth logging.

catfact commented 6 years ago

i'll have a look and take the opportunity to try (again) and fix write-head resampling

catfact commented 6 years ago

i'm pretty sure this artifact is from writing while reversing. in MLR the write head is never also the play head. in halfsecond the play head is also always writing, and just varying pre/rec gain levels.

i'll fix this, sorry i've been so slow, busy couple of months.