On 07.10.2016 16:35, Maurizio Berti wrote:
  Hello,
 I need to find a way to communicate via OSC with a non-session-manager client
 (non-mixer) by using a fixed port number.
 I'm developing a "midi proxy" based on mididings, which allows me to use a
 Novation Launch Control XL as a controller for various midi devices.
 Now, I wanted to use it with non-mixer, and since mididings supports osc this is
 ok. Its interface is pretty basic, there's only a SendOSC function which accepts
 the destination address, the osc path and optional arguments.
 My program creates a configuration file with mapping for every physical
 controller, each of them has a different patch assigned; once the program is
 loaded in "live" mode it creates a mididing configuration on the fly and runs
it.
 When using non-mixer in standalone mode I can set a fixed port and I'm able to
 send messages without any problem, since the controllers have their SendOSC
 command with the "hardcoded" port number.
 The problem comes when using non-mixer within a non-session, because obviously I
 cannot manually set the port number for clients.
 I really tried and looked around for solution on how to communicate with the
 non-mixer through nsm, but with no luck.
 I even tried using the /nsm/server/broadcast using the format sf
 "Non-Mixer.nKWUR/strip/Pianoteq/Gain/Mute" 1.0.
 The only way I can access the non-mixer is through its randomly created port,
 which I can find in the log when adding non-midi-mapper to the session. But this
 is not practical, first of all because I'd have to change the port number in the
 configuration file every time non-mixer is started, and also because I'd need to
 add non-midi-mapper and sniff its log.
 In case you were wandering, I cannot use the midi mapper with mididings, because
 I need to control other parameters which are not available to it (plugin values).
 I could try to create an OSC "router", using a fixed receiving port (but I
don't
 know how to find the client port, a part from looking in the nsm log), but I
 don't like this solution.
 Am I missing something? Does anybody here have any idea? 
I don't think you're missing anything. I believe to have hit the same wall in
the past.
How about not directly adding non-mixer to non-session-manager but a
shell-script proxy (e.g. non-mixer-fixed) with your desired command line arguments?
--- ~/bin/non-mixer-fixed-----------
#!/usr/bin/bash
exec \
        -a non-mixer-fixed \
        non-mixer --osc-port 9090 $*
------------------------------------