You’re a champion :slightly_smiling_face:

Thanks for this. I’ve figured out the tuning (I didn’t get deep enough into the octaves, if that makes sense) and all seems to be good. As for the preset lights, I have the newest version of the grid.

Another question regarding newest feature of ansible as i2c leader to work with jf and others: can I just connect to crow to provide pull ups? Currently I have ansible, crow, and jf. Crow and jf are connected via ii. Sounds like I could just connect ansible to crow to utilize new functionality?

Yes, this should work! I believe that prior to crow 1.0.2 you had to explicitly turn on pullups but now they’re on by default, so you should just need to hook it up.

1 Like

Playing JF polyphonically straight from the grid is ridiculously great. And the interface for setting it up is so very well thought out. Thank you!

1 Like

Hmmm… after playing with it a bit more, I seem to be having some trouble getting Just Friends to reliably switch into and out of the polyphonic “Synthesis” mode using the grid and ansible. Should it switch in and out depending on the follower mode? It seems like it sometimes gets stuck in one mode or another irrespective of what I do on the interface (and even stays there on power cycling). Can’t quite figure out a pattern of behaviour to reproduce it unfortunately.

Also I’m finding that if I press the bottom left button in the configure page (to toggle off JF for the first voice, for example) it selects the 8th preset and drops back to the main app. This seems to happen with meadowphysics and Earthsea but not Kria.

1 Like

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.

2 Likes

Brilliant - thank you! That fixed the problems for me.

I think it would be good if you could clear all the sustains when switching apps on the ansible and (crucially!) when disabling follow mode. I’ve ended up with stuck notes in Just Friends that stay indefinitely even across modes on the module and only clear when I go to Earthsea and mash some keys :-). But while I’m within an app, the current sustain implementation seems fine to me.

Thanks again for adding a whole new dimension to my system. :pray:

1 Like

Really great to be able to access JF through ansible ii. Seriously, thanks for this @csboling.

2 Likes

This is awesome! Thanks a lot! :heart:

What does this do differently compared to the regular per track octave shift?

And this i2c leader addition got me wondering: Would it be possible to add three additional tracks (which is effectively the max since we already have 4 tracks + the bottom navigation row) to Kria that output via i2c followers? For example using crow as i2c follower for 3 additional trigger outs.

1 Like

One difference is that you can transpose down one or more octaves from the follower’s default tuning (usually middle C) whereas the track level octave shifts and the Kria octave parameter can only increase pitch from the root note. With ER-301 or TXo in gate/CV mode this should also allow you to have some notes correspond to negative voltages if you want. I also find it useful to send the same sequence an octave apart to two followers, or otherwise affect pitch for all tracks mapped to a voice.

My guess is that this would run out of RAM and/or flash on the device because each track stores a lot of parameter and position data, but I haven’t tried it. You would most likely have room on a stripped-down version of Ansible that removes some apps, Earthsea is the other app with the most state data. The assumption that there are 4 tracks and they correspond to the 4 main output channels on Ansible is present in most of the code, it would take a bit of effort to get everything to work.

1 Like

I’m sorry if this is the wrong place and I’ll delete if so, I’ve lost my precious monome USB ansible cable and I’ve ordered 4 (yup) from the states but there is this locally
https://au.rs-online.com/web/p/usb-cables/1862807/

Would that work?

Seems fine, any plain USB A-A cable should be no problem. As far as I know the only issue is with “data transfer cables” which have some kind of nodule in the middle containing some extra electronics that you don’t want for flashing firmware.

1 Like

Someone very knowledgeable suggested that cable, just wanted to double check, thank you very much

OK, clear. Thanks for the clarification. I tend to start with Kria’s track level octave switch either one or two up from the default so it’s possible to transpose down as well. Seems like you sometimes use it for something similar. I’ll play around with it to get a better feeling for it.

Yeah, I was already expecting this might run into resource limitations. It’s currently the only thing that might force me to switch to using norns + 3 crows (or crow + Ansible) for sequencing instead of just Ansible, just missing those tracks. That’s why I was hoping it would be possible :slight_smile:
I have some time off the coming weeks, maybe I should invest the time in properly learning C so I can help out with the firmware.

