Genre Lens

Privacy

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 30 September 2026

How We Process Your Audio

Genre Lens is designed to protect your unreleased music. When you select a track for analysis, the following process happens entirely within your device’s browser:

  • Local Decoding: Your audio file is decoded locally on your machine. The original, full-resolution file (MP3, WAV, FLAC, etc.) is never uploaded to our servers.
  • Excerpt Extraction: The browser extracts three 18-second windows from the track, chosen as its loudest stretches to capture the core arrangement.
  • Downmixing & Compression: These windows are stitched together and compressed into a low-fidelity 16 kHz mono .wav file (roughly 2 MB).
  • Loudness Measurement: The level readings shown with a verdict — average RMS level, the loudest three-second stretch and the dynamic range — are calculated by your browser from the decoded track. They are never sent to us or to the AI provider, and they are not saved.

The windows are chosen by loudness: silence at either end is set aside first, your browser measures the level of every second of what remains, and it picks the loudest 18-second stretch, then the loudest ones at least 30 seconds clear of those already chosen (closer together on a short track), and plays them in their original order; a track of 54 seconds or less is taken as one continuous excerpt instead. 16 kHz mono is 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.

Third-Party AI Analysis

To identify the category and genre of your music, the compressed 54-second excerpt is securely transmitted via our API gateway to our artificial intelligence provider (Google Gemini).

  • Ephemeral Processing: The audio excerpt is analyzed in real-time to generate the genre verdict and is immediately discarded by the API.
  • No AI Training: Your audio excerpts are strictly used for your immediate analysis request. They are not stored in any database, and they are not used to train, fine-tune, or improve our AI models or those of our third-party providers.

The gateway in question is the Netlify AI Gateway, and the excerpt travels through it alongside the written instructions describing the genre taxonomy. Google processes it under Google’s own terms. On our side the excerpt is never stored: it exists in memory for the length of one request and is not written to the database or to file storage.

Data Storage & Accounts

Genre Lens requires no user accounts, no email sign-ups, and no tracking cookies.

  • Your Analysis History: When an analysis is complete, the resulting text verdict (category, genre, and reasoning) is saved to a secure database using an anonymous, randomly generated ID (X-Client-Id) specific to your current browser.
  • Your Control: Because this log is tied strictly to your browser rather than a user account, no one else can view your history. You can permanently erase your entire analysis history at any time using the deletion tools provided in the app.
What is saved, and where

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:

  • The title — whatever you typed, or the filename if you left it blank.
  • The category and genre chosen.
  • The length of the source track.
  • The full written verdict: the observations, the ranked secondary and tertiary picks and the cautions shown on screen.
  • The random browser id described below, and the date and time.

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.

One random id, kept in your browser

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 sent to the server in a request header rather than in the web address. That is a small thing with a real effect: addresses are written to server and proxy logs, kept in your browser history, and survive being pasted into a message to somebody else, and the key to your log has no business travelling that way.

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.

A daily limit, and what counting it involves

Each analysis sends audio to a paid model, so the tool allows thirty tracks per person per day. It is free to use and has no adverts and no subscription, which means there has to be a ceiling somewhere or a single script could exhaust the budget for everybody. Thirty resets at midnight UTC. The genre reference does not count against it and stays open either way.

Counting that limit is the one place the tool touches your connection. When a track is submitted, your IP address — or, on an IPv6 connection, only its network half, which is what identifies one household or phone — is combined with a fixed secret and run through a one-way hash; the first half of the result is used as the name of a counter holding a single number, for one day only. The address itself is never written down, and the counter records only how many analyses that name has run — not which tracks, not when, not what came back. Counters for previous days are deleted. This is still information derived from your connection, which is why it is described here rather than left out.

The address is used rather than the browser id above because clearing browser storage takes one click, and a limit that can be reset that easily is not a limit. It is a blunt instrument: mobile networks and offices put many people behind one address, so a count is shared by everyone on it, which is part of why the allowance is set well above what one person is likely to need. If no address is available, the browser id is used for counting instead. The number of tracks left, shown on the scanner, is read from that same counter each time the page loads and after every attempt; it is never estimated in your browser.

Your intellectual property stays yours

You keep every right in the audio you analyse. The tool processes only what is technically required to produce your result: your browser trims the file, a short excerpt is analysed, and the excerpt is not retained. Using this tool grants no licence or ownership of any kind to us or to any third party.

Your intellectual property is not stored, shared, sold, or used for any purpose beyond generating your result. The small mono excerpt sent to the model is analysed in-memory, never persisted, and is not kept anywhere.

What the site does not do
  • No accounts, no sign-up, no password, no email address collected.
  • No cookies — the random id above is the only thing written to your browser.
  • No analytics, no tracking pixels, no advertising or marketing scripts, no fingerprinting.
  • Nothing is sold, rented, or shared with anyone for advertising, ever.
  • Your music is never used for training, model improvement, or any commercial purpose.
Companies involved in running this
  • Netlify hosts the site, runs the server-side code and provides the database. As host it may record ordinary request logs, which typically include IP addresses, in order to operate and secure the service.
  • Google receives the audio excerpt and the instructions, through the Netlify AI Gateway, and performs the analysis.

There is nobody else. No third party receives your audio or your log.

Deleting things

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.

Changes to this page

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.