i guess input[n].mode( ‘change’, …) would allow the same but only for a given voltage precision, though i could add lag in supercollider to make up for any “stepping” you might encounter depending on the rate of change.

actually this isn’t correct, i thought change worked by any voltage change past a given hysteresis, but that doesn’t appear to be the case. fwiw polling does the trick good enough for me right now :stuck_out_tongue:

I’m having a little trouble getting the input scale quantization mode to work. Any ideas?

crow.input[2].mode("scale", {0,2,4,5,7,9,11}, 12, 1.0)
crow.input[2].scale = function(new_note) print(new_note) end

I get this back in maiden:

    ### SCRIPT ERROR: init
/home/we/norns/lua/core/crow.lua:94: attempt to concatenate a table value (local 'a')
stack traceback:
	/home/we/norns/lua/core/norns.lua:136: in metamethod '__concat'
	/home/we/norns/lua/core/crow.lua:94: in field 'mode'
	/home/we/dust/code/shahin-seq/seq12.lua:91: in global 'init'
	/home/we/norns/lua/core/script.lua:105: in function 'core/script.init'
	[C]: in function 'xpcall'
	/home/we/norns/lua/core/norns.lua:137: in field 'try'
	/home/we/norns/lua/core/engine.lua:91: in function </home/we/norns/lua/core/engine.lua:89>

You can’t print ‘new_note’ directly be ause it’s a table. See the crow docs for the contents pf that table, or use the print function in tabutil (i forget the name exactly) to explore via the repl.

1 Like

tab.print(new_note) should do it!

2 Likes

Thanks @Galapagoose and @dan_derks. It doesn’t help when the debug statements add to the confusion. :wink:

If I remove the print statement and have just the line below, I still get the same compile error.

crow.input[2].mode("scale", {0,2,4,5,7,9,11}, 12, 1.0)

Appears to work if I call in druid however.

This sounds like your norns software is not up to date. Which version of norns are you using? If it is the most recent, I’ll have to see if there’s an issue with the norns integration script.

1 Like

Just updated my norns. That did the trick. Thanks!

1 Like

My crow is behaving a bit inconsistently when it comes to connecting to my norns (fates), with a script that makes use of all it’s inputs and outputs.

Usually when I hot plug it to norns I need to restart my norns script for it to behave properly, but for some reason that doesn’t always work. Sometimes I need to unplug crow, plug it again to norns, and restart the script again.

This norns script I’m writing does not include any code regarding hot plugging/connecting to crow, is there any command I can include to make sure crow connects correctly when hot plugging, or alternatively in the init block to ensure the connection happens when restarting the script? Thanks in advance!

Was wondering if somebody could help…!

I have crows and Norns both running the latest version. I never had this problem with previous versions of Norns/Crow.

My crow output is behaving strangely when running awake (norns), clocked by pamelas new workout.

The crow clock on Norns shows the bpm of the Pam, that’s fine. The output 1 is v/oct and output 2 is the gate which triggers a e Envelope generator.

The problem is that sometimes it skips a beat -and makes these random ratchet rhythms. You can see that on the grid the steps are jumped randomly.

Thank you so much in advance​:pray:t2::pray:t2:

Hello,

Would it be possible to write a Norns script that would tell Crow to run the druid script last installed on Crow?

1 Like

Provided you haven’t cleared the script with ^^c or run ^^f, you can simply tell crow init() which will cause crow to re-run the init function of the script currently in memory.

From norns (including maiden REPL) that looks like:

crow.send "init()"

This is untested, but I glanced at the norns code for connection and it should be enough. If for some reason this isn’t working let me know the behaviour and I’ll see what I can do.

1 Like

Thanks @Galapagoose,

Can I send this from Norns without maiden (without my computer)? Sorry for the ignorance.

yes

pretty much any command that could be sent from druid to crow can also be sent from norns w/o computer*

*if your lua script says so…i don’t think there’s a “livecode crow” script yet that mimics druid or some the m4l devices

Great @glia. Thanks. Would it be the:

crow.send “init()”

saved like a little script in the menu basically? The Crow studies covers this idea probably?

1 Like

Will not lie…I need to go thru em again myself! Usually wrangle crow from my computer not norns so I can’t recall off head

Others could probably chime in with details
cc @dan_derks??

1 Like

Gotcha. This evening I will see if I can save:

crow.send “init()”

as a lua script and put it in the code folder and then run it from Norns menu. If that works that would be perfect for what I had in mind.

you’ll need to wrap it in the norns script init, but this should work:

function init()
  crow.send("init()")  
end

let us know how it goes! :slight_smile:

3 Likes

Edit: Also this isn’t a huge deal. I thought it would be cool to be able to do and more convenient then power cycling crow but it doesn’t seem like it is a simple thing to implement perhaps.

Sadly It did not work.

Norns was running Cyrene with Crow. Crow was putting out clock through output 4. When the init script was selected, crow continued to output clock and did not run the druid script in memory.

Then after unplugging/replugging crow into Norns, Crow had no clock outputting and no script running. Then running init script again, clock resumed outputting out of #4.

After those tests Crow was unplugged and power-cycled. It ran the memory script unplugged as normal.

Edit: Also when crow is running a script from memory and then plugged into Norns it stops running that memory script.

When crow connects to norns, we ‘reset’ the crow virtual machine, stopping any currently running script. This is by design, and was implemented a while back because it became very confusing to people when they tried to run a norns script with crow integration and it was partially still doing the ‘crow-script’ thing, plus whatever the norns script added on top.

We don’t clear the script on crow when connecting to norns, simply deactivating it instead. That script is still available though, hence my suggestion of simply running crow.send "init()" which tells crow to run it’s internal init() function that the crow script should define.

One thing to note, whenever you load a new norns script, the crow environment is reset. This means you could have a script that just executes the above line, but as soon as you reload another script to have norns do anything, it will disable crow again.

From your message it sounds like the above is not working correctly, but I’m having a hard time understand what is happening vs what you’re expecting. If you could run through what happens on crow before you attach it norns, then when you connect to norns, and again when you run the crow.send "init()" command. If you could post the crow script you’re using that’d be super helpful too. I looked at Cyrene and nothing in there suggests it would break this functionality.

I know you say it’s not a big issue for you, but I think it should work, and perhaps there is a tiny fix that needs to be made to make it act as expected.

3 Likes