Impressum, privacy, terms, and where the music comes from.
Information pursuant to § 5 DDG (Digitale-Dienste-Gesetz)
TC Operations UG (haftungsbeschränkt)
Südring 3
86875 Waal
Germany
Email: legal@omnipiano.app
Managing director (Geschäftsführer): Andrey Galitskiy
Registered at Amtsgericht Kempten (Allgäu), HRB 15964
VAT ID pursuant to § 27a UStG: DE346117574
Andrey Galitskiy, address as above
The European Commission provides a platform for online dispute resolution (ODR): ec.europa.eu/consumers/odr. We are neither obliged nor willing to participate in dispute-resolution proceedings before a consumer arbitration board.
Last updated 19 September 2026 · Written under the EU General Data Protection Regulation (GDPR)
This policy says what OmniPiano holds about you, why, and what you can do about it. It describes what the software actually does today, not what a template says an app usually does. Where something is planned but not built, it says so.
The controller for the processing described here is TC Operations UG (haftungsbeschränkt), Südring 3, 86875 Waal, Germany — the company named in the Impressum above. For anything about your data, write to privacy@omnipiano.app. We have not appointed a data protection officer; at our size the law does not require one.
This site sets no cookies, runs no analytics and loads nothing from a third party. It is static, served by Cloudflare Pages; Cloudflare, Inc. processes technical connection data — your IP address, the page requested, the time — to deliver and protect the site. Legal basis: our legitimate interest in running a website that works and is not attacked, Art. 6(1)(f) GDPR. Everything from here on is about the app.
OmniPiano does not begin with a registration form. The first time you open the app it asks our server for an account, and the server creates one. That account consists of a sequential number, an invite code of the form OMNI-XXXXX, and the date it was created. That is the whole record. It carries no email address, no name, no device identifier, no advertising identifier and no IP address.
Your device keeps a session token — a long random string — so it can prove the account is its own. We store only a one-way hash of that token, never the token itself. A token is valid for a year; when it expires the app quietly asks for a new one.
You may later attach an email address, so that a new iPad or a fresh install can find your history again. Sign-in is passwordless: you receive a one-time code, so there is no password to store and none is stored. If you attach an address, we keep it; if you never do, we never have one.
In the You screen you can also add a display name, and say whether you practise on an acoustic or a digital piano and which model it is. Those three fields are optional and exist only to make the app less anonymous to you.
When the app asks for an account we use the IP address of the request to limit how many accounts one connection can create in an hour. That address is held in memory for the length of that window and is never written to the database.
For each piece you work on we store which piece it is, which difficulty level, how far into it you got, and when — enough to put you back where you left off. Nothing about how you played: no audio, no recording of your mistakes, no timing analysis leaves your device.
When you import a score, the file you uploaded is stored on our server, together with the filename you gave it, the title written inside the file, and the difficulty levels our software derives from it.
Those files are yours. They are reachable only with your own session token; there is no public URL for them, no sharing, no listing, and they are never added to the Library. They are processed by our own software running on our own server — not sent to any outside service — and they are not used to train anything or to build a catalogue. Deleting an import in the app removes the uploaded file and everything derived from it from our server.
The app has a bug button. Pressing it is your choice, and nothing is sent unless you press it. This is the part of the app that collects the most, so here is the whole list. A report contains:
Our server adds the account number the report came from and the IP address it arrived from. The report is stored on our server, and then filed as an issue in a private repository we use as our bug tracker, hosted by GitHub, Inc. in the United States. The screenshot is uploaded there with it. The repository is private — only we can read it — but this is a transfer of your data to a US company, and it happens on every report. Section 9 covers the transfer; section 10 covers how long it is kept.
Legal basis: our legitimate interest in finding out why the app broke, Art. 6(1)(f) GDPR. If you would rather not send any of that, don't use the button — write to privacy@omnipiano.app instead.
In wait mode the app listens to the piano so it knows when you have played the right note. It asks for microphone permission the first time, and iOS shows you when it is listening.
No audio is sent to us, ever. The note-recognition model ships inside the app and runs on your device; there is no upload path for audio anywhere in the app, and no cloud service is involved. We never receive a recording, a transcript, or anything derived from one. This is not a policy promise we could quietly break — it is how the app is built.
One thing worth being plain about, because it is not obvious from the outside: the app is able to write a listening session down on your device — the raw audio, the notes it thought it heard, and which piece you were on — so that a mis-heard note can be reproduced later. That is a diagnostic setting, and it is switched off in every released build; nothing is written unless it is deliberately switched on. When it is on, the files sit in OmniPiano's own folder on your device, which iOS shows you in the Files app, only the most recent twenty are kept, and they are never uploaded. Removing the app removes them.
There is no analytics package in the app, no crash-reporting service, no attribution or install-tracking SDK, and no advertising SDK. The app never reads your advertising identifier and never shows Apple's tracking prompt, because it has nothing to ask for. We do not build profiles, we do not sell or share personal data, and nothing you practise, import or record is used for advertising or to train a model.
The website and the app both say OmniPiano will be free because it is paid for by advertising. That is still the plan, and there are no ads in the app today. When advertising arrives, this policy will be updated before it does, and you will be asked for your consent before any advertising identifier is used.
We use as few outside companies as we can. These are all of them:
| Company | What for | Where |
|---|---|---|
| DigitalOcean, LLC | The server and database the app talks to | Frankfurt, Germany (EU) |
| Cloudflare, Inc. | This website, DNS, and the connection in front of our server | Global network; EU entry for European visitors |
| GitHub, Inc. (Microsoft) | The private issue tracker bug reports are filed into, screenshots included | United States |
| Twilio SendGrid | Delivering the sign-in code to your email address | United States |
| Apple Inc. | Distributing the app, and TestFlight while it is in testing | United States / Ireland |
Each of them processes data on our instructions under a data-processing agreement, except Apple, which is its own controller for what it collects when you download or test an app — that is covered by Apple's privacy policy, not ours.
Our server and its database run in Frankfurt. Two transfers leave the EU: the bug report you choose to send, which goes to GitHub, and the sign-in code, which Twilio SendGrid delivers for us. For both we rely on the EU–U.S. Data Privacy Framework where it applies and on the EU Standard Contractual Clauses otherwise.
Signing in by email is switched on. When you ask for a code, Twilio SendGrid delivers that one message for us: they receive your email address and the code itself, and nothing else — not your name, not what you practise, not what you have imported. They are our processor for that delivery and may not use the address for anything of their own. The code is stored on our server only as a one-way hash, is good for ten minutes, and is deleted the moment it is used.
Deleting your account. The You screen has a Delete account link. It deletes the account, every session token on it, your practice progress and the record of your imports — immediately and for good. Nothing is archived, nothing is soft-deleted. Deleting a single imported piece, from Your music, removes that upload and everything derived from it.
Under the GDPR you may ask for a copy of what we hold about you (Art. 15), have it corrected (Art. 16), have it deleted (Art. 17), have its use restricted (Art. 18), receive it in a portable form (Art. 20), and object to processing we base on legitimate interests (Art. 21). Where we ever rely on consent, you can withdraw it at any time, and that does not affect what was lawful before.
Deletion you can do yourself, in the app. For anything else — including a copy of your data, which has no button yet — write to privacy@omnipiano.app. We answer within a month.
You may also complain to a supervisory authority. Ours is the Bayerisches Landesamt für Datenschutzaufsicht (BayLDA) in Ansbach — lda.bayern.de — and you may equally go to the authority where you live or work.
OmniPiano is made for adults. It is not directed at children, we do not knowingly hold data about anyone under 16, and if we learn that we have, we delete it.
When this policy changes in a way that matters — a new processor, a new kind of data, advertising — we update the date at the top and say so in the app before the change takes effect.
Last updated 19 September 2026
OmniPiano is operated by TC Operations UG (haftungsbeschränkt), Südring 3, 86875 Waal, Germany. Using the app means these terms apply between you and us. If you do not want them to, don't use the app.
A piano-learning app: guided practice of pieces from our Library, and of scores you bring yourself. What it can do will change — features are added, changed and occasionally removed, and the Library grows and is re-curated.
OmniPiano is currently handed out through Apple's TestFlight. Test builds expire, features move, and data can be lost in a way it would not be in a finished product. Keep your own copy of any score that matters to you.
The app creates an account for your device on first launch, without asking you for anything. You can attach an email address later so that a second device, or a reinstall, finds your history again; keep access to that address secure, because it is what proves the account is yours. An account is for one person. You can delete it from the You screen at any time, and that is the end of it.
Nothing. There is no subscription, no in-app purchase and no paywall — every piece and every feature is free. The plan is to pay for the app with advertising, as the website explains. There are no ads in the app today; if that changes, or if an optional paid ad-free version is ever offered, we will say so in the app before it happens.
You may import a score only if you are allowed to — a work in the public domain, something you wrote or engraved yourself, or a score you hold a licence for that covers making a copy for your own practice. That is your responsibility, not ours, and it is the one rule here we will actually enforce.
You keep every right you have in what you upload. You give us only the narrow permission we need to store the file, process it into difficulty levels and serve it back to you inside the app. We do not publish it, share it, sell it, add it to the Library, or use it to train anything. If a score you uploaded turns out to be one you had no right to upload, we remove it.
Library scores are public-domain works, engraved by the MuseScore community and reaching us through the open PDMX dataset — see The music. The OmniPiano name, the brand, the app itself and the arrangements and difficulty levels we prepare are ours, and are not yours to copy, redistribute or build on without permission.
If you believe something in the Library is not actually free to share, write to rights@omnipiano.app. We remove first and ask questions afterwards.
Use the app to learn to play. Do not try to break it, overload it, work around its limits, scrape the Library, or use somebody else's account. If you do, we may suspend or close the account.
We are liable without limit for intent and gross negligence, and for injury to life, body or health. For ordinary negligence we are liable only where we break an obligation that is essential to this agreement working at all, and then only for the damage typical of such an agreement and foreseeable when it was made. Liability under the German Product Liability Act (Produkthaftungsgesetz) is unaffected.
Beyond that, and as far as the law allows, the app is provided as it is. We do not promise that it is free of faults, that every score will import cleanly, that the difficulty levels we derive are the ones a teacher would have chosen, or that the app will hear every note you play correctly. It is a practice tool, not a teacher.
You can stop at any time: delete the account in the app, or simply remove it. We may close an account that breaches these terms, and we may stop offering the service — with notice in the app, and with time to take your imports with you.
We may change these terms; when a change matters we will say so in the app before it takes effect, and carrying on using the app after that is how you accept it. German law applies, excluding the UN Convention on Contracts for the International Sale of Goods. If you are a consumer living elsewhere in the EU, you keep the protection of the mandatory rules of your own country. Our position on consumer arbitration and the European ODR platform is in the Impressum.
Where the Library comes from
OmniPiano's Library is built from PDMX, an open dataset of scores shared by the MuseScore community. We are grateful to the musicians who created and shared them. Where a score's licence allows, we prepare graded arrangements so the same piece can be learned at any level; where it does not, we hold only metadata and point you to the source.
Advertising keeps the app free to run. To be clear about it: ad revenue pays for infrastructure, transcription and development — it does not pay the people who wrote or arranged the music. More on how OmniPiano stays free.
Attribution and per-score licensing details are surfaced inside the app on each piece. The dataset itself is PDMX; a full licence notice for it is being prepared.