1 Like

Updated build which fixes this (2ab892a)

but I didn’t include this yet, because I think testing this may have been involved in getting my TXo in this odd state and I’m not sure if I’ve fixed the issue yet.

1 Like

i have an ansible midi mode feature request:

when in allocation style 4 (fixed) it seems that ansible is always listening to all midi channels. i tried mapping note and cc values from separate midi channels on my device (op-z), but after the mapping is complete ansible responds to those values from every channel. ideally ansible would learn the midi channel along with the note/cc.

:slight_smile: thanks

I have an ansible request for kria:
have a dim light added in Octave mode of steps that are active
I always wanna add Octaves to certain Notes I have selected
But I have to go back and forth between the two
to select the octaves to the corresponding notes
Thanks

5 Likes

I like this idea but I think probably it should be off by default? Seems potentially confusing to have keys from another page lit up, especially when first trying to learn to use Kria. I’d like there to also be some visual indication that the note overlay is on aside from just the overlay itself. I frequently want to have a quick reference for something like this though. Another example would be that sometimes when programming notes, I want to see the notes I have programmed on a different track. As with most features, the hard part is figuring out a UI that avoids being intrusive and avoids conflicting with other stuff. Maybe should just be another toggle on the config page or something that enables the overlay?

One thing that would also need to get cleaned up first: I’m spotting a couple places where it looks like on the octave and duration pages, there are keys that are dimly lit when they shouldn’t be. I should do another round of ghost hunting in the refresh code before doing another Ansible release.

I can try to look into this some, but I confess I don’t use the midi features much and am not too familiar with the midi parts of the code.

Haven’t forgotten about this, just still puzzling over the UI. The shift key approach seems reasonable, not sure if this would maybe be preferable behavior to the compensate-shift action I adapted from WW Kria, but having the extra transpositions hidden behind a shift key seems like a potential source of confusion – have to try it out and see. Is having an increased transpose range for each scale note necessary to get in the right key? Or would this generally be used for the root note, and we maybe could have a separate place for showing a single extra transposition value? The scale page is quite busy already. A separate page for scales is an option, but I worry about this shaking up workflows and diverging from UIs of other Kria implementations. The clock and direction controls are perhaps a bit out of place though, that could free up some more space if another home for them could be found.

No, I think it’s a bit unnecessary - the main thing is to be able to shift the root note up higher to get to higher keys as you say. A separate transpose would be great, I think. Thank you so much for thinking about this!

You’re right that it’s best to be careful before changing things too fundamentally! But maybe there could be an extra page with an alternative scale view?

I’d actually prefer a different way of doing scales that’s more in line with what Eurorack quantisers typically use, and I think is a lot more intuitive. Basically, you’d have a single row of 12 buttons, each of which represents a semitone in the octave. If the button is lit, then that note is “on” in the scale, if it’s not lit then it’s “off” in the scale. (You’d probably want to constrain it so that the root note was always “on”.) This allows the whole interface to be much more compact, and I think more simple. (You’d have a second row of 12 with one button lit to work as a key transpose.)

The slight difference between this approach for Ansible and a typical quantiser is that Ansible expects there to be 7 notes in a scale. A typical quantiser takes an input note (usually any arbitrary voltage) and snaps it to the nearest note that’s switched on, but Ansible instead directly indexes into a set of notes in its scale. Probably the simplest approach for ansible would be to just use the first 7 “on” notes in the scale, allowing the two representations to be interchangeable.

2 Likes

Just Friends works perfectly. Arc is working also. Having Kria working with Ansible is a game changer for me. Even having Earthsea and Meadowphysics with JF is a bonus. Thankyou so much for you work on the updates.

One issue I am having - I couldn’t get the er301 to respond when switched to er301 mode - but this is maybe user error. I have the er301 system settings (Teletype) switched on. I tried all the ports but no joy.

UPDATE : OK er301 is working with SC.CV on ports 1, 2, 3 and 4 - the issue i had was Orcas Heart multipass on the same i2c bus wasn’t switched off. However the issue i have now is i still cannot get SC.TR to work. Im getting a sustained 1 time trigger on SC.TR Port 6 if that’s any help.

2 Likes