Reels

norns
#1

Reels

21

Reels is a 4-track asynchronous looper, inspired by op-1 tape recorder and mannequins w/ eurorack module.
Big thanks to @zebra for gorgeous softcut 2.0

Requirements

Norns 2.0

Documentation

Quickstart

56

UI

Manual

13
50
05

tape:

  • ENC1 switch track
  • ENC2 recording level
  • ENC3 tape speed
  • BTN1 (hold) settings
  • BTN2 play / stop
  • BTN3 recording on / off

settings menu:

  • ENC2 moves through entries
  • ENC3 changes values
  • if volume selected, press BTN3 to mute track
Libreels

It is possible to add reels to any non-softcut script
place this hooks into corresponding functions

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

Download

v2 - Download zip

51 Likes

#2

once I figured out that I had to load clean reels to get this working…wow really nice work. Thanks for this

0 Likes

#3

Really enjoying this one, great stuff!

After using this quite a lot today there were a few things I noticed, sharing them here in the hope that it’s helpful:

‘Clear clip’ is throwing an error – I think this probably just needs updating to match the latest softcut.

Error from Maiden.
/home/we/dust/code/reels/reels.lua:205: attempt to call a nil value (field 'clear_range')
stack traceback:
	/home/we/dust/code/reels/reels.lua:205: in upvalue 'clear_track'
	/home/we/dust/code/reels/reels.lua:659: in function 'key'
	/home/we/norns/lua/core/menu.lua:164: in function </home/we/norns/lua/core/menu.lua:141>

I’m finding that recordings sometimes land in unexpected places on the tape loop. Hard to work out exactly what’s happening here but it seems like a play or rec head is somehow getting offset?

Also seeing some unexpected states if you select a different track while rec is armed. It seems like this causes recordings to land on the wrong track. Easy enough to avoid but maybe worth handling it or locking that out of the UI.

Thanks for all your work on this!

0 Likes

#4

Having great fun with this - oh! I wish a couple of things (sometimes found on the more exotic real world tape machines) that would transport it into an amazing sound machine**. Reverse** - select reverse and it plays reverse, select again back to normal. AND Speed set to 1 (default) = normal speed, 0.5 = half speed and so on, down to say 0.2 fifth going the other way - who knows! Up to a max of say 4x. :grin::grin:

1 Like

#5

Reels is beautiful! with the new update also much more stable.
How long can the samples be?

1 Like

#6

Thanks! For now its 60 sec for each track (but you can record on (extreme)low speeds which will give you much more time and also adds nice lo-fi character)

4 Likes

#7

Can you confirm this is still happening in latest version?
Also there seems to be a little bug with displaying playhead when loading clips to buffer and immidiately starting playback - playhead starts moving while file is not loaded yet - it start playing with a little delay and therefore UI playhead position is wrong.
@zebra, is there any workaround? some sort of callback on success buffer_read or smth

0 Likes

#8

i think general issue is that currently, reading buffer blocks OSC handler thread in crone process. so, subsequent commands won’t take effect immediately and there are weird delays.

issue here after report on Cranes:
[ https://github.com/monome/norns/issues/805 ]

pushed a branch with worker threads but haven’t extensively tested; feedback on this branch is welcome (you need to re-run ./waf in ~/norns to rebuild.) also, minimal test case would help for command-delay issues.
(WIP PR for test/feedback:)
https://github.com/monome/norns/pull/811)

@its_your_bedtime in response to query about clear_region, i noticed API doc is wrong - arguments are (start, duration) not (start, end), so maybe that helps.

hm, not a bad idea. there’s nothing like that righ tnow. pretty straightforward but requiring substantial amount of new glue, and some thought to make lua API not too ugly.


just heads up: i have limited off-clock dev time this week, only short sessions late at night. last night fixed a couple other bugs elsewhere. some day maybe i can get around to sharing my own performance instruments, which are pretty different from anything seen thus far…

16 Likes

#9

That would be wonderful!!

3 Likes

#10

hopefully it is fixed now:)

0 Likes

#11

Awesome, will check it out this weekend!

1 Like

#12

Checking out the latest version, all fixed, thanks for that!

It does seem with this latest I can’t overdub a track though (which I think was working previously or did I imagine that?)

One other small thing: arming rec while not playing seems to actually trigger playback (although the visuals remain stopped).

0 Likes

#13

edit: Sorry, fixed all this things :see_no_evil:

Also, now first recording on track loops automatically according to rec length

6 Likes

#14

So fast! Thanks, will give it another run reel soon :sweat_smile:

4 Likes

#15

Really enjoying reels. Would you consider adding Arc support? I think this would really work well with it.

2 Likes

#16

Absolutely (when i’ll have one :upside_down_face: )
btw, new version now with threshold recoding, also updated docs in top post

6 Likes

#17

I’m not sure what happened but after updating to the latest version of Reels and running it briefly it crashed my norns and even after a hard reset it keeps freezing up now. I’ve managed to load some other scripts fine but when going back to reels it freezes up.

0 Likes

#18

Hmm, could you provide some info from maiden repl?

0 Likes

#19

I’m getting (error: load fail) when attempting to start reels. Is there another library I need to install in addition to what I put into ~/we/dust/code ?

0 Likes

#20

Make sure libreels.lua is in /home/we/dust/code/reels/lib/

0 Likes