having fun adding a softcut delay ilbrary thing I’ve been working on to existing scripts. a bit of a challenge to shoehorn what I think the UI should be in some cases but otherwise very easy to really add new dimensions to already great scripts thanks to softcut.

9 Likes

Apologies for the newbie question. Is there a page somewhere that explains exactly what softcut is ? I am missing something i think , running 2.0 but somehow it is not obvious to me what this is

it’s a program for manipulating buffers of audio. MLR, for example, uses softcut for all of the audio stuff it does. but at the same time it doesn’t have to be such a starring role. It can just be a “tape recorder” in a script, for instance.

all your tunnels_base are belong to us. :smiley:

7 Likes

Thankyou - how do you access it? Is it something that is just internal to the code (within a script)?

1 Like

@jonnymon yes, softcut is a set of audio processing functionality that is available to script writers, in addition to whatever “engine” is running in supercollider. ‘reels’, ‘cranes’ and ‘mlr’ are scripts which use softcut extensively. all the parameters are exposed in the Lua coding environment. softcut input and output level parameters are always exposed on the MIX page and in SYSTEM > AUDIO.

i still have not written a real manual. sorry about that. someday i will have time.

the one-sentence description is that it is a polyphonic varispeed ‘tape-like’ buffer manipulation framework. it has some built-in filters and is primarily designed for sample-accurate crossfaded looping.

it is not exactly a “tape emulation” b/c it does not seek to replicate mechanics or saturation characteristics - instead it has its own set of “mechanics” - the way crossfade applies to record/erase levels (tape can’t do that,) a record-level “dead zone” around rate=0, modulating filter cutoff by rate, &c - and tonal characteristics introduced by filtering and softclipping around the resampling stage.

again i agree that these things need real documentation and someday i will be able to finish that. latest chunk i made is a diagram of the inter-voice routing (which complements the top-level norns routing diagram):
softcut-routing.pdf (47.3 KB)

(4 voices are shown, though in fact there are 6. hopefully this helps explain why i think it’s OK for voices to be monophonic - given that they can be synchronized.)

10 Likes

any chance I could locate the glut tunnels script somewhere?

Hey guys! I’ve wrapped reels into lib, so it is now possible to add it to any script w/ non softcut engine

How-to
  • Update reels to latest version
  • Add this hooks to your script:

local reels = include('reels/lib/libreels')

function init()
   reels.init()
end

function key(n,z)
  if reels.active then
    reels:key(n,z)
  else
   -- your script
  end
end

function enc(n,d)
   if reels.active then
      reels:enc(n,d)
   else
   -- your script
   end
end

function redraw()
  reels:redraw()
end

Activate it via params page or manually with reels.active = true

14 Likes

I’ll try to get out a version this weekend using a similar method as @its_your_bedtime’s reels above (noting that you wouldn’t be able to use both concurrently).

3 Likes

new softcut is amazingly well crafted

11 Likes

nice, what is going on there?

1 Like

a softcut script by @Justmat for stereo looping
with controls for all sorts of params (volume, speed, direction, loop length) per channel

sound source was no input mixing
norns and mackie feeding each other blooms

8 Likes

What exactly is softcut?

Didn’t @zebra just explain that 7 posts prior to yours?

2 Likes

Yeah. Perfectly, I just missed it. Which is embarrassing.

1 Like

All good

We’ve each done it at some point

1 Like

getting this error in matron when i type this in REPL:

h = require ‘halfsecond’
h.init()

lua: stdin:1: module ‘halfsecond’ not found:
no field package.preload[‘halfsecond’]
no file ‘/home/we/norns/lua/halfsecond.lua’
no file ‘/home/we/norns/lua/core/halfsecond.lua’
no file ‘/home/we/norns/lua/core/params/halfsecond.lua’
no file ‘/home/we/norns/lua/lib/halfsecond.lua’
no file ‘/home/we/norns/lua/softcut/halfsecond.lua’
no file ‘/home/we/dust/code/halfsecond.lua’
no file ‘/usr/local/share/lua/5.3/halfsecond.lua’
no file ‘/usr/local/share/lua/5.3/halfsecond/init.lua’
no file ‘/usr/local/lib/lua/5.3/halfsecond.lua’
no file ‘/usr/local/lib/lua/5.3/halfsecond/init.lua’
no file ‘/usr/share/lua/5.3/halfsecond.lua’
no file ‘/usr/share/lua/5.3/halfsecond/init.lua’
no file ‘./halfsecond.lua’
no file ‘./halfsecond/init.lua’
no file ‘/usr/local/lib/lua/5.3/halfsecond.so’
no file ‘/usr/lib/arm-linux-gnueabihf/lua/5.3/halfsecond.so’
no file ‘/usr/lib/lua/5.3/halfsecond.so’
no file ‘/usr/local/lib/lua/5.3/loadall.so’
no file ‘./halfsecond.so’
stack traceback
:
any ideas?

Needs more path

require “awake/lib/halfsecond”

(Should work?)

1 Like

ah thanks was looking everywhere for that. :smile:

so it is

h = require ‘awake/lib/halfsecond’
h.init()

I’m just here to say, after spending a few weeks with 2.0 that Softcut is, to me, pure wizardry, magic, mistery, however you want to call it that doesn’t mean “tool” and “gear”. It’s just amazing, script after script, how much it can do and how beautifuly it does it. Thank you @zebra

The technical aspect of it is too cryptic for me to add or ask for anything yet and make a valuable contribution to this thread, and I’ll definitely try to understand it more if time allows, but damn, I really wanted to say thank you for a few days of sheer joy that had me thinking about what I could acheive with it when I wasn’t near my norns.

10 Likes