norns as sampler buddy


This script is a little util that allows to record a sound an play it back at various RPM ratios.

The main use is to replay the sample sped up into a hardware sampler to save memory and add some punch to samples (demonstration of the effect).

It comes with its own fork of the timber engine with some tweaks, so a sleep is necessary.




-- K1 held is SHIFT
-- Anywhere:
--  E1: switch page
-- Main screen:
--  E2: record speed
--  E3: playback speed
--  SHIFT + E1: sampler model
--  K2: record start/stop
--  K3: playback start/stop
-- HW Sampler Instructions:
--  E2: record speed
--  E3: playback speed
-- Dirtying:
--  SHIFT + E1: preset
--  E2: sample rate
--  SHIFT + E2: sample rate (x 1k)
--  E3: bit depth

Next Features

  • 3 band EQ
  • tuning / timestretching
  • load a sample from disk
  • stereo to mono summing, phase invert toggle
  • instructions for other hardware samplers (SP1200, SP-202…)
  • support for intermediate RPM values
  • IPS units (for tape input source)
  • animations

See also


No release for now, not yet on maiden.


I know its not your priority but a simple slice and save option with clever/fast naming would be great!
Cool stuff btw !

I thought about it, even though it’s not the primary purpose of the script (where a hardware sampler would do this duty).

In the meantime, although minimalist, sam might suit your needs.


Hey there. I’ve been wanting to try this out and just got around to it. After restart getting an error: load fail.



script load: /home/we/dust/code/rpmate-main/rpmate.lua


script clear

MISSING INCLUDE: rpmate/lib/librpmate

SCRIPT ERROR: load fail

/home/we/dust/code/rpmate-main/rpmate.lua:31: MISSING INCLUDE: rpmate/lib/librpmate

stack traceback:

/home/we/norns/lua/core/norns.lua:138: in function </home/we/norns/lua/core/norns.lua:138>

[C]: in function ‘error’

/home/we/norns/lua/core/startup.lua:49: in function ‘include’

/home/we/dust/code/rpmate-main/rpmate.lua:31: in main chunk

[C]: in function ‘dofile’

/home/we/norns/lua/core/script.lua:186: in function </home/we/norns/lua/core/script.lua:186>

[C]: in function ‘xpcall’

/home/we/norns/lua/core/norns.lua:139: in field ‘try’

/home/we/norns/lua/core/script.lua:186: in function ‘core/script.load’

(…tail calls…)

script clear

Need to load this up and see if I’m experiencing the same thing. Really looking forward to trying this!

1 Like

The issue seems to be that you cloned the repo as a rpmate-main folder instead of the expected rpmate.

Renaming the folder should fix the issue.

The reason why it fails is that I include the lib with path rpmate/lib/*. I later discovered that lib/* would also work, making the code agnostic to the folder name. I will update the code accordingly.

Wow! Looking forward to using this with my SP1200 & Mirage samplers

That worked! Thank you!