It’s not going back to my controller, it’s going into a MIDI interface to be distributed elsewhere:
Controller -> MIDI Processing Interface -> MIDI Thru Box -> Octatrack, Synth
Octatrack -> MIDI Processing Interface -> MIDI Thru Box -> Synth
The interface and the thru box are my only means of merging/splitting MIDI messages between my hardware. The I/O of the interface (where I can actually filter/process MIDI) is completely full, so many things end up connected by the Thru box, which can’t do anything except send what it receives to all connections. Octatrack needs to talk to things connected to the interface and things connected to the Thru box, so it’s necessary to have these connections given the restriction that I only have the Thru box and the interface. Everything is set up in such a way that there are no problems, except for in the specific scenario of Octa also having a MIDI track set to the channel of the synth (which is there because I want to sequence CC messages to it). Octa lets you choose whether CC messages received on the MIDI channel that a MIDI track is set to are passed through to MIDI Out (which suggests some anticipation of routing in the same ballpark as my set up) but seemingly not for MIDI note messages. This setting is why usually the loop
Octatrack -> MIDI Processing Interface -> MIDI Thru Box -> Octatrack
doesn’t cause any problems: the stuff the Octa is receiving (outside my specific scenario) doesn’t go any further - no loop.
I get why it works the way it does: you have controller -> Octatrack -> thing you want Octatrack to sequence. You want to jam with the controller and commit your jam to the Octa’s sequencer with live record when you’re happy. This would be much more convoluted (and impossible in the simple set up where you only had these three bits of gear) if it didn’t pass on the MIDI note messages it received to the MIDI out port. I was just hoping that the fact this behaviour isn’t fixed for CC meant it wasn’t fixed for note messages, and that I’d overlooked something.
There is a simple fix with the gear that I have: filtering the problematic note messages Octatrack is generating at the MIDI interface. A more convenient (for me) fix would be if Octatrack allowed you to do what it does with received MIDI CC: choose whether it’s passed forward in MIDI Out when you have a MIDI track set to that MIDI channel.