Thanks for testing! I’ve posted a new build (d1b2017) in the top post.
Yes, it’s intended to switch to JF.MODE 1 (synthesis mode) when you select either of the first 2 JF modes, and set JF.MODE 0 for the third mode, since that basically sends normal velocity triggers to the first 4 channels of JF. However, I found that it was not correctly setting JF.MODE 0 when toggling the JF follower off - this is fixed. I believe JF is never in synthesis mode on startup, but Ansible may set it immediately on a power cycle because it is part of Ansible’s flash state. Possibly there should be an i2c panic button to clear all followers and disable synthesis mode?
Oops, good catch. This is fixed in the new build.
The other thing I noticed is that in fixing SUSTAIN behavior for Earthsea, this made it so TRANSIENT mode would only ever activate every other voice – this is because sending JF.NOTE 0 0 causes JF to allocate a voice with velocity 0. This is fixed in the new build but the consequence is that in SUSTAIN mode, when you’re not in Earthsea (I’ve special-cased Earthsea for now), notes are never cancelled and will sustain infinitely. I don’t know if this this fine or if there should be another toggle for JF to decide whether note-off events should be sent or not? Of course, as soon as you have a couple tracks out of phase, you are likely to wind up activating all voices anyway.
One more thing with Kria that I meant to draw attention to in these betas: I’ve included a possible fix for a timing issue that commonly affected note durations and trigger ratcheting when completely stopping and restarting an external clock in conjunction with a reset. This issue and this I believe are related to this. Duration and ratchet timing relies on Kria measuring the incoming clock frequency, so with a long time between clock edges it would guess wrong for the first clock. The way the fix works is: when resetting the playhead, always keep the previous measurement of the timing between two rising edges. I’d love to know if this fix is sufficient for people who’ve had problems like this with Kria, and some general testing to find any unintended consequences of this change.