Connect devices

Found under: Settings > Connect devices 

Connect devices using Google Nearby

Connect several Android devices to allow remote control of OpenSongApp (requires Google Play Services)Devices set up as hosts can send song information to all connected clients.  This is useful to have one device controlling multiple devices on stage.  You will need to allow various location permissions for this feature to work.  Despite using location access, the app does not report your physical location, but simply uses it to locate other nearby devices.

If you do not wish to enable these permissions, or you do not have the Google Play Services installed, you cannot use the Connect devices feature

Device name

When devices try to establish connections with each other, they try to display helpful device names.  Click on this to edit it to something sensible (e.g. the person's name or the device).  To avoid confusion, each device being connected should have a different name.  By default if no name has been entered, the app will try to get the device's Bluetooth name or failing that, the device model name.


Google Nearby is not required and is switched off.  This is the default setting when the app starts (and closes).  When you change from host/client to off, you will close all current connections to devices.  

Act as Host

When a device is set to act as the host, it sends information to all connected devices whenever certain actions occur such as a new song is loaded, a song section is selected (in Stage/Presenter mode) or autoscrolling has started/stopped.

Normally only one device is set as a host, however, it is possible to have multiple devices acting as hosts.  Hosts ignore information sent from other devices acting as hosts.

Act as Client

When a device is set to act as the client, it listens to all incoming information that has been sent by a host such as a new song is loaded, a song section is selected (in Stage/Presenter mode) or autoscrolling has started/stopped.  To receive this information, a client device should either be connected to a device acting as a host, or connected to another client that is connected to a host.

As a client, you only need to connect to devices that will be acting as a host.  You do not need to connect to other client devices (unless these devices may later change to hosts).

Connected To

When direct connections to other devices have been made, the names of these devices are listed here.  You can only directly communicate with these devices, however, when in cluster or star mode, you can also send messages to or receive messages from devices that are connected with your connected devices.

 If you switch between apps during a performance, Android often closes background apps to recover memory.  If this happens, you will lose your connections too (you will know this as when you open the app again it will rebuild your song index as it has started fresh).

If you want to ensure OpenSongApp runs in the background (when switching between apps), you can allow it unrestricted battery usage.  This is normally found under the App settings or Battery optimisation settings on your Android device.  If you allow this, remember to properly close the app when you have finished rather than just switching to a different app.  If memory is low on your device, Android may still close the app in the background.

Connecting devices

When you wish to make a connection to a new device, you must first decide on setting yourself up as a host or client.  This makes no difference in the type of connection made.  If you want to let other devices search for you, click on 'Advertise'.  For other devices to find you, they have to click on the 'Discover' button.  Sometimes devices work best advertising and others when discovering (this can depend on their Bluetooth and WiFi capabilities), so if your devices don't see each other, switch which device advertises and which device discovers.

Once a connection has been discovered, for your own security you will need to confirm the displayed code on both devices match before accepting the connection.  Both devices need to accept before a connection is established.

If a connection has been established and is then lost, you will not need to reaccept the code again as the device has already been set as trusted.  Restarting the app forces this to request confirmation again.

Additional settings

Nearby Connection Strategy/Mode

The three connection modes available are:

Host options (only visible when acting as a host)

You can allow the passthrough of other host messages (act as a soft host), or block other host messages you receive (hard host) being passed to your connected clients.

You can choose to only see connection requests when viewing the Connect devices page.  This reduces the chance of a connection request when you are busy performing.

Client options (only visible when acting as a client)

You can choose to use the host's version of a song (rather than your locally saved copy), copy the host song to your device (be aware this overwrites any local file you have with the same name), listen for section changes, listen for autoscroll start/stop commands and host scroll up/down commands.

If you want to load PDF files rather than OpenSong formatted songs that your host is using, you can switch on the prefer PDF option.  This will look for a PDF file in the same location as the host is using with the same filename, but with a .pdf file extension.  e.g. The host loads a song with the filename 'MySong' found in the 'MAIN' folder.  If as a client you switch on the prefer PDF option, your device will look for a file named 'MySong.pdf' in the 'MAIN' folder.  If this file exists, that file will be loaded, if not, your device will revert back to the OpenSong formatted song.

Which strategy/mode should you use?

If you only ever need to make a connection with one other device, use single mode.   This gives the highest possible bandwith and improves connection stability.  You will only be able to make a connection to one other device.   If you try to connect to a second device, the first device will be disconnected.

If you will always have one device set as the host and others set as clients and don't change which device is the host, choose star mode.  Clients need to either be connected to the host directly, or to another client that is.  This gives a slightly more stable connection that cluster mode, but not as good as single mode.

If you want the most versatile mode, or you are unsure, stick with cluster.  This allows devices to easily switch between host and client.  When this happens, as long as client devices have a direct or indirect connection to a host, they will listen for incoming messages.  This also allows any device to connect directly to any other device, even if it already has a connection.  This mode, due to the possible complexity has the lowest bandwith, however, any delay is small.


Device requirements:

Android Permissions required: