loop a sound into six voices playing at different levels & pans & rates & positions, modulated by lfos on every parameter.


inspired by cranes and the cut and poll softcut study, i tried to take these ideas to the extreme. in barcode i wanted to utilize all six voices after recording into a buffer.


  • norns
  • audio input


hold K1 to shift

  • K2 to pauses LFOs
  • K3 starts recording
  • any key stops recording
  • shift+K2 switches buffer
  • shift+K3 clears
  • E1 changes output/rec levels
  • E2 dials through parameters
  • E3 adjusts current parameter
  • shift+E3 adjusts freq of lfo

after recording finishes, the corresponding buffer will be played on six different voices.

each voice has six parameters: level, pan, rate, reverse, start point, and end point. each of these parameters is modulated by a randomly initialized lfo (that’s 36 lfos!). at this point, the lfos cannot be modulated except by changing the code.

in the ui, the parameters of the voices are represented as six groups of five lines. each group of lines corresponds to one voice. the order of the five lines corresponds to the parameters:

  1. level ( L )
  2. pan ( P )
  3. rate ( R )
  4. direction ( D )
  5. tape start/end points ( T )

you can bias the modulation for any parameter using E2 to move the corresponding line (a parameter for a voice) and then adjusting with E3. shift+E3 adjusts the frequency of the lfo for that parameter.

the line at the very top is for the overall level, which can be adjusted with E1. during recording, E1 adjusts the recording level.

note: the buffer max is 60 seconds. the loop end point is whatever end point you stop recording though.


download in maiden or via command:


So cool. Can’t wait to dive in.


Beautiful little demo :+1:


Welp, I know what I’m getting stuck into tonight.


This looks beautiful and wonderfully simple!

Unfortunately, I’m unable to get Norns to record anything. I’ve tried K1+K2 but nothing is happening (besides going back to the main menu). Using a Monome Norns, btw on latest firmware.

1 Like

looks awesome. thanks for sharing.

1 Like

I’m using the shield, could that be a difference? K1 acts as a shift. Holding it should make the title text “barcode v0.1” literally shift position by a few pixels and then you know you can press K2 (still holding K1)

1 Like

This did it! I was trying to push them at the same time but its really K1 then K2 while still holding K1.

1 Like

Beautiful demo! I can hardly wait to give this a try myself.

1 Like

first off…AMAZING script!!!
(sampling the SYNTRX into it right now.)

did you mean to say:

  • K2 to freeze
  • K3 to switch buffers

are there only two buffers that K3 switches between?
(please forgive my ignorance if that’s all that is possible)

not sure if this a little bug…
if you turn E2 quickly the little cursor bar disappears.

1 Like

Simple and beautiful. I cant wait to get some time with this

1 Like

yes, i did mean to say that. thank you! i messed this up and just now fixed it.

yes! there are only two buffers. however, they are each 5 minutes so in theory more “virtual” buffers can be added by re-positioning across the entire 10 minutes of buffer. its more complicated to do that but i might like trying to do that just as an exercise :wink:

it might be a :bug: . the cursor should only disappear if you turn E2 all the way counter-clockwise.

1 Like

Loving it so far. Getting some really cool textures with the OP-1, but is there a way to clear/erase the buffers without re-loading the script?

1 Like

not as of yet. but K1+K3 is unused so I can push a change with that to clear buffers


That would be killer. Having a lot of fun this afternoon with Barcode and a bunch of my daughters toy instruments.

1 Like

here’s an untested version that should allow clearing with K1+K3:

as soon as i test it personally i’ll update this thread with the new version (v0.2)

happy to incorporate other ideas as well :slight_smile:

that’s so cool! i’m intrigued on how barcode makes a sort of weird out-of-sync symphony, even from a single note. this seems exemplified on physical instruments i tried (piano and kalimba).

btw, would love to see what you’re coming up with - or anyone else for that matter!

1 Like

This might be out of the scope of what you want to do with this script, but is it possible to map some of those parameters to MIDI? For instance, have a dedicated buffer 1 and buffer 2 record function so that you could record into buffer 2 while buffer 1 is playing? Also, being able to reset each buffer through MIDI. Just a thought…

I had a great time jamming with this last night - OP-1 in ARP mode.


thanks for the info @infinitedigits!
lots of noiz with Barcode for last night’s noiz session…
SYNTRX, Shnth and an AFrame.
I recorded a short session on each buffer with each instrument and was switching between all three to generate everything.


Wow - what a fantastic script!

It also seems like a great opportunity to dip my toes into adding Grid support to a script that doesn’t already have it. Not sure if you had any intention on adding optional Grid support, or how you would imagine laying out the controls on Grid.

For any other Norns devs, any pointers would be appreciated! Though given you put this together using the studies, perhaps I can follow suite with the Grid studies for Norns…

If I do end up with anything interesting, I’ll most certainly issue a PR and if anyone else had the same thought, I’d be happy to use it as an apprenticeship of sorts as an intro to Norns dev!


oh i need to try this too :slight_smile:

its definitely possible and pretty straightforward. the code itself basically runs a constant loop so you can change any parameter (lfo rate, lfo phase, adjustments) in any function and they will update. other things (like clearing buffers) can be functionalized too so it doesn’t matter if you use midi or k1/k2/k3.

i’m not really planning on adding midi because i currently like how hard it is to “control” which makes me kinda try to absorb the chaos into my music.

that being said, if you or someone is interested in adding midi i wholeheartedly will support in anyway. the code is commented but don’t hesitate to reach out to me for help.