Awake-mod v1.0.8

Awake-mod #norns

Expands on the original Awake app for Norns by adding pages/features:
MOD - per-step transpose “scheduling” on every 2nd/3rd/etc. time the step is active
XPLSN - set fuse and various ‘end of sequence’ mod effects are available
FNDTN - establish a foundational sequence preset and reset to that foundation later

I was playing a sequence, manually changing a step value every 4th time the sequence played, and thought… I wonder if I could figure out how to code that, seems like a simple use case.

  • note: I do not have a grid so I didnt touch any of the Grid code


Norns - keyboard optional
Pretty sure you’ll need Norns update 210114


See regular Awake for typical functionality. These two pages have been added:

K2/K3 octave down/up

E1 to navigate to the MOD screen

E2 selects which mod step to edit

E3 selects the mod value for the step:

  • off - mod step not active
  • 1 to 8 - transpose note up when mod step is active
  • -1 to -7 - transpose note down when mod step is active
  • mute - mutes current step when mod step is active

K3 increases the trig division/K2 decreases

  • off - mod step not active
  • /1 to activate mod step every time the step is active (useful for ‘auditioning’ the transpose)
  • /2 for every other time the step is active
  • up to /8 for every 8th time the step is active

Hold K1 + K2 to clear all active mod steps
Hold K1 + K3 to randomize all mod steps

mod steps are indicated by a grey ‘step’ underneath the LOOP line
when a mod step is activated it will turn from grey to white and a small dot will appear above the step

Neat trick: if a regular step is inactive (i.e. no note), you can trigger a note to play using the mod step. Ex: mod = 1
trig = /2
Every other time the step is active, it will trigger the first note in the scale.

K2 light fuse/snuff fuse
K3 light quick fuse
E2 set fuse timer or rpt
E3 set type

fuse timer (once lit) decreases by 1 at the end of each loop
once timer reaches 0, sequence modification activates
set fuse timer to “rpt” to activate mod at the end of each sequence


  • morph1 - top sequence is morphed
  • morph2 - bottom sequence is morphed
  • stp-rnd - top/bottom sequences are randomized
  • mod-rnd - mod steps are randomized
  • fndtn1-4 - sequence resets to foundation preset 1-4
  • oct-up - change root note up one octave
  • oct-dwn - change root note up down one octave
  • fractal - a randomized mix of shuffle, mirror, morph and mute using FNDTN1 as the base sequence

K2 to set foundation
K3 to reset all steps and lengths to foundation
E2 select foundation preset 1-4

The idea is:

  • set the foundation to save all your current steps, length, mod steps
  • add, remove, screw up your sequence
  • reset everything you screwed up back to the foundation… meant to be a performance tool

Keyboard controls:

F1 to F7 - mapped to each of the pages (STEP, LOOP, etc…)
F9 to F12 - reset to FNDTN 1 - 4
Shift + F9 to F12 - set FNDTN 1 - 4

“Alt”- K1
“<” - K2
“>” - K3

Left/right arrow - E2
Up/down arrow - E3

“-” - octave down
“=” - octave up
“delete” - remove step
Left ctrl + 1 -9 - transpose down
Right ctrl + 1- 9 - transpose up


v1.0.8 (based off 2.4.0 Awake)

If you open a terminal on a computer, you should be able to install this with:
ssh we@norns.local (or using IP address from SELECT screen)
password: sleep
cd dust/code
git clone

To update after initial install should be:
cd dust/code/awake-mod
git pull

This is my first foray into GitHub and sharing code to a community, so be gentle :slight_smile:


This rules! I love awake and awake passerby

Updated to 1.0.2

  • Added better display for off/inactive mod steps
  • Added “mute” mod value
  • Extended mod transposition to -7 to 8 range
  • Added dusty pic to post
  • Added better indicator when mod step is active

This has been MASSIVELY fun to work on. If you have a suggestion for better app or parameter naming (MOD/TRIG), I’m all ears.


Updated to v1.0.3

  • Added FNDTN page/feature

Demo on IG


Updated to v1.0.4

  • Added XPLSN page/feature
  • Tweaked FNDTN display
  • FNDTN auto sets to either startup sequence or last preset

Really enjoying these additions to Awake thanks.

I’ve long wanted performative presets mapped out to a second page on Grid and this is giving me encouragement to learn how to do it myself :ok_hand:


This version of Awake has been a lot of fun to explore, and the FNDTN has been especially useful - now looking forward to the XPLSNs!

1 Like

So glad to hear!

Playing around with XPLSNs last night, I realize I need a ‘light fuse’ button. Having the fuse immediately active can be a bit unexpected especially if the sequence is about to end.

Other thoughts:
Add a XPLSN type for inversion/mirroring.
Add a button to immediately apply the XPLSN or activate the fuse at 1.
Not totally sure XPLSNs are ‘musically useful’ - curious to hear impressions.

