FIXED:Replicants automagically update, or not

I’m prototyping a UI and am trying to figure out when/how a replicator node updates its replicants, as I have two in my file but only one is automagically updating. Here’s the scenario:

Two replicators, rA and rB, and their corresponding components, masterA and masterB (each of which has custom parameters to control what happens inside). I have two DATs, dA and dB that provide data for the replications. In both cases, rA_callback and rB_callback sift through the DAT, one row per replicant, and copy each column of data into the matching replicant’s spare parameters.

DAT dA is a static table whose cells are updated by a midi-in’s callback, i.e. rotate a midi knob and a cell’s value goes up or down; hit a button and the corresponding cell is toggled between 0 and 1.

DAT dB is a derivation of the contents of dA and has dA as its input so that when something is changed in dA, dB’s callback fires. dB_callback clears out the contents and completely recreates the contents of dB (sort of a conversion from rows to columns representation, but more than that).

What’s working is that when I rotate a midi knob, dA gets updated and in turn replicator rA seems to recreate all of its operators. dA updates dB, rB, unlike rA, does not automagically recreate all its operators – I have to manually hit ‘recreate all operators’ for the derived data to update in my prototype UI.

My current workaround is to pulse() rB’s recreate-all-operators button at the end of dB’s callback. But I want to know, why does rA automagically update but not rB?

Hi @antoinedurr

without seeing a replicable example I’m not sure my answer will be fully correct but:

instead of copying data into parameters with a callback, use expressions to pull data from the table into the replicant’s parameters

Otherwise Replicators don’t usually recreate the operators if something in the template table changes unless you use the Replicator COMP’s Name from Table parameter set to “Column by ..”

cheers
Markus

You’re right, pulling values is likely the better approach.

But I’m still very curious why my first replicator, rA, keeps recreating all its operators every time. It’s in replicate-by-number mode (and btw, on rB setting it to table mode didn’t get it to auto recreate all operators).

Hi @antoinedurr,

can you share your file? There is not enough information for me to recreate the issue.

cheers
Markus

It turns out that there was a bug in the Replicator Container: I’d set it to by-table, then changed it to by-numbers, but the by-table was still active underneath as I hadn’t removed the pointer to the table. So it was auto-recreating all replicants despite being in by-numbers mode.

In the meantime I’ve updated the setup to use Dat references, and it’s working great.