You are handing unreleased music to a website, so you deserve a straight account of where it goes. This page describes exactly what the code does — no more, no less.
Last updated 3 August 2026
When you choose a track, your browser opens and decodes it locally. It samples three short windows — roughly eighteen seconds each — from across the middle of the track, skipping the first and last eight percent, and joins them into a single excerpt of about fifty-four seconds. A track too short to sample that way is taken as one continuous excerpt instead.
That excerpt is mixed down to mono at 16 kHz — deliberately low fidelity, enough to recognise a style and not much use as a copy of your master. Only the excerpt is transmitted. The original file is never uploaded, never stored, and never sent anywhere. If you close the tab before the analysis finishes, nothing about the track has left your machine.
The excerpt is sent, together with the written instructions describing the subgenre taxonomy, to Google’s Gemini model via the Netlify AI Gateway. The model listens to it and returns the verdict you see on screen. Google processes it under Google’s own terms.
The excerpt is not stored on our side. It exists in memory for the length of one request and is not written to the database or to file storage.
If an analysis succeeds, one row is written to a Postgres database hosted by Netlify, so your log survives a page refresh. That row holds:
Two things you might expect to be saved are not. Your free-text notes are sent to the model as a hint but are never stored — though the model’s written explanation is stored, and it may quote or refer to what you wrote. If you paste your own dropdown options, the list itself is not kept, but the single option matched to your track forms part of the saved verdict.
Rows are kept until you delete them. There is no automatic expiry, and no backup copy is made beyond whatever Netlify keeps to operate the database.
So that your log shows your tracks and nobody else’s, your browser generates a random identifier the first time you use the tool and stores it in localStorage under genre-lens.client-id. It is attached to the rows you create and is the key that lets you read and delete them.
It is not an account and not a tracking cookie. It is generated on your device, contains no information about you, is never combined with anything else, is never shared, and is not used to build a profile or to advertise. If you clear your browser’s site data it is forgotten, and any log entries you had not deleted become permanently unreachable.
There is nobody else. No third party receives your audio or your log.
Every entry in the log has an ✕ that removes it from the database immediately and permanently. To erase the lot and start over, use this:
This deletes every row belonging to this browser and then discards the id. It cannot be undone.
If what the tool does with your data changes, this page changes with it and the date at the top moves.
There is no contact form and no mailing list, because there is no mailbox collecting your details in the first place. Everything you might otherwise have to ask permission for — reading your log, deleting a single entry, deleting the lot — you can do yourself, here or in the log itself.