I’m attempting the process described here to extract the preset .json from a dfu-programmer read dump. Looks like the Python script needs a new schema for 3.0.0. Is that as straightforward as creating a schemata/ansible/v300.py and updating all the C struct definitions to their 3.0.0 versions?

EDIT: looks like it’s a little more involved than that, I’m making some progress, will take any further questions to Github.

1 Like

Note that if you are coming from v1.6.1, you can use the script to generate JSON and then load it onto a module running any later version of the firmware – the JSON format is forward/backward compatible (modulo me fudging the definition file). This is why I haven’t been very thorough in adding new Python schemas because this procedure is generally only needed when updating from a <2.0.0 firmware. If you flashed to 3.0.0 already and have new settings since then, that’s another matter since due to my bug you’re kinda stuck.

I have a Python schema file or two for a couple more recent versions but haven’t PRed them and am less certain they’re correct. Might be able to save you some work.

Yeah, I had upgraded to 3.0.0 and already made some kria patterns that I wanted to save. I think I got it all sorted! https://github.com/monome/ansible/pull/80

2 Likes

Can someone please explain how do I activate JF control from kria on ansimble? Couldn’t find any info on this in the docs.
Re controlling er301 from kria, is there a setting to activate this or it just feeds over ii by default?
Thanks!

it’s in the advanced doc: https://monome.org/docs/ansible/advanced/#ii-leader-mode

Im trying to adjust the tuning calibration with my ansible (it is not tracking across octaves) and Im wondering how to adjust the initial value for track downwards? The keys are not lit, and there does not seem to be a way to adjust in the downward direction. The issue Im having is, lets say I have my oscillator tuned to A, and then I plug in the v/oct from output 1, the oscillator will jump up 8-10 cents sharp rather than staying static. I can adjust the next step and have it be exactly right, as with all other steps in the sequence, but the initial step requires me to basically connect my v/oct, slightly retune the oscillator, and then everything is good. Id like to be able to avoid that if possible. Thanks!

You can’t, the DACs are unipolar and the initial value is what they output when their digital input is zero. To get them in tune you have to find which output has the highest initial voltage and bring the other channels up to meet it. So unfortunately there’s not a way to keep this pitch jump from happening.

dfu-programmer: not found would mean either that dfu-programmer did not install successfully through homebrew, or it did but your terminal can’t find it. Make sure that you don’t get any error messages from brew install dfu-programmer, if you do you can post them here or PM me. Sometimes you might have to restart terminal or something for a newly installed program to show up. Once you’re able to run dfu-programmer we can go from there with troubleshooting.

This just sounds like the default setting where loop mode is ALL, this is configured on the config page. It’s saved to the module so it’s possible you had changed this at some point in the past. If you don’t have Earthsea then you didn’t get updated though, but if this setting changed then possibly you reflashed the old firmware file you had?

Is it an issue with the hardware itself?

As far as I know, yes, DAC offset error is typically caused by things like inexact component values, even things like resistance mismatch inside the DAC chips. You would have to compensate for this with an external offset.

Ok, just nature of the beast then. I’ll cool my jets. I sometimes get obsessed with the accuracy of the details!

Just got everything up and running. This is fantastic, thank you for putting this together!
Ive noticed a couple of things in the brief hour or so I was playing. My set up is norns-crow-ansible-jf.
Ive found turning on JF in the config page a little buggy. At first I was entering the config page as stated but I was exiting by pushing the preset button on the grid, this seemed to always disconnect JF. I was able to reconnect by using Norns and Awake as Awake has a JF reset function, I still had to select JF as an output in Awake to kick JF back into life. I did however notice if I push the button next to the USB port on Ansible to exit the config page it seemed to maintain the i2c connection.
Another thing I noticed is the LEDs on JF are extremely dim, Im presuming this is due to the volume per voice?
Would love it if by default they were bright enough to know things were happening.
I also noticed that only 3 voices are active in JF polyphonic mode instead of cycling through the 6 voices. Is the a constraint or is it possible to allow the full 6 voices to cycle?

