pmaillot / X32-Behringer

This GIT repo (C language) holds applications and utilities for the Behringer X32 and M32 mixing consoles. Additional details, documentation, implementation examples and apps can be found in my website:
https://sites.google.com/site/patrickmaillot/x32
234 stars 41 forks source link

X32 emulator not relaying `solosw` OSC commands to X32-Edit #18

Closed stackedsax closed 5 years ago

stackedsax commented 5 years ago

First of all, thanks very much for the emulator -- extremely useful.

I was testing the solo functionality, and I noticed something very strange: I can update the solosw property and the emulator saves things correctly, but the change does not register with X-32 Edit.

As a simple example:

# Set one channel to solo
$ sendosc <emulator_ip> 10023 /-stat/solosw/01 i 1
->X,   28 B: /-stat/solosw/01~~~~,i~~[     1]
X->,   28 B: /-stat/solosw/01~~~~,i~~[     1]

# Check the property is set
$ sendosc <emulator_ip> 10023 /-stat/solosw/01
->X,   24 B: /-stat/solosw/01~~~~,~~~
X->,   28 B: /-stat/solosw/01~~~~,i~~[     1]

# Check the property is not set for other channels
$ sendosc <emulator_ip> 10023 /-stat/solosw/02
$ sendosc <emulator_ip> 10023 /-stat/solosw/03
->X,   24 B: /-stat/solosw/02~~~~,~~~
X->,   28 B: /-stat/solosw/02~~~~,i~~[     0]
->X,   24 B: /-stat/solosw/03~~~~,~~~
X->,   28 B: /-stat/solosw/03~~~~,i~~[     0]

# Turn off solo on channel 01 and turn on solo for channel 02
sendosc <emulator_ip> 10023 /-stat/solosw/01 i 0
sendosc <emulator_ip> 10023 /-stat/solosw/02 i 1
->X,   28 B: /-stat/solosw/01~~~~,i~~[     0]
X->,   28 B: /-stat/solosw/01~~~~,i~~[     0]
->X,   28 B: /-stat/solosw/02~~~~,i~~[     1]
X->,   28 B: /-stat/solosw/02~~~~,i~~[     1]

# Verify the new solo properties are set correctly
$ sendosc <emulator_ip> 10023 /-stat/solosw/01
$ sendosc <emulator_ip> 10023 /-stat/solosw/02
->X,   24 B: /-stat/solosw/01~~~~,~~~
X->,   28 B: /-stat/solosw/01~~~~,i~~[     0]
->X,   24 B: /-stat/solosw/02~~~~,~~~
X->,   28 B: /-stat/solosw/02~~~~,i~~[     1]

Furthermore, I have no problems seeing updates like this show up in X-32 Edit:

sendosc <emulator_ip> 10023 /ch/01/mix/on i 0

I also have problems with the Clear Solo button in X32-Edit, so this could also be a bug in the X32-Edit application. I'll check on a real X32 mixer tomorrow, but I thought I'd check here first to see if you knew what was going wrong.

Thanks very much.

pmaillot commented 5 years ago

Alexander,

I don't think there are errors in this section of X32 Emulator (there could be, but i'll have to double check with the source code; can do that later). Is X32Edit following other changes made onto the emulator?

-Patrick

Le mar. 3 sept. 2019 à 12:47, Alexander Scammon notifications@github.com a écrit :

First of all, thanks very much for the emulator -- extremely useful.

I was testing the solo functionality, and I noticed something very strange: I can update the solosw property and the emulator saves things correctly, but the change does not register with X-32 Edit.

As a simple example:

Set one channel to solo

$ sendosc 10023 /-stat/solosw/01 i 1 ->X, 28 B: /-stat/solosw/01~~,i[ 1] X->, 28 B: /-stat/solosw/01~~,i[ 1]

Check the property is set

$ sendosc 10023 /-stat/solosw/01 ->X, 24 B: /-stat/solosw/01~~,~ X->, 28 B: /-stat/solosw/01~~,i[ 1]

Check the property is not set for other channels

$ sendosc 10023 /-stat/solosw/02 $ sendosc 10023 /-stat/solosw/03 ->X, 24 B: /-stat/solosw/02~~,~ X->, 28 B: /-stat/solosw/02~~,i[ 0] ->X, 24 B: /-stat/solosw/03~~,~ X->, 28 B: /-stat/solosw/03~~,i[ 0]

