4 Big Knobs

4 Big Knobs

Simple tool for sending control voltages out of a Crow connected to Norns. Intended for use with Arc, where each Arc encoder controls the voltage sent from the corresponding Crow output. Works without Arc, too! Also has a Quantized mode and a Snapshot mode for interpolating between two different states



Please visit the wiki for full documentation: 4 Big Knobs | norns community


  • norns (200712 or later)
  • crow (2.0.0 or later)
  • arc optional, but encouraged
    • use a MIDI device for input in place of an arc by going into the params menu, clicking “map”, scrolling to “crow outputs”, scroll to “1_volt” and the other 4 options, and map each of them to a different control on the MIDI device


Latest version: v1.0.0 (2c4267c)
Available in the Maiden Library

Or, install via the Maiden command line: visiting http://norns.local/maiden when your norns is on WiFi and type

;install https://github.com/21echoes/4-big-knobs.git

into the command entry box at the bottom of the screen.

Also available as a direct download. Unzip it, rename the folder to just “4-big-knobs”, and put the whole folder onto your norns inside the /home/we/dust/code folder


Thank you for this! Super easy, super helpful


twenty characters of 🤌


For those without an arc this looks pretty cool, has native i2c


Maybe this can be mapped to a midi fighter to replicate arc :slight_smile:

1 Like

yup! go into the params menu, click “map”, scroll to “crow outputs”, scroll to “1_volt” and the other 4 options, and map each of them to a different knob on the MIDI fighter :+1:


Quantization mode is up!

  • Switch modes via Params menu. Defaults to Quantize mode if script launched with an Arc connected
  • E1 changes focused scale for editing
  • E2 & E3 select highlighted scale root and scale type
  • K2 & K3 quantize all outputs to their respective scales

Coming soon: continuous quantization

Would love feedback on this one. For instance, the “2 separate scales” system – helpful? Also, do we want more options than musical scales? How would you interleave them with the musical options?


For some reason I couldn’t edit my post but they’re free so


Alright, last update for the night: continuous quantization! v0.9.4 (e4e2c8c)

  • Now there’s just one scale. I don’t think having two really added much, and it ate up all the keys and encoders to support
  • E2&E3 still switch scale root and scale type
  • K2: toggle between continuous quantization and on-demand quantization
  • K3: quantize right now!

Love the script - this is the script before the recent quantiser updates playing 4 oscillators on the er301. I added the quantisers in the er301.



Interpolation mode is up! v0.9.7 (2bb6163)

  • K2 & K3 save current state to one of two snapshot banks
  • E1 interpolates between the two snapshots
  • If you change a dial while interpolating, an intermediary snapshot is taken.
    • Now as you turn E1, you are interpolating between 3 snapshots: snapshot 1 at the leftmost extreme, snapshot 2 at the rightmost extreme, and your intermediary snapshot in between them (located wherever the interpolation was when you changed the dial)
    • The intermediary snapshot is reset whenever you take a new real snapshot
  • Snapshot mode is the new default mode if arc connected – betting people will use this one more than quantize (quantize still available via Params menu)


  • Slew time added as a parameter
  • On-demand quantize mode gets its own separate slew time (slow smears from out-of-tune to in-tune)

I had a chance to play around with this this evening and I just wanted to say thank you! It feels so good to be able to play my modular like this, especially with the snapshots. I’m able to get transformations in sound that would be almost impossible otherwise while also having an easy return home. This is such a wonderful instruments for making performable patches!


Hi - would it be possible to add midi note data to the script? Ideally an assignable midi channel per knob outputting midi notes. The way i currently use this script is to play 2 or 4 different quantised oscillators via crow but would like to try the same for midi synths.


That would be cool! In continuous quantization mode, crow is currently taking care of quantization, so the script actually in some sense doesn’t know what notes are being played. But I can try to duplicate crow’s logic in lua and output MIDI that matches the norns-side quantization. The worry is that if I don’t match it precisely, the MIDI output will not match the crow output :confused: If someone’s an expert in C and wants to help me translate, that’d be awesome… I haven’t read or written C in well over a decade :pray: It reads like it’s just trying to round to the nearest scale value, but in my experience toggling between on-demand quantization (done via lua-side rounding) and continuous quantization (delegated to crow), there can be some shifts in voltages sometimes…


No problem - I didn’t realise the implications tbh. Sorry it was a big ask without knowing. Would the Arcify script help in anyway?

1 Like

This library already uses arcify, yes :smiley: wonderful little utility. I don’t quite follow how that would help with MIDI pitch output?

1 Like

Alright, moving the continuous quantization to norns-side rather than crow-side didn’t have the performance hit I was worried about. That makes it pretty easy to do MIDI out and be sure that the quantized crow voltage matches the MIDI->CV voltage. @mlogger if you want to try it out, here’s a ZIP file (unarchive, rename the folder to just 4-big-knobs, drag and drop into norns’s dust/code folder, replacing the old folder). I played with it a while and it seems stable & performant, but I’d love to know if it fits your needs

Setup: go to params > midi out. Each dial can configure:

  • Is MIDI out enabled for this dial? Does it send notes or CCs?
  • What MIDI device does it talk to? On what channel?
  • If it sends CCs, what CC number, and what’s the minimum and maximum value?

Ok - this is great - it works fine - I’ve only been outputting notes as I don’t have anything with CC but midi notes and gates trigger to the modular work fine. It talks to Midi device 1 2 3 and 4 as I am using a Sevillasoft host to host midi thing. channels 1, 2, 3 and 4 also work.


This is perfect for what I use it for. So thankyou so much!


Awesome! In that case, we’re at v1.0.0 (2c4267c)!
Available via standard install methods, or as a ZIP file

Release notes:

  • Send MIDI out: either map voltages to CC values, or map quantized voltages to notes
    • Customize mode, device, channel, CC#, CC min, and CC max per dial in params
  • Crow output min, max, and slew are now all customizable per-output
  • Various bug fixes around display text and script clean-up

Would it be possible to implement LFO’s into this script? I would want to be able to swap out a given knob on the Arc with an LFO and then press and or hold a modifier key (or combo) on Norns to momentarily switch between control of the frequency, amount and offset values for that LFO. Those should also be possible to control without an Arc, directly with Norns, so… that may require a change to the current control scheme, or add a page for LFO’s?

I think it would stray slightly from the original vision of this script since they’re LFO’s rather than knobs. At least they would still be Knob controlled!?