For the last couple of days I’ve been getting a weird sort of distortion from Otis when speeding up or slowing down the playback speed. It sounds like the downsample parameter in Ableton’s Redux effect, or a very light bitcrushing effect. I checked my parameters, and sample rate is 48k, bit depth is 31, saturation is at 5.
I recently updated Norns to 201029 (Fates on 3b+), so I’m thinking that might be the culprit? Tried a couple other scripts since updating (Cranes, OOOOOO) and the downsampled effect is not present.
Anyone run into this issue, or might there be some setting I’m overlooking that’s causing this?
I need to explore more but I’m getting what appears to be background clock noise with Otis since the update. Looked like it was also referenced in the new firmware thread by another user. I’ll dig in tomorrow and give some more detailed notes
Here’s what’s printed in REPL when launching Otis:
# script load: /home/we/dust/code/otis/otis.lua
# script clear
ERROR (i2c/hp) failed to write
pset >> write: /home/we/dust/data/system.pset
# script run
loading engine: Decimator
>> reading PMAP /home/we/dust/data/otis/otis.pmap
m.read: /home/we/dust/data/otis/otis.pmap not read.
Engine.register_commands; count: 7
___ engine commands ___
___ polls ___
# script init
ERROR (i2c/hp) failed to write
So I think I just heard the effect happen in Cranes while recording something at 0.25x speed, though I haven’t been able to recreate it, whereas it persists in Otis after changing speed for the first time.
mmm, i’m hearing it now with other scripts that route softcut into itself, but it’s kinda hard to nail down – it can be triggered when rates aren’t the typical 2^x (where x is usually -3 to 2) style. so, anything like rate = 0.79 adds a bit crush effect i’ve only previously heard when the fade time and loop length were super tiny (0.001s).
weiiiird. i’ll try to hack at a clean repro script tomorrow, but if anybody has time tonight i figured the breadcrumb might be helpful.
this is anecdotally a familar sound for me coming out of softcut, pushing anachronism with weird settings sometimes gets these bits caught in buffers. it (anecdotally) sounds a bit like samples being written to every other frame rather than every frame.
i’m an antagonist though because i love the sound : )
I’ll look. These updates introduce no changes to softcut dsp; the only change to softcut client is to clamp some parameter ranges on the cpp (so you can’t e.g. blow up filters with negative RQ, etc.,even when bypassing lua API.) Wonder if debug build got added to the update or something like that.
Best debug information would be output of journalctl for the crone service. (sorry I’m on phone so can’t relate exact invocation.) this will include buffer underruns, etc
There are no inherent problems with fractional rates and have not been for a very long time.
found the issue. the latest update erroneously clamps rec_offset to be non-negative - therefore zero in this case. (when the offset is zero, the read head and write head are inside each other’s resampling windows; badness ensues.)
@Justmat in the process i noticed that the rec_offset value in Otis is quite large. (0.06s, whereas you only need 5-6 exactly 8 samples worth.) generally there is no reason to set this parameter unless you are trying to do something confusing, and the large offset is probably creating extra clicks and pops around the loop points.
Not sure if this is a super necessary or additive comment but just want to say that the debugging and troubleshooting convos in script threads are such a cool feature of the community around norns. As someone unlikely to ever write or change a line of code I just want to say how much I value the intelligence and the dedication of the people who write, maintain and assist in making it possible to use these amazing instruments we have access to.
@zebra, thanks for checking this out! i’ll get the rec_offset amount fixed this morning. i’m not sure where 0.06 seconds came from… if 8 samples are all that’s needed, it should be something like 0.00016
edit: i just saw your recent changes to the record offset defaults. i’ll just remove the line setting the offset and rely instead on the default value.
Spent a few mins early after I did an update. All gooood!!! (Im assuming there was an update lol)
Quick question; In the param setting the “skip ???”… When I select that I don’t seem to be getting any noticeable effect. Also when “???” Is selected and I go to press skip I don’t see the icon that normally appears. What’s the intended behavior there?