I did it (I think). I have a P12 module. The only notes I could send from my module were the Arp notes.
But yeah. All in all. I created a loop for the P12, feed all but the note data back to it (I think).
And Pyramid receives those arp notes and can send to other synths.
This is the input channel remapping for my P12 (what iCM4+ gets from the synth). It operates on channel 3.
So I send Pitch Bend, Channel pressure, Poly Key Pressure, Note On/Off to channel 7.
This is an important part. It does not matter to what channel I send it, because Pyramid merges all MIDI IN.
This is the port filtering output for Pyramid (what iCM4+ outputs to Pyramid). So I block everything on channel 3. So it does not receive ANYTHING on channel 3 (P12 channel).
This is my personal Port routing for P12. It is connected to the USB hub on the 3rd slot. So it is sending data to slot 1 (Pyramid) and 3 (back to itself).
So here we are seeing a midi loop. P12 send everything back to itself, but note data is forwarded to channel 7 (the synth is not listening to this channel). And Pyramid receives the note data. Can output to any channel, when channel 3, then back to synth. And I block everything coming into Pyramid on channel 3, so it isnt listening on the other messages.
I can say that my loop works with program change messages and seems to work with CC and NRPN. But I cant be sure 100%, as my P12M in local off mode does not unlink the front panel from the knobs. And my ARP note data seems to flow as you wanted.
So I ask, if anyone here has a DSI synth and a iCM4+, please try this.