Norns: scripting

How do you allow/enable scrolling on screen? I wanted to expand playfair to use all 7 samples but was having a little difficulty figuring out how to show the bottom 2 (5 fit).

so “scrolling” is a pretty high-level concept and would require a bit of extra plumbing.

i’d instead try to vertically condense the redraw() routine. you can fit 8 lines of text on this screen. removing the BPM indicator, etc.


I did this in a couple minutes, with no prior Lua experience. The code is so readable and easy to edit! This makes me very excited for the future w/ norns.


Playing with coding Oblique Strategies into norns. Fun!


How about using a press + encoder to select the edition (1,2, 3 or 4)?

(FULL DISCLOSURE: I downloaded all the text for the editions over the weekend for a “Let’s Build a Script to Learn Lua” exercise.)


i hate to always compare

if we can eventually load/change these psets via script that’d be pretty close to the dynamic territory found in the aleph preset system

yeah that’s possible now! wait for the parameter system study, or shortcut:


where filename is tehn/awake.pset or tehn/awake-01.pset etc

1 Like

I managed 8 tracks of PlayFair and the bpm on one screen!

Edit: I also added a random beat thing :smiley:


An expansion/exploration of this past week’s norns studies. Headphones recommended!

Semi-sequenced, semi-random pentatonic sine waves.

Kill the clock (button 3) and use knob 2 to roam. Or roam with button 3, if you want. Knob 3 to drift. Button 1 to reset.

annotated code: pent_onym.lua (4.7 KB)


playfair mods :smile:

bloatfair.lua (3.3 KB)

norns is a drum thing

edit: i’ll post a new/better version of this soon


here is a short piece i did using this awesome script!!


was able to add a simple and very inelegant stop and start functionality to this last night. but i was wondering if anyone has sorted out how to send midi clock over usb? stop and start etc. i see my midi interface when i plug it in but don’t have a clue how to get that going. . . perhaps i will have to wait till the 5th study?

1 Like

I just came here to ask if anyone had worked on sending midi clock out! being able to sync up with my eurorack would be awesome.

Start and stop are very useful additions!


Got inspired by @burn last night to put my paltry Lua skills to the test and create a random Oblique Strategies generator - got it working!!

One syntax question, though: when using screen.text(), is it possible to insert a line break in the text you’re displaying? Some of those lines are quite long, and \n and \z didn’t do anything.

For context, I dumped a bunch of “strategies” to a table in Lua…

EDIT: Haven’t figured out the line break issue yet, but I did figure out how to implement a musical scale in my script and use the PolyPerc engine :slight_smile:


17 posts were merged into an existing topic: Norns: Development

This is so great! Please share if you wish.

1 Like

:slight_smile: Will do, once I clean the code up a bit (be forewarned, though - I’m sure the shared version will still be messy!) I’d also like to implement a counter displaying the index of the displayed strategy — just waiting on the second study to give me a nudge in the right direction for that.


mod note: moved conversation about globals to Norns: Development


a new low.


This sounds like an easy problem to solve, but I am having a bit of trouble.

Is there an easy way to make an int wrap around a range in lua? For instance, I want enc1 to increment/decrement a value, wrapping at its upper and lower bounds.
i.e. in a range of 1 - 8, 8 + 1 would be 1.

1 Like