Google Pixel 2 XL Losing Connection

Just getting started with StageCaller and I really love what I see.

My environment: Windows 10 (“WOODY” connected to wired network), rtpMIDI, Multiplay, Google Pixel 2 XL connected to UniFi UAP Access Point

The issue I’m facing is the phone seems to stop talking with rtpMIDI after what seems to be 45 seconds. (It’s dropped out at 45 seconds about a half-dozen times in my testing right now.) It doesn’t seem to matter if the phone screen is on or off.

I have a 2 second heartbeat set to send Note 1.

If I go into Settings and turn MIDI on and off, it connects right back up with no delay and then disconnects 45 seconds later.

Events trigger fine if I trigger them within that 45 second window (I’m sending MIDI note 41 on Channel 1 from MutliPlay directly to rtpMIDI which rings the phone, I can pick up the phone call, end the call)

rtpMIDI reports:

[ 3189.424] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: RX-CTRL:WOODY:10.20.30.120:5004:Invite(Pixel 2 XL): FF FF 49 4E 00 00 00 02 CD BA 13 2D A8 61 D6 00 50 69 78 65 6C 20 32 20 58 4C 00 00
[ 3189.430] rtpMIDI_1_1_8_240 [ DIAG_INFO ]: WOODY: Peer mac is: B4-F1-DA-B3-70-4A
[ 3189.434] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL:SetCtrlPortActive: 1
[ 3189.438] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL: ResetTimeout: 30000
[ 3189.442] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: TX-CTRL:WOODY:10.20.30.120:5004:Accepted(WOODY): FF FF 4F 4B 00 00 00 02 CD BA 13 2D D1 74 EA BC 57 4F 4F 44 59 00
[ 3189.446] rtpMIDI_1_1_8_240 [ DIAG_INFO ]: WOODY:Pixel 2 XL: New incoming peer accepted on control-port
[ 3189.455] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: RX-MIDI:WOODY:10.20.30.120:5005:Invite(Pixel 2 XL): FF FF 49 4E 00 00 00 02 CD BA 13 2D A8 61 D6 00 50 69 78 65 6C 20 32 20 58 4C 00 00
[ 3189.459] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL: ResetTimeout: 30000
[ 3189.463] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL:SetMidiPortActive: 1
[ 3189.468] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: TX-MIDI:WOODY:10.20.30.120:5005:Accepted(WOODY): FF FF 4F 4B 00 00 00 02 CD BA 13 2D D1 74 EA BC 57 4F 4F 44 59 00
[ 3189.472] rtpMIDI_1_1_8_240 [ DIAG_INFO ]: WOODY:Pixel 2 XL: Incoming peer accepted on midi-port
[ 3189.476] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: RX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B A8 61 D6 00 00 00 00 00 00 00 00 00 00 C9 1C 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3189.480] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL: ResetTimeout: 30000
[ 3189.485] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: TX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B D1 74 EA BC 01 00 00 00 00 00 00 00 00 C9 1C 60 00 00 00 00 01 E6 AD 0C 00 00 00 00 00 00 00 00
[ 3189.782] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3220796
[ 3190.782] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3221796
[ 3191.477] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: RX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B A8 61 D6 00 00 00 00 00 00 00 00 00 00 C9 6A 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3191.482] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL: ResetTimeout: 30000
[ 3191.487] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: TX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B D1 74 EA BC 01 00 00 00 00 00 00 00 00 C9 6A 80 00 00 00 00 01 E6 FB 3C 00 00 00 00 00 00 00 00
[ 3191.783] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3222796
[ 3192.783] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3223796
[ 3193.476] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: RX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B A8 61 D6 00 00 00 00 00 00 00 00 00 00 C9 B8 A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3193.481] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL: ResetTimeout: 30000
[ 3193.485] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: TX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B D1 74 EA BC 01 00 00 00 00 00 00 00 00 C9 B8 A0 00 00 00 00 01 E7 49 4F 00 00 00 00 00 00 00 00
[ 3193.784] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3224796
[ 3194.784] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3225796
[ 3195.492] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: RX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B A8 61 D6 00 00 00 00 00 00 00 00 00 00 CA 06 C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3195.497] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL: ResetTimeout: 30000
[ 3195.501] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: TX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B D1 74 EA BC 01 00 00 00 00 00 00 00 00 CA 06 C0 00 00 00 00 01 E7 98 12 00 00 00 00 00 00 00 00
[ 3195.785] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3226796
[ 3196.785] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3227796
[ 3197.476] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: RX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B A8 61 D6 00 00 00 00 00 00 00 00 00 00 CA 54 E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3197.499] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL: ResetTimeout: 30000
[ 3197.504] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: TX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B D1 74 EA BC 01 00 00 00 00 00 00 00 00 CA 54 E0 00 00 00 00 01 E7 E6 48 00 00 00 00 00 00 00 00
[ 3197.786] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3228796
[ 3198.787] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3229796
[ 3199.492] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: RX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B A8 61 D6 00 00 00 00 00 00 00 00 00 00 CA A3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3199.497] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL: ResetTimeout: 30000
[ 3199.501] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: TX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B D1 74 EA BC 01 00 00 00 00 00 00 00 00 CA A3 00 00 00 00 00 01 E8 34 53 00 00 00 00 00 00 00 00
[ 3199.787] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3230796
[ 3200.788] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3231796
[ 3201.495] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: RX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B A8 61 D6 00 00 00 00 00 00 00 00 00 00 CA F1 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3201.499] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL: ResetTimeout: 30000
[ 3201.504] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: TX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B D1 74 EA BC 01 00 00 00 00 00 00 00 00 CA F1 20 00 00 00 00 01 E8 82 8C 00 00 00 00 00 00 00 00
[ 3201.788] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3232796
[ 3202.789] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3233796
[ 3203.494] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: RX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B A8 61 D6 00 00 00 00 00 00 00 00 00 00 CB 3F 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3203.499] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL: ResetTimeout: 30000
[ 3203.504] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: TX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B D1 74 EA BC 01 00 00 00 00 00 00 00 00 CB 3F 40 00 00 00 00 01 E8 D0 A7 00 00 00 00 00 00 00 00
[ 3203.790] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3234796
[ 3204.791] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3235796
[ 3205.478] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: RX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B A8 61 D6 00 00 00 00 00 00 00 00 00 00 CB 8D 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3205.485] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL: ResetTimeout: 30000
[ 3205.490] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: TX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B D1 74 EA BC 01 00 00 00 00 00 00 00 00 CB 8D 60 00 00 00 00 01 E9 1E 39 00 00 00 00 00 00 00 00
[ 3205.791] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3236796
[ 3206.792] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3237796
[ 3207.494] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: RX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B A8 61 D6 00 00 00 00 00 00 00 00 00 00 CB DB 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 3207.499] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL: ResetTimeout: 30000
[ 3207.503] rtpMIDI_1_1_8_240 [ DIAG_VERBOSE ]: WOODY: TX-MIDI:WOODY:10.20.30.120:5005:Synchronize: FF FF 43 4B D1 74 EA BC 01 00 00 00 00 00 00 00 00 CB DB 80 00 00 00 00 01 E9 6C E3 00 00 00 00 00 00 00 00
[ 3207.792] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3238796
[ 3208.793] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3239796

  • -28 more seconds pass - -
    [ 3236.814] rtpMIDI_1_1_8_240 [ DIAG_WARNING ]: WOODY:Pixel 2 XL: Received no MIDI-data or SYNCs within timeout - session is killed!
    [ 3236.819] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL: ResetTimeout: 0
    [ 3236.823] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL:SetCtrlPortActive: 0
    [ 3236.827] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY:Pixel 2 XL:SetMidiPortActive: 0
    [ 3236.831] rtpMIDI_1_1_8_240 [ DIAG_INFO ]: WOODY:Pixel 2 XL: Shutting down peer
    [ 3237.809] rtpMIDI_1_1_8_240 [ DIAG_BLABBER ]: WOODY: OnTimer() 3268812

