Your audio never leaves your computer.
Last updated: 2026-06-12
TempoTango is a Chrome extension that detects the BPM and musical key of audio playing in your active SoundCloud tab. This page explains exactly what data the extension touches, where it is stored, and the only situations in which any data leaves your device.
TL;DR. Your audio is analyzed entirely on your device and is never uploaded, stored, or transmitted anywhere. TempoTango saves a library of the tracks you analyze (title, artist, URL, BPM, key) into your browser's storage — if you have Chrome Sync turned on, Chrome syncs that library across your signed-in browsers through your own Google account; TempoTango never receives or can see that data. If you buy a license, your license key is sent to Lemon Squeezy (our payments/licensing provider) to activate and occasionally re-verify it — that is the only outbound network request the extension makes, and it contains no audio, no track data, and no browsing data. There are no analytics, no telemetry, no crash reporting, no advertising, and no tracking of any kind.
Data the extension can access
-
Tab audio. When you click "Listen" in the TempoTango popup, the extension
uses Chrome's
tabCaptureAPI to capture approximately 40 seconds of audio from your active SoundCloud tab (it analyzes the densest ~30-second window within that capture). The captured audio is held in browser RAM only for the duration of analysis. It is never written to disk, never persisted across browser sessions, and never transmitted off your device. The buffer is discarded as soon as analysis completes. -
Now-playing track details. To label saved analyses correctly, the
extension reads the title, artist, and canonical track URL shown in SoundCloud's player.
It does this by running a small script in the SoundCloud page (via the
scriptingpermission) to read those specific player elements, falling back to the tab's title and URL if the player isn't readable. It does not read, collect, or transmit any other page content. -
Active tab URL. The extension reads the URL of your active tab to verify
you are on
soundcloud.combefore attempting capture.
Data the extension does not access
- The extension does not read any other tabs, browsing history, bookmarks, cookies, saved passwords, autofill data, or other extensions' data.
- The extension does not request
<all_urls>host permissions; host access is limited tosoundcloud.comand its subdomains, plusapi.lemonsqueezy.comfor licensing. - The extension does not ask for microphone access, screen capture, geolocation, or any other sensitive permissions.
How analysis works
The captured audio is processed by a WebAssembly audio-analysis component (essentia.js) bundled inside the extension. All processing runs in the offscreen document (a hidden page inside the extension itself). Audio analysis makes no network requests.
Storage
TempoTango stores data only in your own browser, using Chrome's extension storage. It does not operate any server, account system, or database that receives your data.
-
Your analyzed-track library —
chrome.storage.sync(with automatic fallback tochrome.storage.localif the sync quota is reached). After each successful analysis, the extension automatically saves a record containing the track's title, artist, canonical SoundCloud URL, BPM, musical key and Camelot code, confidence levels, and the timestamps it was first and last analyzed. If you have Chrome Sync enabled, Chrome synchronizes this library across the browsers you are signed into, via your Google account. That synchronization is performed by Chrome/Google as part of your browser's sync feature; TempoTango itself never receives, transmits, or has access to the synced copy. -
License and free-use state —
chrome.storage.local. This stores your free-analysis counter and, after a purchase, the license key you entered, the activation "instance id" returned by Lemon Squeezy, and activation/validation timestamps. No buyer name, email, or payment details are stored by the extension. -
In-progress analysis state —
chrome.storage.session. While the browser is open, the extension remembers the current analysis status, the most recent result, and the active tab's URL and title, so closing and reopening the popup does not lose an in-flight analysis. Chrome clears session storage automatically when the browser is closed.
When data leaves your device
The extension makes network requests to exactly one external service, and only in
connection with licensing: Lemon Squeezy
(api.lemonsqueezy.com). When you activate a purchased license key, the
extension sends that license key and a non-identifying instance label to Lemon Squeezy's
License API to activate it. Thereafter, at most once per week, it sends the license key and
the returned instance id to re-verify the license is still valid. No audio, no track data,
no browsing activity, and no analytics are ever included in these requests.
Purchases themselves are processed by Lemon Squeezy as the merchant of record; any name, email, or payment information you provide during checkout is handled by Lemon Squeezy under their own privacy policy, not by TempoTango. The extension never sees your payment details.
Third parties
essentia.js (AGPL-3.0) is bundled as static files inside the extension and used for on-device audio analysis. It makes no network requests.
Lemon Squeezy handles payments and license-key activation/validation, as described above.
The extension does not use any analytics, crash reporting, advertising, or third-party telemetry services.
Your control
You can delete individual saved tracks from within the extension at any time. Uninstalling
the extension from chrome://extensions stops tabCapture and
removes all of the stored data described above from this device.
Your rights (GDPR / CCPA / similar)
TempoTango itself does not collect, sell, or share personal data, and operates no server that stores your data. The only personal data involved in using TempoTango is what you provide to Lemon Squeezy during checkout, which is governed by Lemon Squeezy's privacy policy. If you have questions or believe this is incorrect, please contact us using the details below.
Children
TempoTango is not directed at children under 13. We do not knowingly collect any data from any user, of any age.
Permissions justification
Required by the manifest for legitimate functionality:
tabCapture— read tab audio to analyze it. Used only when the user clicks Listen.offscreen— run the analysis in a hidden DOM context (Manifest V3 service workers cannot use Web Audio).activeTab— confirm the active tab is on SoundCloud.scripting— read the now-playing title, artist, and track URL from the SoundCloud player so saved analyses are labeled correctly.storage— persist your analyzed-track library, license/free-use state, and in-progress analysis state, as described in the Storage section above.- Host permissions
https://soundcloud.com/*andhttps://*.soundcloud.com/*— restrict the extension to SoundCloud and its subdomains. - Host permission
https://api.lemonsqueezy.com/*— activate and re-validate purchased license keys, as described above.
Changes
If this policy changes, the updated version will be posted on this page with a new "Last updated" date. Material changes (e.g., any new kind of network transmission or data collection) will be called out in the extension's release notes.
Contact
TempoTango is a personal project. For privacy questions, bug reports, or feedback, email [email protected].