norns: ideas

@mbillz helped me add that (cyrene/crow_io.lua at master · 21echoes/cyrene · GitHub) to Cyrene. Would probably not be too hard to adapt to your script. And probably not even that much harder to abstract to something very similar to Arcify for anyone to drop into their script with ease!


@21echoes + @mbillz definitely win for cleanest implementation :slight_smile:

clear ideas + vision are always welcome as a PR to the main repo! it’s already been logged as part of a feature request, but you might want to roll it as a script hack or lib first.

if you’re pretty comfortable with code, i’d say start with the example david posted – it’s really nicely organized and can be easily extended.

if you’re just digging in, i’d definitely encourage you to check out the params API – the ref page has all the functions and study 3 has a great flexible example/overview.


essentially, every parameter in a norns script is controllable via one of these two commands:

params:set("osc_name_of_parameter", value)
params:delta("osc_name_of_parameter", delta)

the osc name is inside of the parameter declarations, but it’s also the name that surfaces when you put the parameters into MIDI map mode:

you’ll likely have most success with params:set, you just need to know the range you want to control via crow. this is the out 0.0 100.0 part of the third screen in the image above.

for example, you could add this to control the pulse width parameter in the example screens above:

function process_stream(v)
  local volt_to_param = util.linlin(0,8,0,100,v)
  local clamp_it_down = util.clamp(volt_to_param,0,100)
  params:set("pw", clamp_it_down)

crow.input[2].stream = process_stream
crow.input[2].mode("stream", 0.25)

(^^ purposefully inefficient to demonstrate a potential thought process)

the two util functions are built into norns, which help keep data within a range.

i use util.linlin to generally map an incoming 0-8 V range to 0-100 outgoing integers. i then clamp it down to make sure that if crow reports lower or higher than that range, that it doesn’t send below/above 0 to 100.

once you get the hang of this part of the system, there’s a ton of efficiency to be gained. i also wrote up a dumb lil’ MIDI mutli-map example here: multimap example · GitHub, which could be a decent enough jumping-off point to co-opt for crow, if you need one :slight_smile:

but also, that cyrene example is sliiiick :sparkles:. more libs like Arcify and Passthrough would be rad + a nice way to extend the ecosystem without needing to negotiate designing a system menu.


@dan_derks @21echoes wow that you both so much for all the great info! :pray:

I’m definitely new to Lua so the process may be slow going, but it looks like there is plenty to dig into here to get this working how I’d hoped.

Future dreams: if I can get it functional and clean, I’d be happy to share some sort of lib for this feature to make it available for other apps. Cheers!

1 Like

Alright, feel free to give GitHub - 21echoes/crowify: A Monome Norns library for easily adding Crow support to existing scripts. a spin! I tested it on a few different param types, but haven’t done a particularly thorough amount of testing.


Crowify looks great! Looks like Arcify gave you a starting framework but I’m glad you could take it further.


all the content is here and ready for forking! yggdrasil/functions.lua at main · northern-information/yggdrasil · GitHub


Thank you!


14bit Midi without any additional hack would be amazing

1 Like

Agreed. I made a little midi controller for my pisound with 14bit control messages to accommodate for the controls like a 10 turn pot which would for example work nicely for scanning through a buffer with a bit more granularity. Would be great to have it mappable in Norns without editing scripts. What 14bit midi controllers are you using?

20 characters of Faderfox EC4

UC4 for me, as I mentioned in the previous post. I’ve been meaning to have a go at this, but no time yet…

I got my Norns yesterday and I’ve been having so much fun with it on it’s own and in combination with Crow.

I had a question, I don’t know if it’s already possible in some form, but some apps only allow recording of real-time loops it seems. Would it be possible to route the audio player into sample-mangling scripts (like Compass or oooooo, for example)? This would allow for remixing of audio already on the Norns.
Is there something I am not seeing, or is this currently not possible? :slight_smile:

I asked the same thing some time ago and this is not currently possible as the tape player does not feed into softcut/sc engine. Scripts can have some code that plays audio from files though, which can give you similar results.

EDIT : I remembered wrong, ignore this post

oh! it does :slight_smile:

@maaark, under PARAMETERS > SOFTCUT, you can selectively feed the hardware inputs, the tape, and the engine into the softcut voices used by a script. i love loading the stock hermit field recording into the tape, playing it, and recording the tape output into softcut-powered scripts like oooooo, compass, mlr, wrms, otis, cheat codes, etc


I should re-read previous threads before answering.
Thanks for clearing that up :+1:
What was the thing that was not possible then…?

no worries, we should make this flexibility clearer in the docs! :slight_smile:
i think softcut -> sc engine has come up a few times, which is currently not possible.


Thanks @dan_derks for making this clear! That’s so awesome- it allows me to load up some modular recordings/field recordings and remix them on the go! :slight_smile:


Hey guys, i’m new to Norns and the Monome community in general so please excuse if it may be a stupid question, but is there something like good old Polygome sequencer availabe for Norns? Already searched the library but found nothing that comes close. I adored Polygome back in the days and was hoping to finally get a laptop-independent version thanks to Norns. Would be very grateful for any hint! Cheers!


Huge +1. Polygome is/was one of my favorites.

(also Press Cafe :upside_down_face:)


It isn’t really the same, but plonky scratches that itch for me.