@Deru I’ll see if I can expand the code to set multiple FNDTNs, requires some refactoring.


That would be really interesting thanks!
I wonder if they could be pulled from other presets? Hmmm… Would that make sense?

Updated to v1.0.5

XPLSN changes:

  • Added light fuse/snuff fuse so fuse doesnt start immediately after you select a value
  • Added light quick fuse to light fuse = 1 with a button
  • Added types fndtn1-4 to support new fndtn presets

FNDTN changes:

  • Added 1-4 preset slots (this could be literally any amount but felt like 4 was just right)
  • Changed reset to foundation behavior - it will no longer reset the sequence position to start

Note: setting up complimentary foundations and changing them with XPLSNs is lovely, since XPLSNs always activate right as the sequence restarts

@Deru not sure how to pull from the ‘top level’ preset data but I feel like FNDTN preset slots work pretty well! I actually need to look into whether these are saved with the ‘top level’ presets… hmm, probably not. I hope to eventually get a grid and would love to surface some this stuff to the grid interface for performance purposes.


Amazing. I’ll check this out soon thanks.

1 Like

I used the new fuses on Awake-Mod to control my modular for tonight’s Sonic Sound Synthesis interlude - it was really handy being able to set all the steps to change or revert to the foundation at a more or less known future point while tweaking the knobs on the other side of the studio. I’ll definitely be using this more and more.


That’s awesome! Is there a link/time stamp on the show where I could listen?

Updated to v1.0.6

  • Refactor additions to separate lua files
  • add OPTION octave down/up buttons
  • keyboard support - really opens up the performance capabilities!

I had a play with 1.0.5 last night and I think you’re right about the multiple fdntn presets. They’re great and pretty much serve my performance ideas. As you eluded to, if these function were mapped to the grid (saving and recalling) it would fully check that box I think. I’m sure this is a great first project for me so I’ll keep it in my ‘eventual’ pile unless someone else wants to get to it first!

Cheers for this script.


Just awaiting the upload to Mixcloud from the station - will post here when it’s available.

Update: online now at mixcloud

The first 2021 session has been archived at Mixcloud: Mixcloud

1 Like

i tried to update to 1.0.6 tonight.

all i get is an error:init message.
this was on multiple norns on the current OS.

thanks for any help!

Hmm… I recloned from github on my Norns to make sure I was getting the same copy as you and I don’t have any errors. Maybe try pulling again? If you still have an error, can you open maiden and copy/paste the error that’s posted to the matron console?

1 Like

finally had a chance to get back to this.
just re-downloaded and installed from GitHub.

it was still giving me the error init thing on multiple norns.

just did a re-install on norns #1 and it loads and goes to the Read Me page and then it just jumps back to the primary OS screen that has SELECT> SYSTEM> SLEEP>.

here is the report from maiden:


script load: /home/we/dust/code/awake/awake-mod.lua


script clear

including /home/we/dust/code/awake/lib/halfsecond.lua

including /home/we/dust/code/awake/lib/keyboard.lua

including /home/we/dust/code/awake/lib/fndtn.lua

including /home/we/dust/code/awake/lib/xplsn.lua

including /home/we/dust/code/awake/lib/mod.lua

script run

loading engine: PolyPerc

reading PMAP /home/we/dust/data/awake/awake-mod/awake-mod.pmap /home/we/dust/data/awake/awake-mod/awake-mod.pmap not read.

Engine.register_commands; count: 6

___ engine commands ___

amp f

cutoff f

gain f

hz f

pw f

release f

___ polls ___









script init

starting halfsecond

pset >> read: /home/we/dust/data/awake/awake-mod/awake-mod-01.pset

pset :: /home/we/dust/data/awake/awake-mod/awake-mod-01.pset not read.


/home/we/dust/code/awake/awake-mod.lua:337: attempt to call a nil value (field ‘pan’)

stack traceback:

/home/we/norns/lua/core/norns.lua:138: in field ‘pan’

/home/we/dust/code/awake/awake-mod.lua:337: in field ‘action’

/home/we/norns/lua/core/params/control.lua:104: in function ‘core/params/control.bang’

/home/we/norns/lua/core/paramset.lua:437: in function ‘core/paramset.bang’

/home/we/norns/lua/core/paramset.lua:430: in function ‘core/paramset.default’

/home/we/dust/code/awake/awake-mod.lua:351: in global ‘init’

/home/we/norns/lua/core/script.lua:105: in function ‘core/script.init’

[C]: in function ‘xpcall’

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

/home/we/norns/lua/core/engine.lua:91: in function </home/we/norns/lua/core/engine.lua:89>

@SPIKE did you try nuking your ~/dust/data/awake-mod/ folder?

1 Like