Stagelinq protocol API availability? (Part 1)

It shoulddd, but there seems to be something going on with @MrWilks network that is preventing the packets sent from his Prime 4 from being seen in the PacketConn reader, like they just don’t show up, but yeah hopefully it works now.

1 Like

Yeah, I think so too. There was another user with the same results so I was wondering if there is a hardware difference? You are super close though.

1 Like

I have a MacBook Pro connected to a Belkin Hub. That is wired to my network. It is the en14 Network adapter.

Wifi is en0. What I don’t understand, it works after a restart on en14. But when I close and reopen the software it will not work again until I restart.

So I can confirm: Works with all strreaming services.

Tidal Check - Soundcloud Check - Dropbox Check

So everything what is playing on the Denon will also be displayed in the Now Playing Unbox app. Nice … I like that.

2 Likes

Every time I run the script I have to make sure it’s a clean boot or I get the same as you.

panic: listen udp :51337: bind: address already in use

We have the same results in our results looking at the ones that you posted above.

Give this a try, it uses SO_REUSEPORT in place of SO_REUSEADDR, maybe this will help? main.zip (1.8 MB)

I gave it a shot (twice) with WiFi and without WiFi and still got a similar result. Success on not needing a restart though! It seems I can just reopen Terminal and not get that pesky ‘address already in use’ error.

Last login: Fri Mar 12 19:46:33 on console
/Users/Wilks/Downloads/main ; exit;
Wilks@Chriss-MacBook-Pro ~ % /Users/Wilks/Downloads/main ; exit;
2021/03/12 19:47:28 Listening for devices for 5s
2021/03/12 19:47:28 Discovery looping
2021/03/12 19:47:28 Started
2021/03/12 19:47:33 ::1 "OBS_Plug" "Icedream StagelinQ Receiver" "0.0.0"
2021/03/12 19:47:33 Added this device: ::1 "OBS_Plug" "Icedream StagelinQ Receiver" "0.0.0"
2021/03/12 19:47:33 Found devices: 1

[Process completed]

Interesting that I turn off my WiFi and run just as ethernet then it reports “Found devices: 0”

Last login: Fri Mar 12 19:54:11 on ttys008

Wilks@Chriss-MacBook-Pro ~ % /Users/Wilks/Downloads/main ; exit;

2021/03/12 19:54:40 Listening for devices for 5s

2021/03/12 19:54:40 Discovery looping

2021/03/12 19:54:40 Started

2021/03/12 19:54:45 Found devices: 0

[Process completed]

my result is:

2021/03/12 21:46:25 Listening for devices for 5s
2021/03/12 21:46:25 Discovery looping
2021/03/12 21:46:25 Started
2021/03/12 21:46:30 ::1 "OBS_Plug" "Icedream StagelinQ Receiver" "0.0.0"
2021/03/12 21:46:30 Added this device: ::1 "OBS_Plug" "Icedream StagelinQ Receiver" "0.0.0"
2021/03/12 21:46:30 Found devices: 1

[Process completed]

Latest Unbox releases are up now, these should be more stable, and actually connect to your players and pull down the track data / update only when a new track is being played out. There is still an issue connecting on Mac sometimes, so trying to get that figured out for @MrWilks @Lukas-We

Here’s the Mac version: Mac Download and here’s the Windows version: Windows Download

2 Likes

Well we made some progress haha you tested toggling the firewall right? It looks like this person was able to turn off block all incoming connections and things worked as expected for them: unable to receive on a UDP broadca… | Apple Developer Forums

Okay… SLIGHT progress here.

I have had it to temporarily work!

How I did it:

  • Turned OFF the firewall.
  • Turned OFF WiFi.
  • Restarted MacBook.
  • Connected via ethernet.
  • Prime 4 was already on.
  • Opened Unbox and went though the Denon setup until I got to the “Go live” bit.
  • Waited around 15 seconds or so and nothing happened.
  • Thought I would turn OFF the WiFi on the Prime 4.

Now this bit could be a coincidence but it went green and filled the track title in! I played three tracks in quick succession and all was recorded. Activated the Prime 4 WiFi and it broke the connection again.

Now…

After a lot of messing about I disconnected the ethernet from the Prime 4, plugged it back in and it went green again but had a totally different track to the one that was playing. It was one that I’d tried earlier in the night. Somehow this track was remembered? I’d uninstalled The old version of Unbox previous to installing this latest one. Something lived in memory somewhere. Either way, I couldn’t get that to update. It just stayed on that old track.

So… small steps. It took me totally turning off the firewall for it to work.

Interesting that I get the accept/deny connections on every Unbox launch too. I’m sure that it didn’t do this before?

Screenshot 2021-03-12 at 22.48.30

2 Likes

Just like MRWilks I managed to make it somewhat working on my MBP + X1850/SC6000m when I turned off Mac’s WiFi

It’s good, but this Mac is not my streaming PC, it is just much closer to the mixer. Given that windows version seems to be working fine I might just buy a long Ethernet cable and connect the mixer to my streaming PC I guess.

nothing changed for me with the latest version. It works fine after a restart of the MacBook but when I close the app and reopen it its not working anymore.

1 Like

He has to release the IP and port after closing the app. I think that should manage the problem. The problem is, that when the program is freshly startet. It grabs IP and port and left this setting after closing. When you then start the program again, the port and ip is still allocated and your computer say … no this port and ip is used from another program. will do a search in some coding forums to find a snipped for releasing ip configurations. maybe i will find a solution to work with @erikrichardlarson app.

Server Socket

1. create a **socket** - Get the file descriptor!
2. **bind** to an address -What port am I on?
3. **listen** on a port, and wait for a connection to be established.
4. **accept** the connection from a client.
5. **send/recv** - the same way we read and write for a file.
6. **shutdown** to end read/write.
7. **close** to releases data.

Client Socket

1. create a **socket**.
2. **bind*** - this is probably be unnecessary because you're the client, not the server.
3. **connect** to a server.
4. **send/recv** - repeat until we have or receive data
5. **shutdown** to end read/write.
6. **close** to releases data.

maybe he has to close it first, and then bind it again. (so the port is closed before program is started).

1 Like
//CLOSECONNECTION – shuts down the socket and closes any connection on it
void CloseConnection ()
{
    //Close the socket if it exists
    if (s)
        closesocket(s);

    WSACleanup();                     //Clean up Winsock

and this function should also be available for mac. it only named different. becaus mac has no winsocket :wink:

1 Like

yeah I think the child process that is started in electron just needs to be closed out, so something like:

var childPID = exec('./unbox_denon_poller', {cwd: path.join(__dirname, 'denon')}, function(err, data) {console.log(data, err)}).pid;
// electron closing event
process.kill(childPID)
1 Like

Can you just run Unbox on your streaming PC? If your PC is on the same network as your X1850/SC6000m you should be good, and won’t need to connect directly to your computer.

I’ll add the code change I added below, and package in a new release sometime this weekend. That should allow you to restart the app without running into errors.

1 Like

Mixer is not connected to my home network, but the laptop is next to it when I stream so easiest way to connect was via laptop. But you are right, it is quite convoluted way to go, so I’ll just probably end up connecting it to my streaming PC.

I’m hearing there is interest in getting timecode data from Prime 4 / SC6000s as well. Curious if anyone here is interested in that? And if so what the use case is for getting that data into your setup?

1 Like