Less Concepts 3

Less Concepts 3.0

less concepts is rooted in the idea that complexity is just a shit-ton of simplicity, chained together. at its core, less concepts holds 65,536 possible combinations of notes which can be gated, offset, and manipulated to create minimal sequences for improvisation. small changes to a single parameter can bring sweeping or subtle changes.

seek. think. discover. - dan derks


norns 2.7.1 220321
Passersby engine installed (restart/reset after initial installation to activate engine)
grid (128 or 64 or midigrid), optional
crow, optional
just friends, optional
mannequins w/2 synth, optional



at first you are met by a constructive concept built from the seed 36 and rule 30. root note is C and the scale is major. the sequence is fed through the built in sound engine “passersby” and midi device 1 / channel 1.

  • the combination of seeds and rules feed the sequencer with 8-bit numbers. this number is visualized by the eight squares top left on the screen / grid (in the screenshot above 11001111 = 207), a new number is seeded with every beat of the selected time signature. the two voices are individually triggered when they cross paths with the true value 1. the current 8-bit number (11001111 = 207) translates into a note by passing it through the limits for high / low and then transposed within the selected scale.

  • navigate the main performance screen by scrolling with E1, changing values with E2 and E3. adding snapshots with K2 and randomizing selected values with K3.

  • K3 takes on a different role when snapshots are selected (bottom left) or cycling sequencer direction / duration (bottom right). while snapshots are selected K3 will randomize all values (except time and duration). while direction / duration is selected K3 activates a ´destructive´mode, indicated by ‘*’. all changes to snapshots will be saved while in destructive mode. if you wish to delete a snapshot hold K2 and press K3, this results in the snapshot still playing but no snapshot is selected. you scroll through and select the snapshots with E2.


  • time: change time signature for the sequencer. 1/8 - 1/32 (more options available in params).
  • a cycling sequencer that steps through saved snapshots and move when the indicated duration has passed. the cycling sequencer can move up ‘>’, down ‘<’ or random ‘~’.
  • midi notes can trigger snapshots. select “midi → snapshot root” and play away!

/ / / / / / / /

~ r e f r a i n


hold K1 to find the built in pitch, delay, micro looper.


  • buffers are now visible (top right)
  • input mix (engine and adc) is editable on screen (prev. in params / adc is new)
  • K2 toggles state for both buffers ‘rec | play’

/ / / / / / / /

params → edit


‘historical load’

  • as of Apr 3 2022, presets are fully compatible with the norns PSET menu
  • you can still load historical saves, using this parameter – be sure to save a PSET after loading to migrate to the new save/load system

‘time, midi & outputs’

  • select time range(‘legacy 1/8 - 1/32’, ‘slow 1/1 - 1/16’ and ‘full 2/1 - 1/32’ (locked with snapshots)
  • default length (cycle) 1x - 32x (cycle duration for new snapshots)
  • olafur mode (overwrite loaded scale with realtime MIDI input)
  • midi (choose midi device and channels) turn midi/link transport on / off
  • midi → snapshots root (play your snapshots with a midi keyboard)
  • outputs, choose outputs for voice 1 & 2.

‘scaling & randomization’

  • choose scale and global transpose
  • set transpose randomization
  • clamp the values for randomization with ‘randomization limits’

+ params for ~refrain, passersby and w/syn

Grid operation


Available in Maiden

PS. I want to add a side note at the end here… It might seem strange seeing an update for Less Concepts by someone other than @dan_derks . I would probably think the same. So how come?

I reached out to Dan early fall 2020 with a couple of questions, I think the first one was if it would be possible to lower the tempo of the iterations in the script. He was (as we all know) extremely kind, helpful and giving with his knowledge pointing me in the right directions to make my additions to the script. After succeeding with my first steps I came up with more ideas, reached out again and more and more ideas sparked. We had a couple of meetings, I sent Dan continous updates on my progress and he continued to motivate me on going further by complementing me and re-assuring me I was on a good path with the script (his script). It’s a wierd thing, taking on another artists work and adding stuff on top. I have made sure that every addition and the minor changes I’ve made were in line with his vision and I sincerely hope you all feel that I did not break any ‘magic’ here. Dan asked me to re-direct the installation source and do this forum post. I am of course very humbled by this but here it goes.

Development and testing of the script has been ongoing for a couple of months now. There might be minor bugs though. Please report here and I’ll make sure to fix as quickly as I can.

Now seek!

Bug report

  • Short press on K1 (in ~refrain makes the screen flicker) / Use long press til fixed.
  • After load file - reference to nil position


  • 220403: olafur mode, ~ r e f r a i n filters + sample loading, 64 grid, native midigrid, PSETs
  • 210321: Added Pluckylogger - clamped random parameters for w2/synth by @mlogger


  • 64 grid support (@2197)

So happy to see this in the wild!!! doing a fresh download now. Congrats on an amazing release!!! Much love


Thank you @MatthewAshmore and super thanks for helping out with feature requests, bug hunting and in general chatting with me about this.


Oh this is amazing - My favorite script grows! I’ve got a DIY Grid 128 coming soon, and I think between this and Cheat Codes I’m going to be living in a dreamscape. Thank you so much for all your work!


I just dug out the M4L plug-in today and was loving it. Can’t wait to try the Norns update too. Thanks


this is what makes true open source dev (and dan, and norns as a platform) so great

i really love hearing the background on this…to your question, no it’s not strange to see how openly your additions have been welcomed

super cool that they get to live as LC3 instead of some new renamed app tho



Some minor changes (saving/loading and bug fixes) where made and the script is now available through Maiden. This will (for the time being) live side by side with the old Less concepts but follows suit and is 100% compatible with old saves (actually 99% because zero preset count saves won’t load), behaviour etc.
You can load old saves by moving them according to the instructions in the top post.
Please note, if you had a version (of LC3) installed pre-Maiden the saves might not work and they will probably be in the wrong data-directory on Norns. If you need help with a situation because of this I’ll gladly help out and hopefully be able to recover your work.

yeah! love all the additional features you’ve added, and nice to hear the backstory of your collab. such a powerful and playable script. especially the meta sequencer and midi-playable snapshots is brilliant.

1 Like

I totally forgot about these :joy: I’ll update the docs soon. Thanks for the reminder. (Edit to be clear, they are in the script, only missed them in docs)


Just uploaded a hotfix for save/load that couldn’t be helped from adding a line that wrecks save files from earlier today. sorry 'bout that. :frowning:


this is absolutely remarkable work, @vicimity. just, totally beyond!

the depth of care you exhibited for this weird lil’ tool, this platform, and the people who have engaged with it is bursting with warmth. thank you for reaching out, for letting me join in on the fun, and for bringing such depths to the original. i’m so grateful to celebrate your work as someone new to this old friend again :hugs:


this came up in the awake-mod thread: being able to have the two different sequences run at different rates. and it made me think if this would be possible in less concepts too? basically setting vox 1 and vox 2 at separate clock divisions. it would allow for all sorts of new phasing patterns and longer variations to emerge. just thought i’d throw it out there : )
again, really loving this script!


