^^ crow help: norns

A post was merged into an existing topic: ^^ crow 2.0+ help: general (connectivity, device q’s, ecosystem)

Really loving using Crow with Norns, but seem to have some variability with how the gates behave.

Some scripts seem to trigger envelopes perfectly (Circles) but others (Awake, Flora) either seem to double trigger or completely hang at higher tempo’s. The only way I can get them to work accurately is by attenuating the gate signal first. Is this normal, or am I missing something?

Is anyone doing anything to store parameter/variable values separate their crow scripts? It seems like the options are:

  • norns (but then it’s not a standalone script)
  • parameters of i2c-capable modules (e.g. w/ tape loop points)
  • “analog memory”, i.e. a knob connected to input 1 or 2
  • don’t hang onto things, just live in the moment

I like the idea of writing a standalone script, exploring parameter space, and then recalling discovered parameters as a “preset”. I’m not sure what’s the cleverest way to do this though.

I don’t have a Crow, but I’d like to make my Norns script compatible. The script uses MIDI note values from 0 to 127 internally and I’d like to output them as 1V/Oct CV from Crow.

MIDI has a 10 octave range, plus 8 notes:
image

Crow’s outputs go up to 10V (let’s disregard negative voltages for now). So I could clamp the MIDI values from 0 to 119 (10 octaves) and simply map those notes to the 10V CV output.

Here’s the code I came up with:

function midi2cv(val)
  return (util.clamp(val,0,119)/119)*10.0
end

Then, whenever I want to output a CV note, I’d call:

crow.output[1].scale({},12,1.0)
crow.output[1].volts = midi2cv(something) 

This should quantize my midi2cv further into 1V/Oct chromatic scale notes over a 10 octave range, right?

Like I said, I can’t test this myself, so it would be great if someone could tell me if this would work :grimacing:

if i knew how to test this out with my crow i would! :slight_smile:

1 Like

It should be even simpler and no scale required.

Just offset middleC (or whatever you want 0v to equal) then divide by 12 to maintain 1v/octave. Something like:

output[1].volts = (midinote-48)/12

That would mean C3 is 0V.

3 Likes

Brilliantly simple! Thanks :pray:

I’ll probably release an update for testing tonight with Crow input and output support :slight_smile: Got everything coded already and just need to input that bit above when I get back to the hotel after work.

1 Like

Just reinstalled crow into a little pod to be ready to test it out with…my serge :dizzy_face:
full circle ouroboros type stuff :slight_smile:

EDIT: Tested out, will post more under the melody magic thread :slight_smile:

2 Likes

I read that Crow is automatically detected by Norns and properly interfaced, but is there a way that I can make my Norns script check wether Crow is connected? I.e. when the user connects Crow, the script should react to it and switch some settings automatically.

1 Like

When a crow is connected the function crow.add is called, and crow.remove upon removal. Beware that the crow library calls crow.reset() inside crow.add to clear whatever crow is currently doing. You will likely want to do the same in your script. You can also check crow.connected() at script-init to discover if crow was already connected.

FYI: We have just been talking about these discovery functions and their names are very likely to change in the next update.

6 Likes

Today I’ve received my Crow. I’ve just loaded Flora into Norns to use this fantastic script with my eurorack system. However, I’ve noticed that my oscillator isn’t in tune. Do I need to callibrate Crow outputs?

If I understand your issue correctly, you should be able to get everything sounding in key by tuning your eurorack VCO to whatever you see displayed as root note in the PARAMETERS page in Flora.

press K1 once > scroll right with E1 to PARAMETERS > select EDIT with K3 > scroll down to root note

If root note displays A1, for example, then tune your oscillator to any octave of A and the world will be beautiful.

2 Likes

I didn’t know this feature. Interesting!

But I didn’t explain my issue well. I tuned the oscillator, but when I tuned the oscillator for one note, another one was out of tune… Hence I ask if I should calibrate Crow’s outputs…

My apologies! I didn’t read your post closely enough.
If it seems Crow is giving odd values on its outputs for other scripts, it’s possible you need to calibrate.
The reference documentation suggests the process is quite simple. Just run

cal.test()    -- re-runs the CV calibration routine
cal.default() -- returns to default calibration values
cal.print()   -- prints the current calibration scalers for debugging

from Druid.

I’m not sure what the difference is between cal.default() and cal.test() but I hope one of them fixes your problem!

1 Like

You read my post closely. It was my fault…

And thanks for the info!

1 Like

Hi Guys,

Please forgive my ignorance here, looking to update my Crow to the latest version of the Firmware that includes updated Disting Ex support.

I’ve updating my Crow in the past, following the instructions here:

Just a little confused with the last two GitHub releases because they also include a crow.dfu file in the assets, which aren’t mentioned in the instructions.

Does anything need to happen with this file, or does one continue to update as before downloading the .zip file and installing the .command file?

Thanks in advance

There’s a section at the top of the document you linked to called ‘Setup dfu-util’ that I think covers this, unless I’m misunderstanding your question.

1 Like

Thanks @jaseknighter

Yip, I have the dfu-util installed as per the instructions, but this seems to be more generic. Prior to the past 2 updates, no .dfu files were included as part of the GitHub assests when a new version was released, so am wondering if things have changed, or does the dfu-util fetch the “correct” .dfu file from GitHub on installation of the Firmware?

I see. I’ll leave it to more knowledgeable folks to clarify…

1 Like

You can ignore this file for now. It is included in preparation for a new firmware update procedure. You can still update the same as before.

1 Like