zero. lua convention is that arrays use 1-base indexing, and we follow this in norns lua code whenever a variable or argument is an index. when it is a quanitity, like time, this doesn’t apply.
you will notice a lot of softcut scripts that use 1s as a starting place, which maybe muddies the water. there is not a good reason for starting at 1s, except a general awareness that having some pre- and post-roll is a good idea. (but for the record, crossfades in softcut are applied at the end of the loop; so leaving some post-roll is important but pre-roll is not. [oh, ha: unless the rate goes negative, d’oh.])
Is there any reason that buffers get “stuck” on script (re)start from maiden?
not sure what you mean
Is there a way to slew the panning without re-implementing a slew function in my script? (Softcut feature request?)
sofcut.pan_slew_time(voice, time)
Is there a way to get the length of a loaded file?
not from softcut. you can query the duration of a soundfile before loading it with audio.file_info() (returns a table with channels, frames, samplerate)
Is there a way to get the current output level of a voice? i.e. envelope follower mentioned in another thread…
no. there are no envelope followers on per-voice output. (what thread?)
And more general Norns than Softcut, For a static background, is it better to draw a bunch of polys on every frame, or draw them once and write them to a PNG & then load the PNG every frame?
don’t load a PNG every frame; it incurs disk IO and creates/destroys a new cairo surface.
[mod: moving to norns: scripting]