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?