1 Like

There is a JF settiings config mode for selecting JF.VOX or JF.NOTE as well as setting your default octave - see this https://monome.org/docs/ansible/advanced/#ii-leader-mode

2 Likes

Interesting, this seems to work OK on my bus that also has Teletype and a few other modules. I will need to try a bit later with just crow as a leader and see if that makes a difference. I would expect toggling JF off and on in the Ansible i2c config page to also reset JF since this also toggles the JF.MODE.

Yeah, the velocity used for notes is determined by the Kria duration parameter, so the default velocity is less than the maximum. This can wind up feeling a bit odd in other apps, interested to hear other ways to decide what value to use for velocity.

So this is because Ansible sends note-off messages and doesn’t know which mode Just Friends is in. The note-off behavior is important for being able to play Earthsea in SUSTAIN mode, for instance. When JF is in SUSTAIN mode, all six voices should be used, but in TRANSIENT and CYCLE modes it seems that an i2c command of JF.NOTE <pitch> 0 is interpreted as a zero-velocity trigger to the next voice, which winds up skipping every other voice. Through studiously listening to crows gossip I’ve gleaned that an upcoming JF firmware update would allow Ansible to (occasionally) check which mode JF is in, but I’m curious to know if @Galapagoose thinks treating JF.NOTE <shift> 0 basically as a “rest” in TRANSIENT and CYCLE modes is intended behavior.

2 Likes

Thank you for clarifying some of my questions. Interesting about the JF note behaviour. I’ll be testing things out again tonight so if i find anything else thats odd ill let you know. When things do work its so much fun. Playing JF with Earthsea is wonderful. I also plugged my op-1 into Ansible and played JF like any poly synth which blew my mind :exploding_head: Thanks again for that hard work!

2 Likes

This update is fantastic. I’ve had ansible for 3 years or so and it was the lead in to the whole world here. It is now what I had imagined it could be at the outset but at a fraction of the cost in funds and HP. Please direct me to further reading if available, but I’m wondering how to get TXo to do the following (could not find it):

  • How do I set the root for TXo (in Kria for example)? It doesnt seem to respond to TO.OSC.SET or similar commands

  • I thought maybe the Kria gate length setting might work to set the envelope length but they do not appear to (although i think this would be a great option).

Edit to ask if there is an amplitude setting for the TXo oscillators like Velocity for JF? Or if there is some proxy for one?

1 Like

This probably is just getting immediately overridden by the TO.OSC messages Ansible is sending. I don’t know that there’s a way around this, would maybe need something like TO.OSC.OFF that behaves kind of like JF.SHIFT.

This should work, Ansible is sending TO.ENV n 1 when the gate goes high and TO.ENV n 0 when it goes low.

No, this would be cool but I already felt the velocity / duration relationship was slightly strained. Open to suggestions here, the duration alt parameter seems like one possibility though I’m hesitant about the best option for a whole UI page (and am not sure about the memory / flash requirements of an additional parameter).

2 Likes

I’ve been doing a bit of testing today and I have found that TO.CV x V y can set the amplitude of each voice. I put it in the init script for my purposes but I guess it would work great dynamically too.
I was mistaken and the duration parameter is working but I’m finding it has a minimal affect. I’ll test some more. Maybe changing the default envelope decay time might give better results.
A TO.OSC.OFF or similar offset for the TXo oscillators would be amazing. Is this hard to implement? My skills are limited to playing
I’m also getting freezes across my i2c modules since putting TXo back in (with teletype, w/, jf, crow and the teletype backpack -can’t remember the name) but I will read above to trouble shoot. Thanks again for an amazing update to an amazing ecosystem

Hi there, apologies if this is not the correct page to post on. I just successfully updated ansible to 3.0, but now when I power up the module with a grid, it does nothing. The grid won’t power on and TR lights 2 and 3 are on, but the module seems to be otherwise frozen/unresponsive.

Weird. So does it work if you plug the grid in after powering on? Are you powering the grid directly from Ansible or using an external USB power supply?