Privacy Policy
Last updated: November 2026
Cadence is a personal flashcard application. This policy explains what happens to your data — and, just as
important, what doesn't. The short version: no server stores your data. Some features do talk to a
server, but only ever in passing, never to keep a copy.
Data Storage
All your flashcard data (decks, cards, study history), your tune analyses and any recorded audio are stored
locally in your browser's IndexedDB. A few settings that belong to the device rather than to you (theme, zoom,
whether to keep recordings, the play-along latency…) are kept in the browser's local storage. Nothing is uploaded
by default, and Cadence doesn't require an account.
Microphone, Recording & Listening
Cadence asks for microphone access only when you start something that listens:
- Tune analyser — a session you record live. Tune recognition and tempo detection run entirely
on-device (via FolkFriend,
compiled to WebAssembly); the audio itself is never sent anywhere for that. Instead of the microphone, you can
choose to analyse the sound the device is playing: on a computer, the browser asks you every time which tab,
window or screen to share, and Cadence only takes its sound; on Android, see "Android App" below.
- Recording onto a card — a recording you make as a card's attachment.
- Play-along — the score follows what you play. The sound is analysed as it comes in and
is not recorded or stored.
Analysing a recording you import, and audio sync (a score following a recording attached to a
card), also run entirely on your device.
A recording is saved on your device like any other attachment. If you untick "Keep recordings" (a setting of
each device), an analysis keeps only its list of tunes: the audio of a live recording is held while it runs (to
place each tune's boundaries) and deleted when it ends, and nothing of an imported file is stored. A recording only leaves your device if you back it up to your own Google Drive, or
explicitly share that analysis with its audio (see below).
Trying Without an Account
The standalone pages of the tune analyser (/TuneAnalyser/) and of Trending
(/Trending/) keep nothing: an analysis made there is not kept once you leave the page (what remains on
the device is erased the next time the page opens), unless you choose to carry it into Cadence, in which case it is
moved into the app's storage on the same device.
Nothing is sent to a server for that.
Sharing by Key (Ephemeral Relay)
Cadence lets you share a card pack or a tune analysis (optionally including its audio) with someone else via
a short one-time key, instead of sending a file. This goes through a small relay server the author operates. It
works more like a self-destructing drop-off than a server "storing" anything:
- Whatever you share is held only in the server's memory (RAM) — it is never written to disk.
- It is automatically deleted after 10 minutes, whether or not anyone downloaded it.
- It's retrieved with a random 6-character key (letters and digits, ~2.18 billion combinations) — there's no
listing or browsing of what's currently shared.
- Uploads are capped at 100 MB.
- The content itself is never logged by the application. (The hosting infrastructure does log ordinary request
metadata — timestamp, IP, path — the way any web server does; see "Hosting & Network" below.)
- If a shared analysis includes its audio, that audio travels through this same relay, under the same rules,
for the same 10 minutes.
If the server restarts for any reason (deploys, crashes), anything still held in memory at that moment is lost
— which, again, is the point: nothing here is meant to persist.
TheSession.org
Searching for a tune or a set on TheSession.org,
importing it, refreshing a card from it, or building the sample library offered when you start, sends that request
straight from your browser to their servers — Cadence doesn't proxy it. This means your search terms (and by
extension, something about what you're learning) are visible to TheSession.org the same way they would be if you
searched their site directly. See their own privacy policy for how they handle that.
irishtune.info (Optional)
irishtune.info is an optional source, off unless you turn it on in Settings → Extensions. Searching, importing a
tune, reading a playlist by its username, or playing one of its recordings goes through the same relay server
mentioned above (it also runs a small scraper for this site, since irishtune.info has no public API). Your request
passes through it; nothing about it is stored beyond normal request handling — see "Hosting & Network" below.
Public Data Downloads
Some features need public data, which Cadence downloads without sending anything about you or your library —
only the standard request metadata any request carries (IP address, etc.):
- Trending — tune popularity, first from a precomputed file on the site itself
(
batpapa.github.io), then updated from GitHub (api.github.com and
raw.githubusercontent.com, reading the open adactio/TheSession-data repository).
- Tune name search — the list of TheSession tune names, from the same GitHub repository.
- Tune recognition — FolkFriend's tune index, from GitHub
(
raw.githubusercontent.com, the TomWyllie/folkfriend-app-data repository).
Links, Embedded Players & Outside Tools
Some of what you put on a card belongs to other services, and opening it contacts them:
- Embedded players — a YouTube, Spotify, Deezer or SoundCloud link shown in the app's
built-in player loads that service's own player, under its own privacy policy (it may set cookies or know you if
you are signed in to it). Nothing is loaded from it until you open the link. When you add such a link, Cadence
asks that service for the title and the player's address (its public oEmbed endpoint), sending it the link.
- Links to files — when a link to an audio, video or PDF file opens in the app, Cadence
downloads the file from the server you gave, which sees the request like any download. Nothing is kept: the file
is read again from there next time.
- Opening a score elsewhere — "Open in ABC Transcription Tools" opens the tune on Michael
Eskin's site, with the ABC text in the link.
- Smart edit — Cadence never sends your data to an AI service. Smart edit gives you a
description of your library to copy or download; where it goes from there is your choice.
Google Drive Integration (Optional)
Cadence offers an optional Google Drive sync feature. If you choose to enable it:
- Cadence uses the
drive.file scope, which only gives it access to the files it creates itself in your Google Drive: a data file (cadence-data.json) and a folder next to it (cadence-data-ext).
- The data file contains your Cadence data (decks, cards, study history, analyses). The folder holds your larger files: recordings, attachments, and the periodic backup of a live recording still in progress (every 10 minutes, if that option is on).
- Cadence reads the email address and the account identifier of the Google account you connect (through
Drive's own account information, which this scope allows), to recognise that account later — so it doesn't sync
one person's data into another's Drive, and can find your data again on a new device. They are kept on your
device only.
- Cadence does not access any other files in your Drive.
- Your data is never sent to any third-party server — it travels directly between your device and Google Drive.
- The Google sign-in script itself is only loaded once you turn this feature on (or ask to find your data on
Drive from the welcome screen) — not on every visit.
- You can revoke access at any time from your Google Account settings.
Google API Limited Use Disclosure
Cadence's use of information received from Google APIs adheres to the
Google API Services User Data Policy,
including the Limited Use requirements. Cadence only uses Google Drive data to provide and improve the sync feature within the app. It does not use this data for advertising, profiling, or any purpose unrelated to syncing your flashcards.
Android App
This section applies only to the Cadence app for Android (installed from Google Play or as an
APK) — not to the web version. Everything above applies to the app as well, with these differences:
- Where your data lives. Instead of a browser's storage, your data is kept in the app's private
storage on your device, which other apps cannot read. Uninstalling the app, or clearing its data in Android's
settings, deletes it — use Google Drive sync or an export if you want to keep a copy. The app's data is excluded
from Android's own device backup and device-to-device transfer.
- Permissions.
- Microphone (
RECORD_AUDIO, plus MODIFY_AUDIO_SETTINGS, which the app's
built-in web view needs to open it) — used only for the recording and listening you start yourself (see
"Microphone, Recording & Listening").
- Capturing what the phone plays (foreground service of type media projection) — only
when you choose to analyse the sound of another app (a video, a stream) instead of the microphone. Android
asks for your consent every time and shows that the screen is being shared; Cadence only takes the sound,
never the picture, and leaves out its own sounds.
- Foreground service of type microphone and wake lock — let a recording carry on with the
screen off or another app in front. While it runs, Android shows a persistent notification; the app never
listens in the background without it.
- Notifications (Android 13 and later) — for that recording notification only. Cadence sends no
other notifications.
- Internet — for the features described above.
- Lock screen. During a recording, the notification and the lock-screen media controls show the
elapsed time and the name of the tune currently recognised. Like any media player's, they are visible to anyone who
can see your screen.
- Google sign-in. The app signs in through Google Play services on your device instead of the
web sign-in script: you pick your account in Google's own screen, and Cadence never sees your password. Same files,
same
drive.file scope, same rules as in "Google Drive Integration" above, and access is revoked
the same way.
- Files. Exports go through Android's own "save as" screen, to the place you choose. The app has
no permission to read your files or photos: it only opens a file you pick yourself in the system's file picker.
- Updates. When it starts and when you come back to it, the app checks GitHub Pages (the site
that serves the web version,
batpapa.github.io) for a newer version of its own code, and downloads it
if there is one. These requests carry nothing about you or your data, only the usual request metadata (IP address,
etc.). No third-party update service is involved.
Hosting & Network
Cadence is a static site served from GitHub Pages, and the relay/scraper above runs on Render. Like essentially
any website, both of these can see ordinary network-level request metadata (your IP address, timestamp, and the
path requested) simply by virtue of serving the request — this isn't specific to Cadence and isn't something any
website can avoid. Neither logs the actual content of what you share.
Data Retention & Deletion
The author holds no copy of your data, so there is nothing on the author's side to keep or to delete. Your data
stays where you put it, for as long as you keep it there:
- On your device — until you remove it: deleting a user in Cadence's settings removes that
user's data from the device; deleting an analysis's audio removes it from the device; clearing the site's data in
your browser, or uninstalling the Android app (or clearing its data in Android's settings), removes everything.
- In your Google Drive — until you delete it: an analysis's audio can be deleted from Drive in
Cadence; everything else, by deleting
cadence-data.json and the cadence-data-ext folder
yourself, from Google Drive. Disconnecting Drive in Cadence, or revoking its access, stops any further sync but
leaves those files in your Drive.
- Shared by key — deleted automatically after 10 minutes (see above).
What Cadence Does Not Collect
Cadence has no analytics, no telemetry, no advertising, and no user accounts. It doesn't track you across
sessions or devices, and no server — including the relay described above — keeps a durable copy of your data.
Third-Party Services, at a Glance
- Google Drive — optional, opt-in, only when you enable sync.
- Google Identity (sign-in) — only loaded once you enable Drive sync.
- thesession.org — when you search, import or refresh from TheSession, or build the sample library.
- The author's relay/scraper (Render) — when you share by key, or use irishtune.info.
- GitHub (
api.github.com, raw.githubusercontent.com) — read-only, for
trending data, tune name search and the recognition index.
- GitHub Pages (
batpapa.github.io) — the site itself; the Android app also checks
it for its own updates.
- YouTube, Spotify, Deezer, SoundCloud — when you add such a link, and when you open it in the built-in player.
- The server behind a file link — only when you open that link in the app.
- Michael Eskin's ABC Tools — only when you open a score there.
- Google Play services — Android app only, for Google sign-in when you enable Drive sync.
When Google Drive sync is enabled, your data is subject to Google's Privacy Policy.
Contact
Cadence is developed by an independent developer, Batpapa. For any privacy-related question or request, write to
antl@hotmail.fr. You can also open an issue on the
Cadence GitHub repository — but issues
are public, so prefer email for anything personal.