I am working on a fairly complex project and I need to connect any number of OSC remotes to a given MIDI controlled device. I need to be able to filter messages to each remote depending on what each remote is displaying. It's rather easy (relatively) to do this one remote but does anyone have a great way of opening an instance of a second, third, etc remote patcher that keeps this scalable and clean?
Right now, I am seeing:
a module that talks MIDI and sends and receives everything and stores info in value objects.
a module that receives all incoming OSC messages and updates the values and sends out to MIDI
a module that communicates directly to a given OSC remote that is aware of what is being displayed on that remote and filters outgoing messages to that remote to follow.
I can not begin to show all of the potential data at each remote and the remote software is pretty dumb and updating data needs to be tailored at the TX stage and cannot be filtered at the remote.
The question again - What architecture is best for supporting the goal of being able to add more remotes that display different and changeable information while interacting with the main controller program modules?