MobileSheets Forums

Full Version: Configurable Screen mirroring to e.g. Chromecast
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I'd like to display the screens device to a chromecast attached to my beamer (so as to allow people to sing songs I am playing at the piano).

I can connect via the OS (Samsung Tab S3  - Smart View) to a chromecast device. It works good but after several seconds Smart View will turn off the screen (probably to save power) and then I cant see the Sheet anymore - hard to play and sing that way.... Confused The screen is not totally off but its completely black with a hovering notice on how to turn it on again (with a swipe guesture) so this is no regular screen timeout! I tried to override this with an app I usually use to override the screen timeout (Screen timeout toggle) but this wouldnt work...

In my scenario I worked around this problem with my smartphone - connected this to my chromecast und then linked it to my tablet als slave (via BT) so whenever I turned the page my smartphone would also turn the page (in this case it was no problem that the smartphones screen went blank after some seconds - i can still see the tablets screen...)

While I gratulate for the really nice Master-Slave feature and the superb synchronisation via BT that saved my day I kindly ask if it is possible to have the app manage the Chromecast itself and thereby avoiding such problems as I had - ideally configurable (e.g. dont display annotations on the chomecast but only on the tablet, or only display text and not the chords (on specific formats only of course)...).

Thanks for this really great app...
Unfortunately, no, it will not be possible for me to manage the Chromecast. Google did not provide a good API for broadcasting what is shown on the screen, or for rendering images. While you can mirror your tablet screen using the chromecast app, Google did not give applications a way to do that programmatically.  If I wanted to instead just stream across the rendered sheet music image, animations of any kind (including scrolling) would be a major problem. If I tried to capture the screen and stream it as video (which is not a simple thing and there is nothing in my app like that), it would potentially cause major performance issues with the level of processing involved.  If users wanted me to support just rendering an image and displaying that through chromecast, even that would be challenging. Refer to this thread:

As the reply says:

The goal of Chromecast, according to Google, is to stream content from the cloud, which is why there isn't really any native support for sending local images. Developers should be encouraged to load images on the receiver application from a server.

The Chromecast API seems to be extremely limited in what it is designed for and how it can be used. 

Thanks for clarifying. I wasn't aware it is so difficult. I saw this feature in the android Sheetmusic app I used before MSP:

Here it was working good also with the option (depending on format) to e.g. not display the chords on the secondary screen. I thought this must be a valuable and versatile feature for MSP also...
So I've done more research on this, and I understand a little more now about how you need to set everything up. It seems there is an easier way than I thought to render what you want to show on the external display. Unfortunately, it's going to be a pretty significant effort because what i need to do is duplicate a lot of the current page rendering logic but set it up to be done on the side for an external display. I think I should be able to reuse a lot of my code for how pages are drawn to the available screen area, but the part that would probably require more effort is in adding glue between the current framework and the code managing the external display. For example, when a page turn occurs on the main device, the page turn is forwarded to the code drawing to the external display so that it also shows the page change. I'd have to do that for every interaction the user can take to cause changes to occur in the display. Scrolling to me still seems like one area that may be problematic when it comes to sychronizing what is shown on the tablet to what is shown on the external display. I also have to ensure that the processing to render the external display doesn't cause the main application to slow down or become sluggish in any way.

So I do think I can eventually add support for this, but it's going to need to be after I've finished other higher priority enhancements.

Thanks for looking into this. Your dedication to make this great app even better is outstanding... really looking forward to whatever you implement to make us musicians life easier!