OSC connection problem [solved]

Build 0.6.0

Hello all,

I can´t get OSC to work.
On the elk-pi I started (over SSH and Ethernet) the JX 10 Synth and its running fine with MIDI keyboard working.
Then I started Open Stage Control (Mac OS) like described here.
The “send” IP then is prefilled with the local adress of the elk-pi.
Though I didn´t change anything in the Sushi config I left the port as is (24024).
After loading the template, there are errors shown in the debug window.

{ Error: getaddrinfo ENOTFOUND mind@elk-pi.local
at errnoException (dns.js:50:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
code: ‘ENOTFOUND’,
errno: ‘ENOTFOUND’,
syscall: ‘getaddrinfo’,
hostname: ‘mind@elk-pi.local’ }

To me It looks like a connection problem.

Hi!

Might be Open Stage Control not digesting the hostname as passed in that way.

First advice from your log would be to use elk-pi.local as hostname instead than mind@elk-pi.local (it’s a simple UDP connection so there’s no authentication needed). If this doesn’t work, try to use the board’s full IP address as reported by ip a or ifconfig.

You can debug incoming OSC connections with oscdump without launching SUSHI, e.g. launch:

$ oscdump 24024

inside the RPi and you should see incoming messages.

Hi @Stefano ,

thanks for investigating.

First advice from your log would be to use elk-pi.local as hostname instead than mind@elk-pi.local (it’s a simple UDP connection so there’s no authentication needed).

This didn´t work.

The IP adress seems to be 127.0.0.1. Shown in ifconfig, if I´m not wrong.

eth0 Link encap:Ethernet HWaddr B8:27:EB:AE:DB:E8
inet addr:169.254.167.237 Bcast:169.254.255.255 Mask:255.255.0.0
inet6 addr: fe80::ba27:ebff:feae:dbe8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6480 errors:0 dropped:0 overruns:0 frame:0
TX packets:4363 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1203264 (1.1 MiB) TX bytes:1098222 (1.0 MiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:7009 errors:0 dropped:0 overruns:0 frame:0
TX packets:7009 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:429475 (419.4 KiB) TX bytes:429475 (419.4 KiB)

wlan0 Link encap:Ethernet HWaddr B8:27:EB:FB:8E:BD
inet addr:192.168.178.36 Bcast:192.168.178.255 Mask:255.255.255.0
inet6 addr: 2003:e9:6f05:e600:ba27:ebff:fefb:8ebd/64 Scope:Global
inet6 addr: fe80::ba27:ebff:fefb:8ebd/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:18237 errors:0 dropped:11165 overruns:0 frame:0
TX packets:343 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4133863 (3.9 MiB) TX bytes:46905 (45.8 KiB)

I´f I use this IP, oscdump on port 24024 do list no messages too.

Hi @andrakar,
127.0.0.1 is the localhost loopback address, so you can’t use that.

You should use the one reported by the WiFi interface (wlan0), 192.168.178.36 from your logs.

Hi @Stefano,

oh yes. That worked.
oscdump on port 24024 gets messages.
As you might have thought, I´m fairly new to many of those things. I´m a poor beginner but really appreciate your support for newbies like me.
Thanks!!!

The synth (Sushi) still gets no changes.

1 Like

HI @andrakar,

No problem at all, we don’t have an official “code of conduct” yet but we’re here to assist anyone regardless of their embedded Linux level :wink:

Can you post here the dump of the OSC messages that you are trying to send and your SUSHI JSON config?

Hi @Stefano ,

I have the same experience as @andrakar. I started oscdump on the RPi, and started Open Stage Control on my Linux VM. Using mda_jx10_vst3_open_stage_control_gui.json as the session file, I was able to see messages on the RPi when I use oscdump 24024. For example, when moving the cutoff knob, they look like this:

e1a77c42.561d10b1 /parameter/synth/VCF_Freq f 0.050000
e1a77c42.58a7d672 /parameter/synth/VCF_Freq f 0.100000
e1a77c42.6584901c /parameter/synth/VCF_Freq f 0.150000
e1a77c42.b498915b /parameter/synth/VCF_Freq f 0.190000

However, when running sushi on the RPi, with the config file ~/config_files/mda-vst3-configs/config_mda_synth.json, there are no changes when controls are moved while I’m playing my MIDI keyboard.

I suspect the problem is a path/name mismatch. This is from /tmp/sushi.log:

[2019-12-20 16:36:17.563] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Freq
[2019-12-20 16:36:17.563] [info] [osc frontend] Added osc output from parameter jx10/VCF Freq

I edited the mda_jx10_vst3_open_stage_control_gui.json file, and changed the “address” key value in the “JX-10 Elk Controller” tab section from “synth” to “jx10”, and now the control is working.

I hope that this is enough information.

Take care,

  • Rick

Hi @rcohen,
thanks for the detailed analysis and yes, indeed that was the issue, the processor name in the SUSHI JX10 config was different between the VST 2 (synth) and the VST 3 version (jx10).

We’ll uniform this in the next update.

Currently the way to check OSC paths is the one you showed by analyzing the system logs, we have ready to deploy a new system that will dump all the plugin information to a separate file, including OSC paths and that should make these debug activities easier.

Cheers,
Stefano

Thanks!

Is there a way to initialize or update the Open Stage Control GUI to show the current values of all of the controls?

  • Rick

Currently, something like that is only available with gRPC but we have in the backlog to implement something like a simple “OSC echo” message that could do that.

If you’re only using Open Stage Control to change parameters you can save the state in Open Stage Control itself but it won’t be synced if you e.g. change a parameter through SENSEI or MIDI.