Norns: dust



i thought about this too. could be cool for busking. i was thinking i could use norns, mlr and samplr to play pretty ambient music in public. just load up mlr and samplr with a bunch of chimes and bird sounds. you could attach an extra battery and portable speaker too. anyway, thinking out loud here.

split this topic #173

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

[mod: i moved the tangent discussion of C/matron internals, UDP timing, &c. continuing from:]


Yeah, on the one hand accurate clocking seems like a job for the C/SC layers, not Lua. On the other hand, the obvious things to sync to right now are MIDI, OSC, and Ableton Link, and the first two of those are currently managed from the Lua side.

My immediate motivation is that next week for a performance I want to use the Norns in conjunction with DIN midi out from my partner’s rig, and send midi clock to a uMidi in my euro lunchbox. So far the Lua side seems more than up to this task, I sync’d playfair to an Analog Rytm and it was rock solid from 30-400bpm.

Whatever we build in Lua now can help guide requirements for a more carefully considered native code implementation. I’m not super familiar with Supercollider but its clock abstractions look great and I think that’s a good model to follow for now with a path to various futures.

I somehow missed the Github issue about clocking when I looked earlier, I will put more thoughts over there later!

Norns: Development

it’s surely the aliasing from low-quality playback resampling.

we’ll get it fixed. freeing up CPU headroom by using multiple cores is a blocking issue, so that’s happening first (now).


I love the aliasing effect from mlr on recorded material. especially pitching it right down it has a kind of cocoquantus vibe. maybe we can have audio quality setting in parameters?


this actually crossed my mind too. the keytar style enclosure with a grid interface would look super interesting on stage. :slight_smile:


I was thinking of using a small pedal board for something like this with a few other effects… less brute force than a plank of wood though :slight_smile:


Yes, the aliasing sounds amazing on really pitched down material. I’d be sorry to see it totally disappear too. I’m hiding a copy of the code locally so I dont lose it.


that’s a good idea… looks like a lot of folks are building custom versions of apps already.


update coming this friday.

if you have a script you’d like to include send it in!


I have never made a pull request, so I want to make sure that I have this right. My understanding is that I clone the norns/dust repo, then I would add my user folder and script. Then a pull request against norns/dust?

not sure if this belongs hear or in the github basics thread.


that’s how it would work yes :slight_smile:


I think you may also have to fork norns/dust before you clone it? My very basic understanding is that forking is making your own copy (on GitHub) to work from and cloning is downloading something to your machine from someplace else.


oh yeah true, I forget that I usually have write access to the repo I work on :smiley:

so it would be like

  • on github, fork monome/dust repo (ie: justmat/dust)
  • clone justmat/dust to your machine
  • make your commit and push to justmat/dust
  • on github, make your pr from justmat/dust to monome/dust


Thank you so much! I am going to attempt this now. :slight_smile:

Looks like it worked! :grimacing:


Now that BYOME is nearing release, I finally got a chance this week to sit down and write some scripts. I sent a pull request ( to the master repo, so hopefully these will show up in tomorrow’s norns update.

If you can’t wait, you can copy the files from here:
Please note that Wormhole requires that you have @burn’s KarplusRings engine installed.

wormhole: This is an expanded version of spacetime (from @tehn’s norns study 3). It uses the KarplusRings engine instead of PolyPerc.

The top row is the command row from spacetime. I’ve added in:
_ Do nothing
! Reverse playhead
: 50% chance of reversing playhead
? Randomly choose between +, -, _

The second row is the gate row. X triggers the KarplusRings engine, while _ does nothing. Note that the command row will still update the note value.

The third row is tempo. _ doesn’t change the tempo. 2 is the previous base tempo for spacetime, 1 is twice as fast, 3 is twice as slow (slow metro from spacetime), and so on.

Pressing KEY1 will enable Position Lock. With Position Lock enabled, the metro and gate positions will follow the command row’s position (which can shift with certain commands). When it is disabled, the metro and gate will always increment. The other keys randomize or default each row.

Future work:

  • MIDI clock in/out
  • MIDI note out (gate row will then have a - character to hold the previous gate)
  • Ability to change the length of the rows?
  • Ability to save sequences

easygrain: This is a simplified version of @artfwo’s glut that only has one voice and no grid support. I wanted something simple for granulating samples while traveling or (less romantically) hanging out on the couch when my grid is elsewhere.

The top bar shows progress within the sample.

KEY1 brings up the second set of parameters for the encoders.

The encoders can modify Speed, Size, Pitch, Jitter, Density, and Spread without needing to go to the Parameters menu. The only time you’ll need to go to the Parameters menu is to change the sample.

KEY2 stops/starts playback. KEY3 resets to the start position.

There aren’t really any future plans for this, as this was exactly the control set that I wanted. One modification that I could imagine would be start/end points for the sample. Perhaps KEY3’s reset behavior could be removed to create a third set of parameters (Start, Length, and something else).


sorry for that stupid question but how do I get a sample into the script? :man_shrugging:


@reijo, go to the menu and select parameters. You should be able to add a sample there.


uh noooo… now I feel… :man_facepalming:


Happens to everyone now and again! :sweat_smile: