Norns: R engine

I’ve been surprised by the lack of discussion about it…

Hopefully this thread for the R engine will generate more code based on its framework


I haven’t tried scripting anything with it yet but was just checking out yesterday to get a better idea of what’s possible (spoiler alert: a lot). must focus on my scripts at hand first but I plan on really diving in soon.


Do you have a github link for it? I’d ask for some docs on how the repo(s) is/are organized but accept that things are still in flux.

updated link:

1 Like

and if you (or anybody else) are seeking the docs


With this can I change SC engines used in my Lua interfaces on the fly? Am I correct thinking you can’t do that normally, but can with this?

it is a single engine that is modular, allowing you to create / delete DSP blocks and connections between them on the fly from lua.

you can, in fact, also change engines on the fly within a lua script, though this isn’t something that has been demonstrated to date - it would bypass/complicate much of the infrastructure that makes writing scripts more “convenient” - e.g. the init method (which is called after the engine is loaded) and the auto-population of engine “methods” such as engine.hz(), &c

aha! This looks supremely useful! Pretty healthy list of modules. Exciting!

this engine pretty very addresses a lot of the use cases that steered me away from norns at first. curious how successful grid or norns as a patching interface will be !


One way to start toying with R is to copy the Moln script and change parts (ie. use a saw instead of square oscillator, add modulation sources).

The docs referred above cover a lot of what it’s about. I intend to add more details on the actual modules. When time permits I also want to add more modules and capabilities. On the top of my R list is buffer support and an Ack like sample player module.

Background: I started writing this engine after an idea from @tehn of an modular engine that could be reconfigured from lua. Some modules were inspired by the AudioMulch environment, others from basic Doepfer eurorack modules.


R now lives here:


It looks fabulous, I’ve made a simple sine oscillator at the moment, but I don’t like the name. I can’t search for it on lines :smiley:


@jah, holy moly. this is wonderful – linking a few filters and modulating them has been giving me an entire day of joy. it has me wondering: is there any way to route softcut as an input?


No. Engines can go to softcut but not vice versa (at the moment). See block diagram if it’s not too scary

1 Like

Is there any way to read a value from an R module?

Edit: I’m thinking of reading the position of a LFO, or the value of a S&H, in order to modulate a PARAM

Not at the moment. You feel a need to poll signal values from outputs? While this likely is possible to implement/add to the R engine in some way the idea up until this point has been to modulate by connecting module outputs to module modulation inputs (PWM, FM, DelayTimeModulation, etc).

I should really improve R module documentation.


1 Like

This works wonderfully for modulating the other parts of the R engine, so I think my request may be a bit out of scope. :slight_smile:

Personally I would find it nice to be able to snapshot and send signal values back to script for visualization purposes though.


This is possible for all scripts (read about MIDI-mapping in PARAMETERS section here:

Sure, mapping a lua param to several R engine parameters is possible.

1 Like

thanks i’m just playing on Moln and can see from that about the parameters, so deleted my comments, literally 2 minutes before you posted the reply!

1 Like