Cookies and device storage
Hearhood keeps your creative work and your settings in your browser, on your device. This page lists what is stored, what it is for, and how to remove it. The rules about "cookies" cover every kind of browser storage, not only files called cookies, so everything is listed here.
Optional analytics and your choice
The creative tools do not need cookies. Google Analytics loads only after you choose Allow analytics in the optional analytics panel. Reject analytics is equally available. Analytics choices at the bottom of each page lets you change your mind. See the [Privacy notice](/legal/privacy-2026-10-24.html), section 6a, for the information Google receives and your rights.
- hearhood.analytics-consent.v1 (localStorage) stores only your allow or reject choice and its date, for up to 180 days. This remembers the privacy choice you requested and does not identify an account.
- After permission, Google Analytics uses _ga and _ga_* cookies for browser and session measurement, configured to expire within 180 days. They are not used by Hearhood for advertising. No Google Analytics script or request is loaded while you have not allowed it.
- Rejecting or withdrawing turns optional collection off and clears the Analytics cookies accessible on this site. Previous reports are not automatically deleted. The existing first-party anonymous usage switch remains separate.
What is stored, and why
The creative-tool storage listed below starts with "firstloop", the tool's internal name. The optional analytics choice and cookies above are separate.
- Your songs and settings (localStorage, keys starting with "firstloop."): your songs and their version history (firstloop.songs, firstloop.versions, firstloop.cur), the usage log the app keeps for its own milestones (firstloop.log, firstloop.usage, firstloop.skills, firstloop.unlocks, firstloop.challenges), your profile answers to the setup question (firstloop.profile), chosen workspace, theme and layout (firstloop.workspace, firstloop.wsstart, firstloop.theme, firstloop.showsends, firstloop.asst.collapsed, firstloop.studio.*), instrument and pad choices and MIDI mappings (firstloop.inst, firstloop.padq, firstloop.padmidi, firstloop.midimap, firstloop.midi.on, firstloop.djmap, firstloop.ctrl, firstloop.ctrldev, firstloop.ctrlwalk, firstloop.equip.*), DJ settings and the free-music list (firstloop.dj, firstloop.dj.fm, firstloop.coach), and when you last made a backup (firstloop.backupAt). Kept until you delete them or clear the site's data.
- Your invite code and AI choices (localStorage): firstloop.invite holds your invite code so you do not have to type it again; firstloop.ai remembers whether you switched the AI off; firstloop.asst.ack records that you have read the AI notice (it stores the terms version); firstloop.chat holds your conversation with the assistant for each song, so you can continue it later; firstloop.share records whether you switched the anonymous usage counts off (the counts are on unless you did; see the Privacy notice, section 6), and firstloop.usage the counts already sent. The code is sent to the Hearhood server with assistant messages and feedback; the conversation is sent with each new message so the assistant knows the context. The account code also authenticates account, sync, community and sharing requests. Supported project data can leave through sync or a song link, as described in the Privacy notice; conversation text is not included in song sync.
- Short courses (localStorage, firstloop.shortCourses.v1): completed steps, practice choices and lyric practice notes. These stay in this browser and are separate from account song sync. The published lesson catalogue needs a connection.
- Account sync (localStorage, firstloop.sync and firstloop.sync.deleted): last-copy metadata and deleted-song markers used to merge supported editable work across devices. firstloop.ref remembers an invite referral until registration.
- Installed app (service worker and Cache Storage): cached app pages and static resources help previously loaded tools open offline. Account, AI, community, song-link and course-service requests are not cached for offline use.
- Feedback (localStorage, firstloop.feedback): what you sent with the Feedback button, the replies, and anything waiting to be sent while the site could not be reached.
- Recordings and audio (IndexedDB database "firstloop-audio"): audio clips you record in Mix. Stays on this device.
- Studio recordings (IndexedDB database "firstloop-studio"): your voice and instrument recordings in the Studio, the Studio's own songs and lyrics, and a copy of the instrument sounds (about 24 MB) so a second visit needs no download. Recorded takes and cached sounds stay on this device; account sync can carry the editable Studio song without its recordings.
- DJ library (IndexedDB database "firstloop-dj"): the music files you add to the DJ area, their analysis (beat grid, key), cue points, playlists, free music you download from the Internet Archive, and rendered copies of your own songs for the decks. Music files stay on this device; account sync can carry cues and playlists without those files.
- Equipment photo (IndexedDB database "firstloop-gearphoto"): a photo of your controller if you add one for the equipment diagram. Stays on this device.
- Session values (sessionStorage): firstloop.eqtab, which Equipment tab was open; and hh.cleared, a marker set for one reload while "Clear this device" runs. Both are forgotten when the tab closes.
- Folder access handles: if you connect a folder of music files or a rekordbox export, the browser remembers that permission as part of the DJ database until you remove the folder or clear the site's data.
The creative-tool storage listed above supports features you use: saving your work, remembering your choices, and letting the assistant continue a conversation. It is not used for advertising or cross-site profiling. The local usage counters support the first-party aggregate measurement described in the Privacy notice.
Optional device notifications use a browser-managed push subscription after you choose to enable them and grant permission. The app keeps a registration marker for the account on this browser; the server stores its subscription endpoint until you turn it off or delete the account. The Privacy notice describes the push providers and the generic notification payload.
Resources the page loads from elsewhere
Opening the page can make your browser contact these hosts, which then see your network address:
- The Internet Archive (archive.org, United States) only when you open Free music, search or add a track in the DJ area: it receives your network address and your search words.
- jsDelivr (cdn.jsdelivr.net) and GitHub (raw.githubusercontent.com) only when the Studio fetches an instrument's sounds and they are not available on this site: they receive your network address. At present the sound files are not on this site, so the first use of a Studio instrument fetches them this way; the browser then keeps a copy on the device.
Before optional analytics consent, page loading contacts this site itself (the page, its typeface and the question whether the AI is available). After consent, it also contacts Google Analytics and Google Tag Manager hosts for the optional measurement script and events. No Google Tag Manager container or advertising tag is installed. Accounts, sync, community, Produce song links, course delivery, the AI assistant, Feedback and anonymous usage counts use the Hearhood server; with the counts on, the page also asks that server once whether it is there. The interest form on the For artists page (/artists/) sends what you typed to the same server when you press Send and sets no cookie and no other storage. This was checked by recording every request the page makes while opening each workspace (20 October 2026).
Removing stored work
- Songs: delete them in My songs. Recordings: delete clips in Mix or in the Studio. DJ tracks: remove them in the DJ library.
- Everything at once: My account has "Clear this device's Hearhood data", which removes every "firstloop" item from localStorage and the four databases named above, after a confirmation. It does not touch other websites. Export anything you want to keep first.
- In the browser: clearing this site's data in the browser's settings removes the same things, and also any remembered folder permissions.
Deleting your server account does not clear this storage on any device, and clearing this storage does not delete your server account: they are two separate actions. If you need help with either, write to info@hearhood.com.