Yes, same issue exactly. Thanks for making the connection. I am changing the action every call, so unfortunately the workaround won’t do it for me.

expecting a crow firmware update soon— thanks for your patience

6 Likes

Fairly regularly while running a script i’m working on i get these logged on the maiden REPL:

crow:	[string "eval"]:1: attempt to index a nil value (field 'acoutput')
crow:	[string "eval"]:2: attempt to call a nil value (global 'oice')

Not sure what to make of this? Can’t yet figure out a correlation to things going on in my script (which i’m happy to share if needs be)

I’m also not having any luck getting input[1] to react to ‘CHANGE’

1 Like

I think this would be best – it sounds like you’re defining some variables in the script that you want crow to reference, but those are getting lost?

this is sort of a red herring: https://github.com/monome/norns/issues/910, but also there’s a fix coming for Make Noise gates, which do not fall low enough for the default low threshold! your script should reveal all :crystal_ball:

Here’s we go:: script

I’d expand on that to say that it was not responding from sending a pulse from an output on Teletype which works fine for Input[2]… HOWEVER… thanks for that link because crow.clear() fixed it… nice!

1 Like

woof, @nattog, I was way off – you don’t have anything that looks like either of those messages, so maybe crow’s just dropping packets? that update will also bring some great stability improvements, which should help. do you notice changes in your script’s behavior when you get those messages?

awesome! still confused how this is accidentally necessary, but glad to hear it’s resolved :slight_smile:

crow:	[string "eval"]:1: attempt to index a nil value (field 'acoutput')

The script is a trigger / gate sequencer (i realised the version on github is slightly broken… woops), the above message seems to coincide with a missed trigger or gate so i guess its just dropping packets as you suggest.

curious what you came up with!

for my script, print wasn’t enough, as sometimes the response would be broken up by newlines unexpectedly.
so currently i have norns requesting crow to print its state and crow responds with a START, then several LOAD lines, then END. norns reads the LOAD lines as one buffer, ignoring newlines, and evaluates them as lua back in norns land.

I’m still really struggling with getting triggers on ansible over ii to work…

The the crow studies functions fine - but is on the cv-side of the ansible, not the trigger.

An example with a simple timed trigger from norns via crow to ansible would be much appreciated!!

(crow is updated to 1.0.1)

I was meaning to add triggers to the Ansible study (I added the CV support when I was trying to test if I had them properly hooked up via i2c), so I’ll give it a shot and see if I run into the same weird behaviors.

1 Like

Simple question, hopefully. Norns updated to latest firmware, awake at version 2.0.0. should I be able to connect usb from norns to crow and crow generate pitch and envelope controlled from norns. Is there anything else I need to configure on norns for this to work? Is data sent in midi format? Do I need norns set to midi out? If so what channel and device? Have searched lines and docs for information but can’t find an idiot’s guide…which is clearly what I need. Your help would be gratefully received.

hi joseph!

the current version is 2.2.0, so please ensure you’re updated?

in the parameters, there’s an option to switch what awake outputs: “audio”, “midi”, “audio + midi”, “crow out 1+2”, “crow ii JF”. so long as you’re choosing “crow out 1+2”, you’ll get v/8 from crow’s output 1 and envelopes from crow’s output 2.

midi is an option, but crow has a different syntax and requires its own option :slight_smile:

hope this helps, let us know!

1 Like

Thanks for your help Dan. I hadn’t scrolled down the list of output types. Can now see the crow options. Will try again with awake this evening.

1 Like

I’m really curious; any luck with Ansible triggers/pulses ?

I added trigger support to my copy of the studies here:

But I’m having the same weird results you are!

The get functions don’t work at all, setting the pulse time doesn’t seem to be affecting anything, and even when I manually turn the trigger on and off in the metro I get strange results that end up out of sync.

2 Likes

There’s currently an issue where sending multiple i2c commands sequentially will cause some of them to be dropped. v1.0.2 will solve this, but we’re not quite ready to roll out that release.

Regarding the get functions not working, I’ll investigate, but if you could post an example script that doesn’t work that’d be helpful too.

3 Likes

Thank you (great work, btw!!)!
Its good to know its not only me - but sad that the trigger implementation seems to be broken; pulse and get doesnt seem to work - and even if it might be related to the ‘multiple ii commands’ that galapagoose mentions, it seems there is more to it?

To me, it looks like toggle, trigger and pulse all just ‘toggles’ - but with some randomness as to when they do…

Do either of you see the same behavior in druid, or does the issue only present when using crow from a norns script? If I understand you right a crow script like:

metro[1].event = function() ii.ansible.trigger_toggle(0) end
metro[2].event = function() ii.ansible.get('trigger', 0) end

function init()
  metro[1].time = 0.25
  metro[1]:start()
  metro[2].time = 0.1
  metro[2]:start()
end

would give erratic trigger behavior and no ^^ii.ansible('trigger', 0.0) messages in the console? This seems fine for me, so I’m curious if the problem is actually specific to a norns <-> crow setup (but I am not myself a norns user).

I have only used Crow by way of Norns so far. I’ll try reproducing via Druid as well.

Just issuing the “pulse” functions in as expected through druid - so, I expect that it’s the crow<->ansible interface that is at fault somehow.

I looked in crow.lua - found these two lines 196 and 197:

crow.ii.ansible.trigger_toggle = function(channel) crow.send("ii.ansible.trigger_toggle("..channel..")") end

crow.ii.ansible.trigger_pulse = function(channel) crow.send("ii.ansible.trigger_toggle("..channel..")") end

…and there does not seem to be a “get” implementation…

I’ve tried to change it locally, and it definately helps (mostly), but there is still weird behaviour going on - mostly I think commands are not going through propably. Also, trigger_time doesn’t seem to work.