Skip to content
SoundTogetherby Bloom HD
Support Get the beta on Google Play ↗

Privacy, in plain words

Your sound
stays with you.

This notice covers the SoundTogether Android app and website. Updated 19 October 2026.

On this pageAudio you choose to shareBluetooth and recovery informationLocal processing and essential storageOptional technical feedbackOptional accountsGuest and paid accessYour choices and supportCompatibilityThis website

Your audio is processed on your phone. Accounts and optional bug reports are separate from playback.

SoundTogether is provided by Hatem Dhaouadi, an individual developer in Tunisia using the brand Bloom HD. Bloom HD is a brand name, not a statement that a company is registered. For privacy questions or support, contact Hatem.dhaouadi.w@gmail.com.

Audio you choose to share

SoundTogether shares live playback audio between two Bluetooth devices. Audio is processed in small buffers in memory on your phone, encoded and sent over Bluetooth to Device 2 while Device 1 plays the original audio. No audio files are saved or uploaded to Bloom HD or a server. The app does not capture microphone audio or screen images.

Starting a session requires Android's playback-recording permission and a new sharing approval. Android uses its screen-sharing prompt for audio too and may show a sharing indicator. SoundTogether uses this approval for eligible playback audio only. Declining or stopping sharing prevents or ends capture. A previous approval is not reused to start a new session.

SoundTogether captures permitted media, game and unspecified playback audio from apps in the same Android profile, excluding its own audio. There is no source-app picker. Multiple permitted players can be mixed, including browser tabs, games, videos or advertisements, so pause anything you do not want to share. Changing apps does not change this filter.

Android controls which playback may be copied. Calls, alarms, notification usages and apps or protected players that block playback capture are not included in the copied stream. SoundTogether cannot override these restrictions. Compatibility and uninterrupted sharing depend on your phone, Bluetooth devices and the apps playing audio; support for every app or device is not promised.

Bluetooth and recovery information

SoundTogether reads paired Bluetooth device names and addresses, connection state and audio state to find two audio devices and check the session. Connect devices detects exactly two currently connected, already-paired Classic or dual-mode music devices, shown as Device 1 and Device 2. It does not scan for unpaired devices. If fewer than two are found, connect both in Android's Bluetooth settings; if extra audio devices are connected, disconnect the extras. Manual selection is available for paired devices that still need connection. New devices require normal Android pairing.

Your selected pair stays with the pending setup request, including Android's saved screen state if the screen is recreated. The app does not save a remembered-device preference. On supported phones, Connect selected can ask Android to reconnect the chosen devices' music profiles. The app checks their actual connection states. Requests already accepted by Android may finish after you leave setup; requests not yet submitted are stopped. This setup action does not start audio capture, disconnect other accessories or reset Bluetooth.

Before playback, SoundTogether checks the selected pair, available audio and call state, and supported phone software. No account, debugging setup, pairing code or computer helper is required for playback. During preparation and recovery, it temporarily changes Bluetooth connections and requests Android's normal Bluetooth OFF and ON approvals. This can briefly disconnect other Bluetooth accessories.

Before changing Bluetooth state, the app saves a small recovery record in private storage. It contains the two accessory addresses, original active music and call-device roles, connected call-device roles, the original Bluetooth scanning preference and recovery phase. It contains no playback audio, browser URL, song title or account credentials.

Restoration checks cover the selected pair, its original connected profiles and recorded music route. Android may select a different connected call device; the app reports that choice. The app cannot promise restoration of accessories or sessions it did not observe. The recovery record is removed after the app verifies release of its resources and restoration. If restoration is unfinished or uncertain, the record remains pending.

Keep SoundTogether open and follow its restoration instructions. Do not clear app storage, uninstall or force-stop it while recovery is pending. Closing the app unexpectedly, switching off an accessory or losing its connection can interrupt restoration. A stopped audio copy does not mean restoration has finished.

At Stop or the normal end of a session, SoundTogether may send one normal Android Pause command to the current player. This may pause another player or have no effect. If audio continues, pause it yourself so restoration can finish. Android may ask for further Bluetooth approvals; the app cannot accept them on your behalf.

Local processing and essential storage

Audio buffers are discarded when the recorder and encoder are released. No playback recordings, microphone audio or screen images are saved. The customer app does not keep a listening history or a persistent session-report archive. Any old completed-session report from an earlier version is removed before new sharing is allowed.

The app keeps the information needed for its controls, safe Bluetooth restoration, Guest allowance and purchase verification, plus your separate Guest-access and optional-feedback choices. The pending recovery record stays until restoration is verified; Guest, feedback and purchase records are described below. Your on-screen control preference and display settings stay on the phone. Android keeps its own Bluetooth pairing and permission settings.

The playback feature does not upload audio or Bluetooth recovery records to Bloom HD. Android may maintain its own system logs. App storage is excluded from Android app backup. After restoration is complete, clearing app storage or uninstalling removes the app's local private data; it does not immediately erase Guest records or feedback already delivered to the server.

