Changelog

A running log of what's new in Tracklyst.

A/B Comparator & marketing site refresh

A/B Audio Comparator at /ab.html — free in-browser tool; load two audio files and switch between them at the exact same playhead position with zero delay (Web Audio API, no WaveSurfer latency). Inspired by audioAB by Rémi Gallego, MIT License.
Keyboard shortcuts in A/B: Space play/pause, A or ← switch to A, B or → switch to B, click waveform to seek
Provider-select modal on the pricing page Free tier — "Get started free" now opens a Dropbox / OneDrive choice inline without bouncing back to the homepage
"Who it's for" content moved to the pricing page — three use-case sections (mixing engineers, mastering engineers, labels & A&R) now live below the tier grid; the standalone page is retired
Clicking the active A or B side now toggles to the other side — more intuitive than a no-op
Drag a new audio file onto an existing A/B waveform to replace it
Unified sticky nav across all marketing pages (pricing, about, changelog, A/B) — matches homepage frosted-glass style; Login removed; Get Started routes to pricing
Listener view playing-track highlight now uses your chosen accent color instead of hardcoded green
Theme now persists on marketing pages (pricing, about, changelog, A/B) when logged out — reads your saved preference from the browser

Theme persistence

"Set as default" button in the Appearance panel saves your color theme to your account — loads automatically on any device you sign in from
Per-playlist theme override — set a different color for a specific playlist and it remembers that choice when you reopen it, while everything else keeps your default
Dashboard always returns to your saved default theme when you navigate back from a playlist

Loudness normalization

Per-track LUFS input — enter integrated loudness values for each track directly in the playlist creator
Per-playlist normalization target — set a target LUFS for the whole playlist (default −14 LUFS)
Attenuation-only normalization — louder tracks are brought down to the target level; quieter tracks stay at unity so nothing gets artificially boosted
Listener LUFS override — listeners can enter their own measured value per track, which takes precedence over the uploader's value
Norm toggle in the listener player — turn loudness normalization on or off at any time during playback
Lock normalization — engineer can bake normalization in and prevent listeners from disabling it

iOS gain control & audio engine reliability

Volume fader now works on iOS — gain control rerouted through the Web Audio API, which iOS supports (direct volume control via the audio element is read-only on iOS)
Volume fader visible on touch devices — previously hidden on mobile
Web Audio graph foundation — AudioContext → GainNode → AnalyserNode pipeline enables loudness normalization, real-time metering, and future analysis features
Playback stall after 2–3 tracks — switching tracks now properly aborts the previous track's network request; old audio elements were holding all available HTTP connections open, causing subsequent loads to queue for minutes
Error messages from a failed track (e.g. MP4 on Chrome) no longer persist on subsequent tracks — stale event listeners on replaced audio elements were re-firing errors against the wrong track
Stereo WAV files incorrectly showing a "multi-channel WAV requires Safari" warning after a prior track error — resolved as part of the stale listener fix above

Dashboard improvements & bug fixes

Playlists Shared With You — your engineer dashboard now shows playlists others have shared with your email, in one place
Deleting a playlist immediately kills listener access — old share links return a 404 rather than continuing to work
"Copy Order & Comments" button moved into the comments panel alongside Email Feedback
Email notifications now working in production — feedback and portal magic links deliver correctly
Dropbox sign-in no longer requires two attempts — dashboard loads correctly on first login
Pagination for large playlists — viewer loads 50 tracks at a time with a "Show more" button; metadata (duration, sample rate) only fetches for visible tracks; dashboard playlist grid also paginates at 50

Persistent feedback, resolved status & pricing

Feedback follows the project — send new links, swap tracks, or rename a playlist and all listener feedback stays attached automatically
Resolved/unresolved feedback — mark listener notes as addressed directly from the feedback dashboard
Rename playlists — change the name of any project from your dashboard without losing history
Pricing page — Free, Artist, Pro, and Enterprise tiers with monthly/yearly toggle
Listener header added to viewer and portal screens — subtle Tracklyst branding with a link to create your own
Pricing added to homepage nav

Site polish & Darklight Audio branding

"Part of the Darklight Audio suite" section on the About page — context on the broader product ecosystem
Darklight Audio CTA at the bottom of the Pricing page
Consistent footer across all public pages and listener-facing screens
Canonical tags and correct heading hierarchy added to all public pages

Dashboard, email backup & playlist management

Playlist dashboard — see all your playlists in one place after sign-in, with view and comment counts
Email feedback backup — send all listener comments for a playlist to your inbox with one click
Delete playlist — two-step confirm with option to email a backup first before permanently removing
Support link added to header nav on all signed-in screens
Creator screen collapsible sections — Branding and Instructions collapse when opening an existing playlist

Homepage, About page & analytics

Homepage with two clear paths — create a playlist (sign in with Dropbox or OneDrive) or find your listening history
About page with founder bios and the story behind Tracklyst
Confirmation email sent to listener after they submit feedback
Timestamps shown on feedback — date and time visible on every comment in the dashboard and notification emails
Portal "Updated" badge now correctly marks playlists with new content since your last visit
Renamed to Tracklyst across all pages

Listener portal updates

"Updated" badge on portal playlists — see at a glance which playlists have changed since you last visited

Portal improvements & performance

Magic link auto-sent to listener after they submit feedback — no need to request it manually
Resend link button with cooldown on the portal request screen
MP4/Atmos files now show a clear "requires Safari or Edge" message on Chrome and Firefox
Waveform peak data cached — faster load on repeat visits

Listener portal V1 & version stacking fixes

Listener portal — enter your email to find all playlists shared with you, via magic link
Version stacking seek position — playback now resumes at the correct position when switching versions

Version stacking, waveform comments & feedback dashboard

Version stacking — stack multiple versions of a track and let listeners compare them side by side
Waveform comment markers — listener comments appear as pins directly on the waveform
Clickable timecoded comments — jump to the exact moment a listener was referencing
Feedback dashboard in the creator — view all listener comments without leaving the app
Delete individual feedback comments from the dashboard
Duplicate playlist name warning before generating a new share link

Password protection, short links & folder browser

Password protection — optionally require a password before listeners can access a playlist
Short share links — clean, minimal URLs for sharing
Folder browser with audio file preview — browse your cloud folders and preview tracks before publishing
Lock track order — prevent listeners from reordering tracks in the player