Posts: 163
Threads: 5
Joined: May 2020
Reputation:
4
03-25-2021, 05:46 PM
(This post was last modified: 03-25-2021, 05:48 PM by Oz Cello.)
I use MSP on four Onyx Boox Max 3 tablets for gigs with a string quartet. When I add new pieces I put them on one tablet into four different libraries (one for each instrument). I then update the four libraries on the other three tablets using the sync function over bluetooth. That means 12 syncs each time but it's fast so not a huge problem. Since the v3 update I've been getting a bug where 2 or 3 times out of the 12 a sync will fail and it says that the database type was wrong (it was expecting type 57 but got type 0). Usually if I just try the sync again it works but sometimes I have to re-start the app. I'm using version 3.0.10 in the eInk build.
I also had a glitch at a gig last night where we'd taken a break for an hour and I'd left the tablets on and connected by bluetooth. When we started playing again one of the tablets kept disconnecting and re-connecting from the master tablet every few seconds. I turned off the BT connection for that tablet and it's fine again now and I haven't tried to replicate it - just hadn't seen it before and thought it might be worth mentioning.
Feature request. For each of the tablets I've changed the bluetooth device name so that they each have a unique name. When they're connecting via the master/servant feature (sorry, have forgotten what that feature is called now) I can see the unique name of the master tablet on the servant tablets but on the master tablet where it lists the connected devices it just has the model name for each of the servant tablets (Onyx Max). It would be great if that list gave the unique names so that if one tablet isn't connected I know which one it is.
Otherwise the app is still working really well for me. I tell the other local gigging musos about it. They're mostly ipad users and a lot of them use forscore but would like to have the MSP functionality - from what they say I don't think forscore has an equivalent to the master/servant function among others. Looking forward to being able to tell them the iOS version is ready. Also very much looking forward to the versioning update - hope that's still in the works. Guy
Posts: 13,356
Threads: 301
Joined: Apr 2012
Reputation:
235
I'm not sure why you are seeing the issue with the database type being reported as 0. That sounds to me like some of the data is being garbled over bluetooth as I'm not doing any kind of integrity check on what is being sent. I'm not a big fan of bluetooth as I find it to be fairly unreliable. I don't have anything implemented in the sync functionality where it can request that data be sent again if it wasn't correct the first time around. That would require massive changes to the design that would most likely introduce all sorts of problems along the way. I'm relying on the messaging to be correct because I'm using TCP and it's supposed to just be on a local network (or over a short distance with bluetooth), so I didn't think that it would be necessary to add my own layer of reliability on top of that. I should mention that very little code changed for version 3.0.0 with the sync functionality. I had to add some new checks for the new annotation data, and I moved the database initialization to the start of the sync instead of reading things out piece by piece (as this is slower overall), but I didn't really change anything that would explain why you are seeing more problems now.
As far as the second issue you reported, that sounds like an issue with the OS and the bluetooth stack. I've certainly seen issues like that when connecting to other bluetooth devices with my phone (not related to MobileSheets), so I think that's just the nature of bluetooth. As I said, I don't find it to be particularly reliable and it can't handle large data transmissions at all.
As far as your feature request, the name that is listed on the leader device is obtained by combining android.os.Build.BRAND and android.os.Build.DEVICE, which is where the Onyx Max comes from. This is used for both WiFi and Bluetooth. On the client devices, since they have to list a name before they've actively connected to the leader, I use the BluetoothDevice.getName() from the device that is detected while scanning, so that's why you see the bluetooth device name you assigned. If you would like me to change the behavior so that the server lists the BluetoothDevice.getName() value as well, I can certainly do that. I have made that change in my code and it will be available with the next update.
As far as the future plans, the iOS version will come first, then the song versioning. Thanks for spreading the word to your fellow musicians!
Mike
Posts: 163
Threads: 5
Joined: May 2020
Reputation:
4
Cool, thanks for adding the assigned name to the server list.
Thanks for explaining the bluetooth glitches I'd seen too. I might give wifi a try for the server/client connection and see how it compares for reliability and battery use. Please don't add error correction to the sync feature on my account. When the glitch happens it's right at the start of the process so it's very quick and easy to start it again. I might try that with wifi next time too - assuming it's a BT issue then that should resolve it.
Posts: 163
Threads: 5
Joined: May 2020
Reputation:
4
I did the sync via wifi and that worked fine - super fast and no failure due to database type. I also tried out the leader/follower connection via a wifi hotspot from my phone and that all went smoothly. I imagine it will use a bit more battery than BT but should be more reliable.
I noticed that the settings for the leader/follower function has a 'device name' field that can be changed so I set it for each follower tablet and it came up on the leader when they subsequently connected but when I disconnected and re-connected them the names all went back to Onyx Max. Should it be possible to set a device name through those settings and have them persist?
Posts: 13,356
Threads: 301
Joined: Apr 2012
Reputation:
235
Yes, the names should be persisted. I'm not sure why it reset - I'll have to look into that.
Mike
Posts: 163
Threads: 5
Joined: May 2020
Reputation:
4
I tried using wifi instead of bluetooth for the leader/follower connections at gigs yesterday. The connection was very solid and it didn't seem to change the battery usage on the tablets (at least not on the follower tablets - I didn't check the battery usage on the leader) as compared to using them with wifi switched off. For the wifi connection I was using a hotspot from my phone and it did chew through the phone battery a lot though so I ended up doing the last hour or two back on bluetooth connection instead. Not sure how many people use MSP for the leader/follower function but thought that info might be useful to those who do.
Posts: 13,356
Threads: 301
Joined: Apr 2012
Reputation:
235
Quick update - the device name entered on the connection settings dialog was not being saved, so I've added code for the next update to save whatever value is entered so that you don't have to change it each time. Thanks for letting me know about that.
Mike
Posts: 163
Threads: 5
Joined: May 2020
Reputation:
4
Sweet, thanks. Next on my wishlist is the versioning update but it would also be great to be able to edit the list of filters that come up on the library page.
Posts: 163
Threads: 5
Joined: May 2020
Reputation:
4
I just updated the Max 3 tablets to v3.1.0 and the follower/leader function is working nicely. The device names that show up now depend on whether the connection is bluetooth or wifi. With wifi the names allocated in the follower settings show up on the leader and with bluetooth the device name that can be set through the OS bluetooth settings is used. I've made the bluetooth name and the follower/leader name the same for each device so that it doesn't matter which connection I'm using but either way the names that show up can now be unique to each tablet which is great. Many thanks
Posts: 13,356
Threads: 301
Joined: Apr 2012
Reputation:
235
Glad to hear it's working better for you. Thanks for suggesting the change.
Mike
Posts: 163
Threads: 5
Joined: May 2020
Reputation:
4
Hi Mike. There are a couple of very minor issues I've noticed while using the app. Just small things that don't seem quite right. I totally understand if you don't think they're worth changing but thought I'd mention them.
The device name (as opposed to the name assigned through the OS bluetooth settings or the name assigned in the follower settings) is shown when a sync is being done between devices - the server just gives the name of the client device as 'Onyx Max' rather than saying which tablet it's connected to. If that could be changed to show the assigned name then that would be useful.
When I'm doing a sync between devices it fails occasionally. That's fine but when it does fail it sometimes says that the sync was successful. Only one of the two tablets seems to be aware that the sync has failed and often the other one will say that the sync was successful. Might be difficult to force a sync to fail to investigate it though. Again, not a big problem, as long as I check both tablets after the sync to make sure it worked.
I recently changed one of the tablets' display settings so that the page is aligned to the centre of the screen rather than the top. That works well when the the page takes up most of the screen but if there is more than a cm or so of space above and below it then when I touch the right side of the screen to advance a page, instead of going to the next page it first moves the page to the top of the screen and I then have to touch the right side again to get it to move to the next page. It only seems to do this when I have the display mode set to vertical scrolling - when it's set to 'single page' with the page aligned to the centre of the screen it does what you'd expect and goes straight to the next page. It also only happens when the piece is a single page - when it's more than one page the first page goes to the top of the screen and the second page is loaded below it and that's great.
When display mode is set to vertical scrolling and I have a multi-page piece loaded up, if I touch the right side of the page it moves the current page completely off the screen and brings the top of the next page to the top of the screen. That's exactly how I'd want it to work. That changes if I have the overlay on though. With the overlay on if I touch the right side of the screen it advances about two-thirds of a page. If I skip out of the overlay while the top of the screen is part of the way through a page then tapping the right side of the screen still brings the top of the next page to the top of the screen so that's all good, but it seems like it might make more sense for the behaviour to be the same when the overlay is active.
I always use the app in full screen but when I change libraries the page for that seems to force the app out of full screen. It goes back to full screen when I exit the page.
All minor stuff. The app is exactly what I need and I'm very happy with it. Thanks. Guy
Posts: 163
Threads: 5
Joined: May 2020
Reputation:
4
Another little glitch. When I select 'clear all' on a set list, if the sort method is set to shuffle it doesn't clear the list. Seems to work fine with the other sort methods I've tried it on.
Guy
Posts: 13,356
Threads: 301
Joined: Apr 2012
Reputation:
235
Thanks Guy - I'll take a look at it. I'm also trying to address as many of the issues you presented in your previous post in the next update. The update is taking a little longer than planned due to having to address all the Android 11 restrictions that Google is now enforcing.
Mike
Posts: 163
Threads: 5
Joined: May 2020
Reputation:
4
Thanks Mike. Quick question. I've just started using google's 'drive for desktop' to back up my sheet music. I had it all backed up to 'my drive' (using some free backup software) but have deleted it from there. Google drive now has separate tabs - one for 'my drive', one for shared drives and one for 'computers'. Anything backed up via 'drive for desktop' goes into the 'computers' tab. Unfortunately I don't seem to be able to access anything in the 'computers' tab from MSP - it only shows the 'my drive' and 'shared' contents. I can use the drive app on the tablet and download any sheet music I need from there and then access it from MSP as a local file but just wanted to check whether there's any way you know of for accessing the 'drive for desktop' backups directly from MSP.
Guy
Posts: 13,356
Threads: 301
Joined: Apr 2012
Reputation:
235
11-25-2021, 04:37 AM
(This post was last modified: 11-25-2021, 04:39 AM by Zubersoft.)
Guy - quick follow up question: you are using an Android tablet, correct? You said previously you were using four Onyx Boox Max 3 tablets, so I just want to make sure that is still the case.
As far as Google Drive, there are extra steps that have to be taken to support different "drives" on Google Drive. I need to add a way for users to switch the active drive, and a new UI option that will display drives that were found after querying for them. I also have to update all of the code to use the active drive ID in every query. So at the moment, this is not something that is supported, but it's certainly something that I want to support once I have time to implement the necessary changes. You can try using Import->System File Browser, and seeing if picking a file through Google's file picker through the Google Drive app works better for you. I'm adding better support for Google's file picker in the next update (it will be an option when selecting files throughout the application). I'm also fixing the code to allow multiple files to be selected through Google's file picker.
Mike