Google Play Billing 9.1 and related Google transport components are included in the app. When the Play billing client is initialized, Google's operational diagnostics can process and send billing API results and errors, app package and version, billing SDK version, and device or network metadata. This can include Android API level, device brand, model, manufacturer, software fingerprint and total RAM. The SDK may queue diagnostic events locally for later delivery to Google. Playback audio, microphone audio and screen images are not supplied to this billing logger. Google handles SDK data under its own policies. The direct-download version does not initialize the Play purchase client.

Online Guest verification, optional technical feedback, payment verification and Google's operational diagnostics are separate from live audio sharing; the app is not entirely offline. Other apps you use, Android, Bluetooth accessories, hosting services and payment providers have their own data practices.

Optional technical feedback

If your app offers "Help improve SoundTogether (optional)", the first-use screen suggests the selected option. No reports are sent until you tap "Enable optional reports". You can choose "Continue without reports" instead, and existing saved choices are kept. When enabled, the app may send minimal technical feedback: device manufacturer and model, Android API level, app version, and fixed event and issue codes.

The feedback payload contains no device or installation identifiers, Android ID or Guest key, Bluetooth addresses or device names, source-app names, song or video titles, raw logs or stack traces, audio, microphone input, screen content, contacts, email address or name. It is not a playback history.

Feedback is used only to improve reliability and compatibility, never for marketing. When this feature is available and used, a private Netlify Database stores the allowed fields with a server-received date and a random server row ID. The optional-feedback rows are separate from the essential Guest allowance records.

Turning feedback off stops future delivery and deletes unsent feedback queued in memory. There is no persistent on-device feedback queue, report archive or report reader. Turning it off cannot recall feedback already transmitted. Stored feedback is deleted after 30 days by scheduled maintenance.

Optional accounts

An account is optional and is not required to use the free beta or share audio. Creating an account does not change device compatibility, create a paid purchase, restore purchases or link your Guest allowance to your email.

If you create an account, Netlify Identity processes the first name and last name you provide, your email address, account identifier, password authentication, email confirmation and recovery requests, and ordinary request information needed to operate and secure sign-in. Profile names are kept in managed account metadata and can be included in the account session. Password confirmation is checked locally and is not sent as a separate field. Password authentication is handled by Netlify; SoundTogether does not keep your password in its own database or in app storage. Do not share your password with support.

The Android app keeps authentication tokens in private storage encrypted with Android Keystore. The website uses the managed authentication service's session storage and first-party cookies to keep you signed in. These are used for account functions, not advertising or playback tracking. Signing out removes the local session. Uninstalling the app removes its local account session but does not delete your hosted account.

Account names, email and identifiers are kept separate from optional feedback, device-based Guest allowance and playback. There is no hosted listening history. The account service stores your account until you delete it or request its removal, subject to necessary security, legal and provider backup retention. The provider requests a confirmation email during signup; an unverified sign-in explains the email check and lets you request another link. Repeat requests can be limited by the provider, so a successful request does not guarantee immediate email delivery.

To delete your account, open Account in the app and choose Delete account, or visit https://soundtogether-bloom.netlify.app/account/#delete-account and sign in. Confirm deletion with your current password. This permanently removes your account, email and profile names from the active account service and signs you out. If you cannot sign in, use password recovery or contact Hatem.dhaouadi.w@gmail.com for help with a verified deletion request; never email a password.

Deleting your account does not reset separate device-based Guest allowance or identify optional reports already sent without an account identifier. Guest records expire after 30 days of inactivity and optional feedback after 30 days. These records contain no account email or account ID. Netlify's ordinary service logs and backups follow its own retention rules, so deletion from active account storage does not promise immediate erasure from all provider backups. Purchase providers retain any transaction records required by law; account deletion does not itself cancel an external subscription.

Guest and paid access

The explicitly offered free beta has no daily listening cap and offers 15, 30, 60 or 120-minute sessions. It requires no account, Guest allowance admission or payment. Future access changes will be explained before a changed offer applies. The Guest and purchase handling below applies to builds where those features are enabled.

Before requesting new Guest access, this version explains the essential online check and asks you to choose "Continue with Guest". Until you choose it, the app does not derive or send a new Guest identifier, request Guest status or reserve Guest allowance. Your choice is saved locally. It does not start audio sharing or grant Android permissions, and is separate from the optional-feedback checkbox.

An unfinished Guest reservation from an earlier session may still need accounting after Bluetooth restoration. In that case, the app checks the current local device key against the existing reservation and completes only its original request or settlement. A local-only reservation is recovered locally. This exception does not create a fresh Guest status check or allowance reservation.

If this version offers "Free beta · No daily limit", every user of that beta receives the same included access, without new Guest verification or a purchase. Normal session duration and safety limits still apply. Purchases are disabled in that beta, and its purchase controls do not start Google Play Billing. Verified paid access can also be used offline until its verification expires.

Guest provides 180 seconds total per rolling 24-hour period, which can be split across sessions without an account. When online Guest verification is enabled, starting a new Guest session requires an internet connection: the app verifies and reserves allowance with Bloom HD's HTTPS service on Netlify. A local allowance record is also kept for accounting and recovery; neither record is a listening history. A valid paid access lease can still be used offline until it expires.

