Norns: ideas



Perfect description of where I’m at, so you’re not alone :slight_smile:

I still haven’t devoted enough time to ansible and tt, let alone norns!


like the sound (:wink:) of an engine making study. maybe that’s something that could be developed later when time / interst allows?


the studies got paused at the start of the last update cycle as the scope of the update grew and substantial changes presented themselves.

once the update is out my first priority study is for softcut, which is now always-on alongside other engines. it’s an incredibly flexible four-track varispeed sampler and more (and the sound quality in the new version is wonderful).

an sc development study will follow. (though there is an sc on norns tutorial here somewhere, i can’t manage to find the link just now?)

part of improving sc engine development will be the ability to remotely restart sc, which is present in the update



would die for this but…i feel ashamed that i didnt think i needed it since they provided so much scaffolding and open code to tweak for my own purposes

just caught off guard cause…

exact same boat


you’re right, the way we’re requiring engines to be subclasses of CroneEngine essentially makes SC as we use it into a compiled language. and i agree, debugging SC isn’t the best experience and involves looking at a lot of useless / misleading stack traces. (i also find it easier to debug classes than interpreted code, but YMMV.)

on one hand it might be good to extend the system to allow engines to be created in the interpreter. on the other hand, 1) i don’t know what that wwould look like exactly (plz suggest), 2) the class system is really helpful for reliability / consistency / testability, 3) there’s no IDE on the device anyway (and its a long road to make maiden as usable as scide or scel for SC work)

that said,

absolutely. as far as i can tell, all the norns SC classes “just work” on the laptop. (just install them in your platform’s “Extensions” folder. [+]) no emulation is really required since it’s all OSC. i definitely recommend developing engines off the device first. there are some bits and bobs in the repo showing all-SC engine tests.

[+] oh! sorry. there are also the custom faust-generated UGens which need to be compiled and installed, or SC will complain. IIRC the waf scripts to build them work on linux and macOS, but you need to manually install the resulting .so/.scx files. these ugens are gone in new-crone. (baked into the jack client.) [ed: as pointed out below, these aren’t even necessary for engine development and the error messages can be ignored.]

matron also mostly runs on other linuxes but without screen/encoders/buttons. some of the rPi work could be applied to other linux environments (e.g. cairo layer.)


+1. I primarily develop my engines on my laptop running SuperCollider on Windows 10(!) Crone off device works great. You need to dig into the matron/crone osc protocol to load engines and control stuff but it’s rather simple once you get it. Let me know if you need help on this @lazzarello. There’s unfortunately not much docs on this yet.

While SC will complain if custom norns UGens are not present it will run engines not using the custom UGens. AFAIK know the custom UGens are used for the reverb (which will not work) and softcut.


@jah I develop using SuperCollider on my laptop and then load them onto norns to test and see if they work. SC will tell me if they compile but not if they actually work. I’d love to see what your workflow is. I’d then be happy to contribute to a tutorial or something about SC/Crone development for norns. The engines i’ve Written so far are very specialized and I’d be interested in learning about making something more general-purpose.


this kinda thing works for me

// load PolySub engine
// send OSC to myself
n = NetAddr.localAddr;
// a voice
n.sendMsg("/command/start", 0, 220);
// another voice
n.sendMsg("/command/start", 1, 220 * 6/5);
// stop them


Thanks @zebra! I’ve added all the Crone classes to my SuperCollider extensions folder, but when I startup I get the following error:

booting server 'localhost' on address:
RESULT = 126

Any idea what I need to change?


huh. i dunno.

first thing, make sure you are using the stuff from master branch on both norns and dust. on new-crone branch the SC stuff will try to connect to a remote server process launched elsewhere.

but 57110 isn’t a port that we use. (i grepped the git history to confirm.) on master, we just set the Crone server to the default Server.local. you could get the same or similar weirdness by doing something like Server.local = Server.remote("", 57110), somewhere else.

i literally just did this: clone norns/master, clone dust/master, nuke SC extensions, copy all the norns SC stuff to .local/share/SuperCollider/Extensions, run the snippet.


57110 is the default port for SuperCollider via scide on Mac! (no idea if that’s useful; I just happened to look it up today :joy:)


what are the chances to see something like grains ported to norns?
I remember having a lot of fun with that scene while I had the aleph


Try this: In sc/core/ comment out or remove the line that says ”Server.supernova;”. This reverts back to the default sc server (scsynth) which is what I use on the desktop (they’re interchangeble except scsynth will not parallelize pgroups).


Yep, that would be really helpful. The Octatrack’s metronome behaves like that!


An add-on stutter effect like iZotope’s Stutter Edit on the master output, with configurable “macros” mapped to midi notes / grid button presses? I read that SoftCut is going to be always-on so I’m of the impression this will be attainable!


Here’s two more:

  1. a multi-voiced (multi-timbral?) step sequencer: multiple channels each with its own waveform, amp envelope, filter, LFO, etc. If this is at all possible, what’s the best SC engine to use?

  2. An MPC-like sample trigger to be used with grids or midi pads. The idea is to have access to a bucketload of samples split to 8 groups to keep cpu cycles low-ish. Can the Ack engine do this?


Islands, the script i’m Still working on, is Kira + an fm based synth each track with a different Partch. It still needs work managing presets. I’ve been quite busy on other things but planning on slotting a couple of days in to finish it soon.

Multi-timbal isn’t hard so i’m Sure there will be more


I’m working on a new, flexible sample player engine at the moment that should be good for this kind of thing where you want a lot of samples ready to go.


I do, I do. It’s the one missing link for me.


That sounds great! Can’t wait to see what you came up with