Crowify: easily map Crow inputs to Norns params

Crowify

A Monome Norns library for easily adding Crow input support to existing scripts.

Usage

  1. Download lib/crowify
  2. Place the file inside your script’s folder, typically in the lib directory
  3. Import it from the path you’ve chosen (lib/crowify in the code below), then use it as follows:
-- create Crowify class and crowify object
local Crowify = include("lib/crowify")
local crowify = Crowify.new()

function init()
    -- register parameters with crowify
    crowify:register("cutoff")
    crowify:register("resonance")

    -- after registering all your params run add_params()
    -- to make them visible in norns params menu
    crowify:add_params()
end

--- OPTIONAL
-- by default, Crowify updates every 1/25th of a second
-- if you want a different update speed, pass it in
local slowUpdatesCrowify = Crowify.new(1/2)

--- OPTIONAL
function key(n, z)
    -- if you want to use a shift key with Crowify
    -- pass key params in
    crowify:handle_shift(n, z)
    redraw()
end

Requirements

  • An up-to-date Norns (exact OS support unknown)
  • A Monome Crow (or the desire to support one in your Norns script)

Acknowledgements

@mimetaur for the original Arcify

Roadmap

  1. Beta release & bugfixing
  2. Remove the need to register() params, and introspect them from the global params.params_ table directly
27 Likes

This is rad.

I’ve just added it to the wiki (norns.community):

4 Likes

this is brilliant, thanks!

BLESS YOU. OH HEAVENS BLESS.

Seriously, this will be so helpful for folks like me who would like to tack crow support on to a script but May lack the complete chops.

1 Like

This seems really awesome and I want to make sure I understand it correctly—this script will allow me to connect Crow to Norns via USB and then use inputs from Crow to control assignable attributes of a script? So for example I could feed an LFO into Crow and then, with this lib added to the script, control, say, Volume in Galciers with said LFO?

Apologies if this is an obvious question.

1 Like

Yes, this is exactly right! The setup work is that it would require adding Crowify to Glaciers. You can either pester the script author to do that, or you can do it yourself if you don’t mind getting your hands a bit dirty :grinning_face_with_smiling_eyes: It’s very very simple to integrate (it really is as simple as it shows in the first post, typically around 3 lines of code, plus one line per parameter ID you want to register), but I know coding can seem a bit daunting :sweat_smile:

1 Like

Awesome. It’s super kind of you to take the time to answer. I have norns studies on my long list of things to do, so my hands will be getting dirty with code soon enough. Hahaha! I need to get over my fear of coding—certainly anything that breaks can be fixed or reinstalled. :slightly_smiling_face:

Whether I try adding this before or after I do some of the studies, we’ll see. Thanks again!

Posted too soon! One last question: Will only the two Crow inputs work or does this lib read every input/output jack on Crow as an input? I checked the github and didn’t see. Again, apologies if the answer to this is obvious. :grimacing:

just the two :slight_smile: code is awesome, but it can’t change the hardware :cowboy_hat_face:

2 Likes

Hahaha thanks for confirming.