So the app seems to stop sending heartbeats, and I don’t know why.

I know it’s beta, but I was hoping to use it for a show since I have some Droids to use as props, I don’t really have access to any iOS devices (since the phone gets thrown around a little).

Any thoughts?

just want to let you know I’ve read this and I’ll phrase a more detailed reply to it tomorrow

first thoughts:

  • thank you for supply debug info from rtpMIDI - that’s awesome
  • by rtpMIDI, I assume you mean Tobias Erichsen’s brilliant work
  • this is stagecaller for android - right? (I’m guessing from the pixel 2 xl)
  • those aren’t heartbeats - those are synchronization packets… that’s an rtp midi thing… I have to be honest in that I haven’t tested with rtpMIDI in a few years (and I haven’t tested the android midi client that I wrote with Erichsen’s rtpMIDI at all) so this may be a serious bug in my code (because I assume his work is far better than mine)

I will take a closer look at this in the morning - but I just wanted to let you know I’m thinking about it

  1. you’re welcome. :slightly_smiling_face:
  2. Yes
  3. Yes. I am also loading it up on my Droid Turbo Maxx to see if there’s any difference.
    4, Dang, I thought those were the stagecaller heartbeats being received and answered.

Droid Turbo Maxx results:

  • Same 45 second disconnect
  • On the Pixel 2 XL, selecting the icon in the notification bar brings me to the StageCaller “Force Close” app details screen.
  • On the Turbo Maxx, selecting the icon in the notification bar brings me to StageCaller app.

I’ve got a couple weeks before opening yet…

ok - just dusted off my windows 7 VM, installed rtpMIDI & multiplay

  • midi connection initiated from windows works perfectly

  • midi connection initiated from device (in my case a nexus 5 running android 8.1) works for about 45 seconds, then disconnects without notice

you, my friend, have found a bug in my midi library where midi reconnection fails to maintain the connection - oddly enough, this doesn’t happen on macs

I don’t have a work around for this (other than don’t rely on reconnection at this time) - I’ll try to get a fix out ASAP

I didn’t realize I could instigate the connection from the Windows side. let me try that and see if that stays solid for me. If so, then that could be the workaround. (But if you could squash the bug, that’d be cool too. :slight_smile: )

Thanks for being so responsive!!!

I ran testing today, and the rtpMIDI to Phone (as opposed to Phone to rtpMIDI) connection is rock solid.

I am happy to do it this way and it makes more sense to do it this way anyway.