For Guest verification, the phone derives a domain-separated hash from Android's identifier scoped to the app signing key, Android user and device. The raw Android identifier is never uploaded. The Guest hash is generated separately from the paid-access subject and is not included in optional feedback. It is a pseudonymous identifier, not anonymous data.

The server uses this key to keep Guest allowance and reservations consistent after an ordinary reinstall on the same device, Android user and signing key. This is not recovery across devices, factory resets or signing-key changes, and is not a claim of tamper-proof protection. Clearing local storage or reinstalling does not reset the corresponding server allowance.

The private Netlify Database holds the pseudonymous Guest key, allowance window and use, and session reservations needed to prevent spending the same allowance twice. Expired Guest records and reservations are removed after 30 days of inactivity. These essential records are separate from optional feedback and contain no audio, source-app or title history.

Netlify receives ordinary HTTPS request information, which can include an IP address, browser or app headers, requested path and security metadata, when account, Guest verification, feedback or purchase requests are sent. Its hosting services may derive a broad location such as a country from an IP address for service operation and security. SoundTogether does not request GPS location. The managed identity service also keeps account security events such as signup, sign-in, sign-out, confirmation, recovery and deletion. Platform logs and backups follow Netlify's own retention and privacy practices; the payload limits and active-database deletion rules above do not promise anonymous requests or immediate deletion from provider backups.

Plus removes the daily cap and offers 15, 30, 60 or 120-minute sessions. Paid access requires a signed verification response. Website purchases use Lemon Squeezy; Google Play purchases use Google Play Billing. Purchases are available only where checkout is enabled. Final prices and terms appear at checkout. SoundTogether does not collect payment card information.

To verify a website purchase, the app sends the license key, an opaque installation identifier and an existing activation instance identifier when available to Bloom HD's HTTPS verification function on Netlify. To verify a Play purchase, it sends the package and product IDs, purchase token and an opaque subject identifier.

For new Play installations, this subject is derived on the phone from Android's identifier scoped to the app signing key, Android user and device. The raw Android identifier is not uploaded. This allows the same paid binding to be derived after reinstall on the same device, user and signing key. It does not provide recovery across devices or factory resets. Older installations keep their existing random subject.

Netlify's verification function uses Lemon Squeezy or Google Play to validate the purchase. These requests contain no audio, screen images, microphone audio, browser URL or Bluetooth address. The function has no custom purchase database and does not intentionally log purchase tokens, license keys or private signing keys. Hosting and payment providers process request and transaction information under their own policies.

The app stores a signed access lease, its subject and a device-Keystore-encrypted renewal credential in private storage. A lease lasts no more than seven days and is limited by a subscription's paid term. Lifetime purchases also require periodic verification. Refunds and revocations take effect at the next verification or lease expiry, rather than immediately while offline. Receipts and licenses are not placed in Android logs. Clearing app storage or uninstalling removes local access data. Google and Lemon Squeezy retain their own transaction records. See Google's privacy policy (https://policies.google.com/privacy), Lemon Squeezy's (https://www.lemonsqueezy.com/privacy), and Netlify's (https://www.netlify.com/privacy/).

Your choices and support

You can decline permissions and Android sharing or Bluetooth prompts. Stop sharing from SoundTogether or its ongoing notification, then finish any required Bluetooth restoration. Permissions can be revoked in Android Settings. Optional technical feedback can be turned off separately; its checkbox does not accept essential Guest verification. You can leave the Guest notice unaccepted and use another available access tier instead. Guest needs no Bloom HD account, and there is no hosted playback history.

Contact Bloom HD opens your chosen email app without sending a message automatically. You decide what to include. Do not send recordings, account credentials or private device information unless needed for your support request. If you contact Bloom HD, the developer receives your email address and the information you send and uses them to respond. Correspondence is retained while needed to resolve support or meet applicable obligations. You can request access, correction or deletion using the support email. Your email provider has its own privacy practices.

Compatibility

SoundTogether currently supports a limited setup: Galaxy A25 SM-A256E with Android 16 and compatible Bluetooth audio devices. The app checks supported software before starting. Other phones, software versions, apps or accessories may not work, and software updates can affect compatibility. Android's approval prompts remain required. Bloom HD will update this notice when the app's data handling changes.

This website

This website uses no analytics SDK, advertising pixels, advertising cookies or remote fonts. Optional account sign-in uses first-party authentication storage and cookies as described above. Normal website delivery requires Netlify to process request information, such as your IP address, browser headers and requested page. Netlify privacy notice.

The Google Play beta is available by invitation. Direct APK downloads are not offered here. The current beta is free, with no daily cap and sessions of up to 2 hours. No account or payment is required. Following a store or download link lets the indicated provider process ordinary request information. External sites, payment providers and services you visit have their own privacy practices.

SoundTogetherA little closer, by Bloom HD
SupportAccountDelete accountPrivacyTermsLicenses

© 2026 Hatem Dhaouadi · Bloom HD. Made for listening together.

Android 16 beta.