Modulating sample buffers on norns

this norns script creates sequences of samples from a tape. you can load any tape and splice it into up to 26 samples (named a-z). samples can then be patterned into 16-subdivided measures. patterns can then be chained together.

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.


;install https://github.com/schollz/barcode

 / #music #portfolio #norns 

Made by Zack, filed in Blog. 2019.