the small print
Privacy.
last updated 4 September 2026
Solomorph collects nothing, and sends nothing about you to us.
That’s the policy about us. Your device does talk to a short, named list of other services besides your own server — a podcast directory, a lyrics database, your app store — and every one of them is listed further down, in plain language, because we’d rather you read it here than guess.
How the app works
Solomorph is a client for a music server you run or choose. The app connects from your device straight to that server. We are not in the path: we do not operate it, we cannot see your library or your listening, and there is no Solomorph account to create.
What stays on your device
- · Your server address and credentials, held in the Android Keystore (or your platform’s equivalent) — never a plaintext settings file — and sent only to the server you configured. If you’re updating from an older build that once wrote these in plain text, the app moves them into secure storage the next time it opens and deletes the old copy — you don’t have to reinstall to fix it.
- · Settings, queue and playback state.
- · Cached artwork and any music you download for offline listening.
None of it is transmitted to us. Uninstalling deletes it.
What we receive
Nothing. No analytics, no telemetry, no crash reporting that leaves your device on its own, no advertising identifiers, no third-party trackers, and no account to attach any of it to.
Purchases
Store purchases are handled by Google Play or the Apple App Store under their own terms; we never see your card. The server licence is sold through Kloudmorph via Stripe, who process the payment — we receive the record needed to issue and honour your licence, and nothing further.
Permissions, and the one that looks worse than it is
Android will show you a microphone permission in this app’s listing. We would rather explain that here, plainly, than have you find it in a permissions screen and assume the worst.
Solomorph does not listen to you, and cannot. The permission is declared because Android gates its audio-visualiser API behind it, even when an app is only reading the audio it is already playing — which is what the EQ meters do. No microphone input is ever captured, stored, or sent anywhere. Voice command recognition is not implemented in this build: the code has an interface for it and no engine behind the interface, so there is nothing wired up that could listen even if the permission were misused.
- · network — to reach the server you chose, and the small list of services below. That is the job.
- · storage / media — to cache artwork, hold offline downloads, and read your on-device library if you turn on local files.
- · notifications — so your lock screen can show what is playing.
- · foreground service / wake lock — so playback keeps running while the app is backgrounded, which is what a music player is for.
- · multicast — for LAN discovery and casting, both described below.
Solomorph does not ask for your location, contacts, or camera. Network discovery scans private address ranges only, on your explicit tap, and never leaves your own network.
Where your device talks besides your server
Your server is the whole product, and there is no Solomorph-operated server anywhere in that path — the host is whatever you typed. Beyond that, here is everywhere the app can reach, in the order we think you’d care about it, and why. The first one is the one to actually read.
- · LRCLIB, for lyrics — the one that reveals what you listen to. When captions are on and your server doesn’t have synced lyrics for a track, the app looks it up on lrclib.net by sending the artist, title, album and duration — in effect, what you’re playing. Until 4 September 2026 this fired on every track regardless of whether captions were ever touched; that was a real cost for a feature half of you never turned on, and it’s fixed — the lookup only happens while captions are actually on, full stop. If you’re connected to a licensed Solomorph Server, the phone now prefers asking your own server to do the lookup instead of lrclib.net directly. We mean “prefers,” not “never”: if your server can’t answer (an older build, or it’s simply offline) the app still falls through to a direct request rather than costing you your lyrics — a missing route should cost a round trip, never the feature. A plain Navidrome, Airsonic or any other non-Solomorph server doesn’t have this route at all, so a phone connected only to one of those still asks lrclib.net directly, same as before — this is a Solomorph Server benefit specifically, not something every self-hosted server gets for free. When your server is the one asking, it also caches the answer for a day, so the second device in the house to play a song — or the same phone tomorrow — asks lrclib.net nothing at all. That’s a real reason to prefer the $49 server if this is the kind of thing you weigh, and we’re comfortable saying so now that it’s true rather than aspirational.
- · Podcast search (Apple’s directory) — if you search for a show, the words you typed are sent to itunes.apple.com to find it. Unlike lyrics, this one only fires when you deliberately type something.
- · Podcast subscriptions — once subscribed, the app talks directly to whatever RSS feed and audio host that show actually uses. We do not proxy or see that traffic.
- · The AutoEq database (GitHub) — only if you search for a headphone-correction curve in the advanced EQ. Fetched once, cached, works offline after that.
- · Google Play Billing — handles the $6.99 purchase. We never see your card.
- · Google ML Kit — downloads a translation model on first use; the actual translation runs on your device afterward, not in the cloud.
- · LAN discovery — sweeps your own private address ranges to find a server. Never leaves your network.
- · A server you point it at, if you choose to — Voice can use your own OpenAI-compatible endpoint (Ollama, LM Studio). Off by default, and stays on hardware you control. The web/server build can do the same for captions with your own LibreTranslate; that path isn’t reachable from the phone app.
None of these are Solomorph servers, and none of them are analytics — nothing here is collected to build a profile of you, sold, or used to target you with anything. But we said “no identifiers ride these requests” in an earlier version of this page, and for LRCLIB on the phone app that wasn’t true: your IP address rides it, because that is how a direct HTTP request works. We’d rather correct that than leave a stronger claim standing than the code supports. If a new outbound call is ever added, it appears in this list first.
The continuity pledge
The honest question about any closed-source purchase is what happens when the developer stops. Dated 15 August 2026, here is the mechanism — none of it requires trusting us:
- · The client unlock is a normal store purchase. It restores from the store, without us, forever.
- · There is no account, no licence server, and no phone-home check. Nothing we run has to be up for you to press play. Everything works offline, indefinitely.
- · Solomorph speaks OpenSubsonic, a published open protocol — if we end tomorrow, a dozen other clients still work against your library untouched.
- · The tagging agent writes standard tags and plain sidecar files into your own music, so whatever it repaired stays repaired in every other tool too.
- · If development ends, we say so in the build log — the page whose silence you were told to watch — and the final builds are published free.
If this ever changes
It will be written here first, dated, and noted in the build log on the same day. The commitment that does not change: nothing gets collected quietly.
Questions: [email protected].