← Patina

Privacy Policy

Effective 9 September 2026 · LangSongs LLC

Patina is a guitar practice app for iPhone, made by LangSongs LLC, a Florida limited liability company. This policy describes exactly what the app sends, what it never sends, and how to stop it. It is written from the app's own source code rather than from a template.

There is no account and no sign-in. We do not know your name, your email address, or who you are.

Your audio never leaves your phone

Patina listens through the microphone while you practise. The audio is analysed on the device — pitch, onsets and chords are estimated in memory and the samples are thrown away. Nothing recorded is uploaded, stored on a server, or sent to anyone.

There is one exception, and you control it. Settings › Diagnostics has a Record 10 s button. If you press it, the app writes a short audio file to its own cache and hands it to the iOS share sheet so that you can send it to us if you are reporting a problem. The recording is kept only until you share it, and only in the cache. Nothing is sent automatically.

Practice data stays on your phone

Your settings, guitars, tunings, calibration, sessions, reps and statistics are stored in a database inside the app on your device. We have no server holding them, and no copy. Patina can export your data as a JSON file and import it back — both are things you start yourself, and the file goes where you send it.

Usage data (optional, and off with one switch)

If Settings › Send usage data is on, the app sends a small, fixed set of anonymous events so we can see which parts of the app get used and where people get stuck. The list of events is closed: the app contains a validator (validateEvent) that rejects anything not on the list below, and none of these events can carry free text — every property is a number, a true/false value, or a word from a fixed list.

The complete list of what the app may send:

Alongside these, the analytics SDK attaches standard information about the build and the hardware: the app version and build number, the app name, the hardware model (for example "iPhone 16 Pro" — never the name you gave your device), device type, iOS name and version, language, time zone, screen size, whether it is a simulator, and the app's own build stamps. It also records app installed / updated / opened / backgrounded. Any deep-link URL the SDK would otherwise attach is stripped before anything is queued.

Session recordings of the app's own screens

While usage data is on, the app also captures masked screenshots of its own screens — not video, and never any sound. There is no microphone path in this feature at all.

Masked, meaning blanked out before anything leaves the phone: every text input, every image, every system view, and every surface that shows what you actually played. That includes the tuner readout and needle, the fretboard and pitch traces, rep summaries and set rollups, the chord and ear answer readouts, the whole of Stats, the names you gave your guitars, your intonation profile, the calibration and mic-sensitivity flows, the paywall's price and purchase status, the Diagnostics capture cards, and the audio input device's name.

What a recording shows is navigation: which mode you opened, how far a set got, which buttons were pressed, and where somebody got stuck. What it does not show is the notes, the cents, the scores, the answers, or the name of anybody's audio hardware. Console logs and network traffic are not captured.

Turning the switch off stops the recorder immediately. Snapshots the iOS SDK had already taken before you flipped it may still be uploaded by that SDK; a recording that arrives that way ends at the moment you turned it off and contains nothing after it.

What we never collect

The install identifier

The analytics SDK generates a random ID on first launch and keeps it inside the app's own container, so that "the same install opened the app twice" is knowable. It is not the IDFA, not the IDFV, not a device serial, and not derived from any of them. It is deleted when you delete the app, and reinstalling mints a new one. Person profiles are switched off in the SDK's configuration, so no profile or user record is created for it — it keys a stream of events and nothing else, and it is never joined to any other data, because we run no server and hold no user table.

Where it goes

Usage data and session recordings go to PostHog in its US Cloud (us.i.posthog.com), which we use as our analytics processor. PostHog is the only third party that receives anything from the app. If the app is built without a PostHog key, no analytics client is created at all and nothing can be sent.

Apple is involved in purchases — see below — and Apple's own handling of your App Store account is governed by Apple's privacy policy, not this one.

How long it is kept

We keep usage data and recordings in PostHog for as long as needed for the purpose described above — understanding how the app is used and fixing what is broken — and we delete data we no longer need. PostHog applies its own retention settings to recordings and events; we have not set a fixed period beyond those. If you want data associated with your install deleted, email us and we will do what we can, though without an account we can only act on an install identifier you can give us from Settings › Diagnostics.

App Store privacy label

Our App Store privacy label describes this as Usage Data, used for analytics and not linked to you, plus purchase history from the purchase events, and diagnostic data from the store-failure reports. We do not use any of it for tracking or advertising.

Turning it off

Open Settings › Send usage data in the app and switch it off. From that moment nothing new is sent and screen recording stops. One final "usage data turned off" event is sent as the switch moves, so that we can count how many people opt out; after that, silence. The app works identically with the switch off — none of this is needed for it to function. Restoring an exported backup that had the setting off turns it off too.

Purchases

Patina has a free tier and a one-time in-app purchase called Full Trainer, sold through Apple using StoreKit. Apple processes the payment. The app only ever sees whether the purchase is unlocked, plus the localised name, description and price Apple gives it to display. We never see or receive your card details, your Apple Account, your receipt or your transaction history.

Children

Patina is not directed to children under 13, and we do not knowingly collect personal information from children under 13. If you believe a child has provided us with such information, email us and we will delete it.

Changes to this policy

If we change what the app collects, we will update this page and change the effective date at the top. Material changes will also be noted in the app's release notes.

Governing law

This policy is governed by the laws of the State of Florida, United States, without regard to its conflict-of-laws rules.

Contact

LangSongs LLC, 437 N Country Club Dr, Atlantis, FL 33462, USA — hello@gripto.computer.