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 $*
------------------------------------