Ansible - best way to play a Norns synth with Crow?

I’m sequencing my modular with Ansible Kria and I’d like to add a Norns voice controlled by one of Kria’s four lanes.

What’s the simplest way to use Crow to achieve this? Should I just go via CV/gate inputs, or is there a directly digital route via I2C for example? At a quick glance I don’t see a stream I can subscribe to for Kria note events in the II spec.

CV/gate is your best immediate option. This is not implemented at the moment with I2C, which is maybe best thought of like an RPC rather than an event stream you can subscribe to. When crow is the leader, it can only listen for responses to I2C messages it sent to a follower. When other devices communicate with crow they have to target its address directly. As far as I know you can’t really sniff for all traffic on the bus that’s intended for other addresses, because generally the I2C hardware sends ACK bits after every byte – two followers with the same address would try to ACK simultaneously, which could cause problems.

However it should be possible to implement something like this as an option for Ansible leader mode by making use of crow’s I2C follower implementation. This would essentially let you run arbitrary code on crow in response to Kria note events, using Ansible as the bus leader. I believe crow -> crow communication is possible as of crow 1.0.3 but the code hasn’t been written for other devices yet.

2 Likes

Super informative, thank you!