Yes. Very good idea! I have some other stuff that I want to explore aswell. Took a break from thinking too hard on this after it was released but I’ll get back into it. Perhaps someone in the community wants to join in going forward? I knew basically nothing about Lua and Norns scripting when I got started last fall. I’d gladly help someone get started in a similar way to how @dan_derks got me rolling.


i’d really love to join in on developing this forward while getting some lua mentorship, but i won’t be able to do it until at least a couple of weeks or a month from now. if no one else has taken the bait by then, i’m all in!


do iiiiiiit – Linus is an incredible and kind human :slight_smile:. i so very much enjoyed our sessions holistically – all thanks to how much i looked forward to seeing Linus as well as working on fun things!


@vicimity @dan_derks Do you guys have any thoughts about how to approach making this app accessible for a 64? I’m squinting at the grid layout and wondering if a two button combo to toggle grid “hemispheres” would be a good approach…

@vicimity are you happy for me to fork your version and make a 64 edit? I love lc.


Of course. Would love to see an official update to LC that can do both 64 and 128. Haven’t looked into 64 at all. It’s mainly the choosing of high/low notes that is based on the whole width of the grid right now, everything else can live on two separate pages. Oh… And the mute bit on x=9 for y=1and2. Let me know if you want any help/input/talkbuddy/whatever.


The snapshot don’t seem to work for me. Pressing k2 does nothing. Matron gives me this error:

/home/we/dust/code/less_concepts_3/less_concepts_3.lua:1637: in global ‘new_preset_unpack’

/home/we/dust/code/less_concepts_3/less_concepts_3.lua:848: in function ‘key’

/home/we/norns/lua/core/menu.lua:140: in function </home/we/norns/lua/core/menu.lua:117>

1 Like

Sorry to hear. Could you describe this in more detail please? Steps to reproduce are very valuable when hunting for the bug. Thanks.

1 Like

Sure. Thanks for the quick response. When i select the snapshot section with e1 and then press k2 to add a snapshot, nothing happens. I only get the error in matron as posted above. I tried saving a preset and then adding a new snapshot, but with no success. Randomisation with K3 works though.

I tried a fresh install of less concepts, but the behaviour doesn’t change


Ok, I think I know what’s happening. This is due to my testing was mainly done with a grid, something I realized a couple of days before release. Must have missed this bug. I was actually thinking back and forth on what behaviour K2 should have when the snaphots were selected on screen. K2 saves a new snapshot on all other places so this might be logical even here. But it might be a good idea to be able to scroll through the snapshots and select (unpack) a snapshot with K2? Testing the behaviour now it’s clearly not behaving well. I’ll give it some more thought and implement a fix for this bug and a clear description of the behaviour soon (this week I hope). In the meantime, make sure to save new snapshots from other places than the snapshot section on the screen.

Thanks for reporting this!


I pushed an update with the following changes:

  • K2 now unpacks selected snapshot (when snapshots are highlighted on screen)
  • The duration/length of snapshots can only be changed in destructive modes (*)
  • Scrolling through the snapshots will not unpack the snapshots, only K2 does

If you want to edit snapshot length for cycling mode before starting a “cycle” scroll left with E2 when snapshot length is highlighted. This will enter a destructive but not moving state. Now go back and forth between selecting snapshots and changing their lengths.

Please let me know if this makes more sense. Glad the bugs are squashed but maybe the user interaction can be better?