I'm not sure exactly how the merge is working. This module produces scaled values for midi notes above or below a fixed value.
There are actually two breakpoints. For example, the merge will receive an event if a midi note is above of below the breakpoints. If the note breakpoints are set to 48 for the low and 70 for the high an event in sent to the merge module for any notes above or below the two breakpoints. However if a note is between the two breakpoints like 50 or 55 then no event is sent to the merge. Since the lower input of the merge is open it outputs a 0. So it seems the merge module is detecting an event from the ck distribution module but also from the audio clock.
Notice the open bottom pin on the merge. This works as does the one below it.
This also works.
This is the input of the Lower Keys module.
This is what worries me, if you notice the number 1 on the routers, they are being clocked by the distribution buss labeled ck near the bottom left. I'm worried because there may be a timing conflict if the events appear at the same time as the SR clock. If this happens the merge will output a zero instead of the latched value in one of the 5 output latches.
I tried synchronizing the open merge input with ck distribution buss with no luck so far. The confusing part is not knowing why the merge does not continue to revert to the lower input and continue to output a series of zeros at the SR clock rate. I know it's suppose to work that way during initialization, but why does it output a 0 on key events not being sent? As shown it's currently holding the last note event but will output a 0 after playing a key in the middle of the breakpoints. So it seems an event from the distribution buss has somehow caused the merge module to reinitialize.
In reality the distribution buss is out side this core as shown below.
I do not fully understand the merge module but it most certainly outputs a zero at initialization and will re output a 0 if a key event comes in that does not trigger any of the 5 latches. It's almost like the merge senses both the distribution buss and resets it like an initialization. Once again, it works that way in both of the above cases, one with an open port, or using it attached to the SR.C.
Even stranger is no event is generated even though the output is set to 0 but all keys generating events actually do generate an event.
How does this really work? What is going on with the merge? Tough question I know.