Turn off solo on channel 01 and turn on solo for channel 02

sendosc 10023 /-stat/solosw/01 i 0 sendosc 10023 /-stat/solosw/02 i 1 ->X, 28 B: /-stat/solosw/01~~,i[ 0] X->, 28 B: /-stat/solosw/01~~,i[ 0] ->X, 28 B: /-stat/solosw/02~~,i[ 1] X->, 28 B: /-stat/solosw/02~~,i[ 1]

Verify the new solo properties are set correctly

$ sendosc 10023 /-stat/solosw/01 $ sendosc 10023 /-stat/solosw/02 ->X, 24 B: /-stat/solosw/01~~,~ X->, 28 B: /-stat/solosw/01~~,i[ 0] ->X, 24 B: /-stat/solosw/02~~,~ X->, 28 B: /-stat/solosw/02~~,i[ 1]

Furthermore, I have no problems seeing updates like this show up in X-32 Edit:

sendosc 10023 /ch/01/mix/on i 0

I also have problems with the Clear Solo button in X32-Edit, so this could also be a bug in the X32-Edit application. I'll check on a real X32 mixer tomorrow, but I thought I'd check here first to see if you knew what was going wrong.

Thanks very much.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/pmaillot/X32-Behringer/issues/18?email_source=notifications&email_token=ADZZT7S42AITAFLSBTN6P2LQHY6DHA5CNFSM4ITEZDA2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HI6MPPQ, or mute the thread https://github.com/notifications/unsubscribe-auth/ADZZT7TWJX7ELE6MI46J6XTQHY6DHANCNFSM4ITEZDAQ .

stackedsax commented 5 years ago

Yep, everything else works perfectly: mute, pan, volume, whatever else I’ve tested. I can send OSC commands to the emulator and the result shows up on x32-edit.

I’ll attach the x32-edit to a real console and see if I’m still hitting the same issue. Hopefully, that gives us a clue as to whether it’s something between the emulator and the app or if it’s just the app’s fault. --

-Alex

pmaillot commented 5 years ago

Well, I’ve done that too.

X32_Command connected to emulator and X32Edit connected to same emulator

/-stat/solosw/xx ,i 1

Echoes correctly to X32_Command, and data is sent to X32Edit, with no effect.

With ‘xremote on’ in X32_Command, one ca see that hitting a solo button on X32Edit does a lot of things, set solo to 0 to all channels except the one selected and sending some other commands too.

X32_Command connected to actual X32 and X32Edit connected to same X32

/-stat/solosw/xx ,i 1

Echoes correctly to X32_Command, and data is sent to X32, with solo on channel xx being activated.

With ‘xremote on’ in X32_Command, one ca see that setting solo on a channel is echoed with the actual solo on that channel and a general /-stat/solo command reflecting the flashing button on X32.

With ‘xremote on’ in X32_Command, hitting a solo button on X32 returns a single set solo to the selected channel and and a general /-stat/solo command reflecting the flashing button on X32.

So X32 and X32Edit do not behave the same way for a solo command.

Maybe it’s the immediate sending of /-stat/solo~,i~~[ 0] (or [1]) after the /-stat/solosw command that makes the difference…

-Patrick-Gilles Maillot

