neuromore/studio

unable to get data from OSC output nodes

rpacz opened this issue · 2 comments

rpacz commented

Hello,
I'm trying to get some data out of neuromore studio and into the outside.
When I use Mind Monitor for Muse (with port 7000) the OSC traffic is detected ok by different OSC monitors (the one that had the most information for me was Protokol). Neuromore studio detects the incoming traffic at port 7000 as well. However, when I try to use the OSC output node from inside neuromore studio, I can' detect that traffic with any OSC monitor.

I created a simple test classifier made up of a sine wave signal generator connected to an OSC output:
test classifier

My network settings are as follows (port: 4546) :

network setup

And Protokol or any other OSC monitor comes up empty handed.
OSC monitor

I think that for some reason Neuromore studio blocks any external program from binding to the output port (in my case 4546 but any port I tried seemed to be blocked by the studio).

rpacz commented

I tested this with an OSC server written in python and was able to see traffic ok. I used the following code.

from pythonosc.dispatcher import Dispatcher
from pythonosc.osc_server import BlockingOSCUDPServer

def print_handler(address, *args):
print(args[0])

def default_handler(address, *args):
print(f"DEFAULT {address}: {args}")

dispatcher = Dispatcher()
dispatcher.map("/out/0*", print_handler)
dispatcher.set_default_handler(default_handler)

ip = "127.0.0.1"
port = 4546

server = BlockingOSCUDPServer((ip, port), dispatcher)
server.serve_forever() # Blocks forever

When I run the above (and for my own similar code too), the port has already been bound to. It's not entirely clear to me how OSC output is meant to be working. Should Neuromore be connecting to an external server in order to provide it its output? In which case, how come it's binding to the port given in the settings? Or is it running its own server, that I should connect to, in which case, how would I go about receiving the callbacks for output values?

Thanks