From: Alexander Scammon notifications@github.com Sent: Tuesday, September 3, 2019 7:48 PM To: pmaillot/X32-Behringer X32-Behringer@noreply.github.com Cc: Patrick-Gilles Maillot patrick.maillot@gmail.com; Comment comment@noreply.github.com Subject: Re: [pmaillot/X32-Behringer] X32 emulator not relaying solosw OSC commands to X32-Edit (#18)

Yep, everything else works perfectly: mute, pan, volume, whatever else I’ve tested. I can send OSC commands to the emulator and the result shows up on x32-edit.

I’ll attach the x32-edit to a real console and see if I’m still hitting the same issue. Hopefully, that gives us a clue as to whether it’s something between the emulator and the app or if it’s just the app’s fault. --

-Alex

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/pmaillot/X32-Behringer/issues/18?email_source=notifications&email_token=ADZZT7RWQBCSMIMHDU2P2ULQH2PNJA5CNFSM4ITEZDA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5ZAJZY#issuecomment-527566055 , or mute the thread https://github.com/notifications/unsubscribe-auth/ADZZT7TS7WAZ6GKNFD7MKM3QH2PNJANCNFSM4ITEZDAQ . https://github.com/notifications/beacon/ADZZT7VLJFM3XCEIQG3LEQTQH2PNJA5CNFSM4ITEZDA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5ZAJZY.gif

stackedsax commented 5 years ago

Just confirming my understanding of this:

Echoes correctly to X32_Command, and data is sent to X32Edit, with no effect.

I think that means you're seeing the same behavior as I did. Which is great! At least it means I'm not crazy :D Doubly good to know that your tests with a real console look like they do the right thing.

As for this:

With ‘xremote on’ in X32_Command, one ca see that hitting a solo button on X32Edit does a lot of things, set solo to 0 to all channels except the one selected and sending some other commands too.

I noticed the OSC command vomit when the X32-Edit hits a solo, also. The 'other commands' that I was seeing were things like:

->X,   28 B: /-action/setrtasrc~~,i~~[    98]
X->,   28 B: /-action/setrtasrc~~,i~~[    98]
->X,   28 B: /-action/setrtasrc~~,i~~[     0]
X->,   28 B: /-action/setrtasrc~~,i~~[     0]

But I can't figure out why setrtasrc would be called as part of soloing a channel, nor why it would choose an integer that is out of range for that parameter (at least, according to the docs you put together, '72' should be the maximum value for setrtasrc).

It really smells to me like X32-Edit is doing some funky and unnecessary stuff here. I'll confirm what you discovered by connecting to a real console. Assuming what I see lines up with your research, I'll reach out to someone on Behringer's side and see if they can sort it out.

I'll close this issue for now, but thanks very much for your input.

stackedsax commented 5 years ago

Oh, btw, your Reaper videos inspired us to make some little demo videos of the work in progress:

Thanks again!

pmaillot commented 5 years ago

Yes, I even saw some

/-action/setrtasrc,i[ -1] or /-action/setrtasrc,i[ 170] there!

The way I tested with a real console is to have two separate X32_Commands clients. One sending the /-stat/solosw... command and the other one with "xremote on" set so it just listens to whatever the X32 sends, and will therefore receive the exact same data as X32edit, also connected to the real X32.

What are you programming your work for Ableton with? (Language, tools)

-Patrick

Le mer. 4 sept. 2019 à 00:21, Alexander Scammon notifications@github.com a écrit :

Just confirming my understanding of this:

Echoes correctly to X32_Command, and data is sent to X32Edit, with no effect.

I think that means you're seeing the same behavior as I did. Which is great! At least it means I'm not crazy :D Doubly good to know that your tests with a real console look like they do the right thing.

As for this:

With ‘xremote on’ in X32_Command, one ca see that hitting a solo button on X32Edit does a lot of things, set solo to 0 to all channels except the one selected and sending some other commands too.

I noticed the OSC command vomit when the X32-Edit hits a solo, also. The 'other commands' that I was seeing were things like:

->X, 28 B: /-action/setrtasrc,i[ 98]

X->, 28 B: /-action/setrtasrc,i[ 98]

->X, 28 B: /-action/setrtasrc,i[ 0]

X->, 28 B: /-action/setrtasrc,i[ 0]

But I can't figure out why setrtasrc would be called as part of soloing a channel, nor why it would choose an integer that is out of range for that parameter (at least, according to the docs you put together, '72' should be the maximum value for setrtasrc).

It really smells to me like X32-Edit is doing some funky and unnecessary stuff here. I'll confirm what you discovered by connecting to a real console. Assuming what I see lines up with your research, I'll reach out to someone on Behringer's side and see if they can sort it out.

I'll close this issue for now, but thanks very much for your input.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/pmaillot/X32-Behringer/issues/18?email_source=notifications&email_token=ADZZT7W7YIIE5NSKYD66AC3QH3POPA5CNFSM4ITEZDA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5ZYCLQ#issuecomment-527663406, or mute the thread https://github.com/notifications/unsubscribe-auth/ADZZT7TQLLTKZOAMPHX7TXDQH3POPANCNFSM4ITEZDAQ .

stackedsax commented 5 years ago

Just programming in python since that's what Ableton's development environment for these kinds of user scripts is. For tools, besides your X32 Emulator (thanks!!!), I use sendosc to send test messages (although X32_Command would be fine for this, too) and just Sublime as an IDE. The development environment for Ableton isn't ideal, but it's fine for now.

infrafast commented 2 years ago

Hello gents, just to let you know that the test I've done with arduino (ESP8266) has the same results: solo commands works from Xedit but are not handled via sending the command from my program... I was wondering if you drew any conclusion on that since the thread is a bit old. Thanks!

pmaillot commented 2 years ago

Watch the actual commands that are sent by X32-Edit for Solo after having subscribed for X32 OSC commands . It's not a 1-1 match at all.

infrafast commented 2 years ago

thanks, actually, what my program did is to listen capture the commands sent from Xedit to the emulator and here is what i get:

ex: solo on: /-stat/solosw/01,i,1 /-action/setrtasrc,i,102 /-action/setrtasrc,i,4

ex: solo off: /-stat/solosw/01,i,0 /-action/setrtasrc,i,102 /-action/setrtasrc,i,4

seeems quite straightfoward and simple, but when resending these commands, nothing happens...

pmaillot commented 2 years ago

Just made a quick test... Here's what the X32 actually receives when solo'ing ON ch: 1

->X, 28 B: /-stat/solosw/01~~,i[ 1] ->X, 28 B: /-stat/solosw/02~~,i[ 0] ->X, 28 B: /-stat/solosw/03~~,i[ 0] ->X, 28 B: /-stat/solosw/04~~,i[ 0] ->X, 28 B: /-stat/solosw/05~~,i[ 0] ->X, 28 B: /-stat/solosw/06~~,i[ 0] ->X, 28 B: /-stat/solosw/07~~,i[ 0] ->X, 28 B: /-stat/solosw/08~~,i[ 0] ->X, 28 B: /-stat/solosw/09~~,i[ 0] ->X, 28 B: /-stat/solosw/10~~,i[ 0] ->X, 28 B: /-stat/solosw/11~~,i[ 0] ->X, 28 B: /-stat/solosw/12~~,i[ 0] ->X, 28 B: /-stat/solosw/13~~,i[ 0] ->X, 28 B: /-stat/solosw/14~~,i[ 0] ->X, 28 B: /-stat/solosw/15~~,i[ 0] ->X, 28 B: /-stat/solosw/16~~,i[ 0] ->X, 28 B: /-stat/solosw/17~~,i[ 0] ->X, 28 B: /-stat/solosw/18~~,i[ 0] ->X, 28 B: /-stat/solosw/19~~,i[ 0] ->X, 28 B: /-stat/solosw/20~~,i[ 0] ->X, 28 B: /-stat/solosw/21~~,i[ 0] ->X, 28 B: /-stat/solosw/22~~,i[ 0] ->X, 28 B: /-stat/solosw/23~~,i[ 0] ->X, 28 B: /-stat/solosw/24~~,i[ 0] ->X, 28 B: /-stat/solosw/25~~,i[ 0] ->X, 28 B: /-stat/solosw/26~~,i[ 0] ->X, 28 B: /-stat/solosw/27~~,i[ 0] ->X, 28 B: /-stat/solosw/28~~,i[ 0] ->X, 28 B: /-stat/solosw/29~~,i[ 0] ->X, 28 B: /-stat/solosw/30~~,i[ 0] ->X, 28 B: /-stat/solosw/31~~,i[ 0] ->X, 28 B: /-stat/solosw/32~~,i[ 0] ->X, 28 B: /-stat/solosw/33~~,i[ 0] ->X, 28 B: /-stat/solosw/34~~,i[ 0] ->X, 28 B: /-stat/solosw/35~~,i[ 0] ->X, 28 B: /-stat/solosw/36~~,i[ 0] ->X, 28 B: /-stat/solosw/37~~,i[ 0] ->X, 28 B: /-stat/solosw/38~~,i[ 0] ->X, 28 B: /-stat/solosw/39~~,i[ 0] ->X, 28 B: /-stat/solosw/40~~,i[ 0] ->X, 28 B: /-stat/solosw/41~~,i[ 0] ->X, 28 B: /-stat/solosw/42~~,i[ 0] ->X, 28 B: /-stat/solosw/43~~,i[ 0] ->X, 28 B: /-stat/solosw/44~~,i[ 0] ->X, 28 B: /-stat/solosw/45~~,i[ 0] ->X, 28 B: /-stat/solosw/46~~,i[ 0] ->X, 28 B: /-stat/solosw/47~~,i[ 0] ->X, 28 B: /-stat/solosw/48~~,i[ 0] ->X, 28 B: /-stat/solosw/49~~,i[ 0] ->X, 28 B: /-stat/solosw/50~~,i[ 0] ->X, 28 B: /-stat/solosw/51~~,i[ 0] ->X, 28 B: /-stat/solosw/52~~,i[ 0] ->X, 28 B: /-stat/solosw/53~~,i[ 0] ->X, 28 B: /-stat/solosw/54~~,i[ 0] ->X, 28 B: /-stat/solosw/55~~,i[ 0] ->X, 28 B: /-stat/solosw/56~~,i[ 0] ->X, 28 B: /-stat/solosw/57~~,i[ 0] ->X, 28 B: /-stat/solosw/58~~,i[ 0] ->X, 28 B: /-stat/solosw/59~~,i[ 0] ->X, 28 B: /-stat/solosw/60~~,i[ 0] ->X, 28 B: /-stat/solosw/61~~,i[ 0] ->X, 28 B: /-stat/solosw/62~~,i[ 0] ->X, 28 B: /-stat/solosw/63~~,i[ 0] ->X, 28 B: /-stat/solosw/64~~,i[ 0] ->X, 28 B: /-stat/solosw/65~~,i[ 0] ->X, 28 B: /-stat/solosw/66~~,i[ 0] ->X, 28 B: /-stat/solosw/67~~,i[ 0] ->X, 28 B: /-stat/solosw/68~~,i[ 0] ->X, 28 B: /-stat/solosw/69~~,i[ 0] ->X, 28 B: /-stat/solosw/70~~,i[ 0] ->X, 28 B: /-stat/solosw/71~~,i[ 0] ->X, 28 B: /-stat/solosw/72~~,i[ 0] ->X, 28 B: /-stat/solosw/73~~,i[ 0] ->X, 28 B: /-stat/solosw/74~~,i[ 0] ->X, 28 B: /-stat/solosw/75~~,i[ 0] ->X, 28 B: /-stat/solosw/76~~,i[ 0] ->X, 28 B: /-stat/solosw/77~~,i[ 0] ->X, 28 B: /-stat/solosw/78~~,i[ 0] ->X, 28 B: /-stat/solosw/79~~,i[ 0] ->X, 28 B: /-stat/solosw/80~~,i[ 0] ->X, 28 B: /-action/setrtasrc,i[ 98] ->X, 28 B: /-action/setrtasrc,i[ 72]

and solow'ing it OFF: ->X, 28 B: /-stat/solosw/01~~,i[ 0] ->X, 28 B: /-stat/solosw/02~~,i[ 0] ->X, 28 B: /-stat/solosw/03~~,i[ 0] ->X, 28 B: /-stat/solosw/04~~,i[ 0] ->X, 28 B: /-stat/solosw/05~~,i[ 0] ->X, 28 B: /-stat/solosw/06~~,i[ 0] ->X, 28 B: /-stat/solosw/07~~,i[ 0] ->X, 28 B: /-stat/solosw/08~~,i[ 0] ->X, 28 B: /-stat/solosw/09~~,i[ 0] ->X, 28 B: /-stat/solosw/10~~,i[ 0] ->X, 28 B: /-stat/solosw/11~~,i[ 0] ->X, 28 B: /-stat/solosw/12~~,i[ 0] ->X, 28 B: /-stat/solosw/13~~,i[ 0] ->X, 28 B: /-stat/solosw/14~~,i[ 0] ->X, 28 B: /-stat/solosw/15~~,i[ 0] ->X, 28 B: /-stat/solosw/16~~,i[ 0] ->X, 28 B: /-stat/solosw/17~~,i[ 0] ->X, 28 B: /-stat/solosw/18~~,i[ 0] ->X, 28 B: /-stat/solosw/19~~,i[ 0] ->X, 28 B: /-stat/solosw/20~~,i[ 0] ->X, 28 B: /-stat/solosw/21~~,i[ 0] ->X, 28 B: /-stat/solosw/22~~,i[ 0] ->X, 28 B: /-stat/solosw/23~~,i[ 0] ->X, 28 B: /-stat/solosw/24~~,i[ 0] ->X, 28 B: /-stat/solosw/25~~,i[ 0] ->X, 28 B: /-stat/solosw/26~~,i[ 0] ->X, 28 B: /-stat/solosw/27~~,i[ 0] ->X, 28 B: /-stat/solosw/28~~,i[ 0] ->X, 28 B: /-stat/solosw/29~~,i[ 0] ->X, 28 B: /-stat/solosw/30~~,i[ 0] ->X, 28 B: /-stat/solosw/31~~,i[ 0] ->X, 28 B: /-stat/solosw/32~~,i[ 0] ->X, 28 B: /-stat/solosw/33~~,i[ 0] ->X, 28 B: /-stat/solosw/34~~,i[ 0] ->X, 28 B: /-stat/solosw/35~~,i[ 0] ->X, 28 B: /-stat/solosw/36~~,i[ 0] ->X, 28 B: /-stat/solosw/37~~,i[ 0] ->X, 28 B: /-stat/solosw/38~~,i[ 0] ->X, 28 B: /-stat/solosw/39~~,i[ 0] ->X, 28 B: /-stat/solosw/40~~,i[ 0] ->X, 28 B: /-stat/solosw/41~~,i[ 0] ->X, 28 B: /-stat/solosw/42~~,i[ 0] ->X, 28 B: /-stat/solosw/43~~,i[ 0] ->X, 28 B: /-stat/solosw/44~~,i[ 0] ->X, 28 B: /-stat/solosw/45~~,i[ 0] ->X, 28 B: /-stat/solosw/46~~,i[ 0] ->X, 28 B: /-stat/solosw/47~~,i[ 0] ->X, 28 B: /-stat/solosw/48~~,i[ 0] ->X, 28 B: /-stat/solosw/49~~,i[ 0] ->X, 28 B: /-stat/solosw/50~~,i[ 0] ->X, 28 B: /-stat/solosw/51~~,i[ 0] ->X, 28 B: /-stat/solosw/52~~,i[ 0] ->X, 28 B: /-stat/solosw/53~~,i[ 0] ->X, 28 B: /-stat/solosw/54~~,i[ 0] ->X, 28 B: /-stat/solosw/55~~,i[ 0] ->X, 28 B: /-stat/solosw/56~~,i[ 0] ->X, 28 B: /-stat/solosw/57~~,i[ 0] ->X, 28 B: /-stat/solosw/58~~,i[ 0] ->X, 28 B: /-stat/solosw/59~~,i[ 0] ->X, 28 B: /-stat/solosw/60~~,i[ 0] ->X, 28 B: /-stat/solosw/61~~,i[ 0] ->X, 28 B: /-stat/solosw/62~~,i[ 0] ->X, 28 B: /-stat/solosw/63~~,i[ 0] ->X, 28 B: /-stat/solosw/64~~,i[ 0] ->X, 28 B: /-stat/solosw/65~~,i[ 0] ->X, 28 B: /-stat/solosw/66~~,i[ 0] ->X, 28 B: /-stat/solosw/67~~,i[ 0] ->X, 28 B: /-stat/solosw/68~~,i[ 0] ->X, 28 B: /-stat/solosw/69~~,i[ 0] ->X, 28 B: /-stat/solosw/70~~,i[ 0] ->X, 28 B: /-stat/solosw/71~~,i[ 0] ->X, 28 B: /-stat/solosw/72~~,i[ 0] ->X, 28 B: /-stat/solosw/73~~,i[ 0] ->X, 28 B: /-stat/solosw/74~~,i[ 0] ->X, 28 B: /-stat/solosw/75~~,i[ 0] ->X, 28 B: /-stat/solosw/76~~,i[ 0] ->X, 28 B: /-stat/solosw/77~~,i[ 0] ->X, 28 B: /-stat/solosw/78~~,i[ 0] ->X, 28 B: /-stat/solosw/79~~,i[ 0] ->X, 28 B: /-stat/solosw/80~~,i[ 0] ->X, 28 B: /-action/setrtasrc,i[ 98] ->X, 28 B: /-action/setrtasrc,i[ 72]