Skip to content

Releases: ClaytonWas/Tuned-In

3.0

04 Dec 13:07
361dac4

Choose a tag to compare

Major UX Overhaul

Complete visual redesign with modern glassmorphism aesthetic, restructured UI architecture, and significant improvements to the recommendation engine.

UI/UX

  • Dynamic Island Header — Floating pill-shaped header with settings that expand inline via smooth slide animation
  • Glassmorphism Design — Backdrop blur, semi-transparent surfaces, and layered depth throughout
  • Now Playing Card — Redesigned music display with large album artwork, scrolling track/artist names (marquee effect), and inline metadata (genres, BPM)
  • History Cards — Compact cards with album art thumbnails, source page links, and expandable "More Info" sections containing Spotify embeds
  • Theme System — Light and Dark themes with CSS custom properties for consistent token-based styling
  • Dual-Range Popularity Slider — Set both minimum and maximum popularity bounds instead of just a threshold
  • Hidden Scrollbar — Cleaner look with optional toggle to show scrollbar
  • Custom Checkboxes — Rounded toggle switches with smooth animations

Performance

  • Singleton Summarizer — AI model instantiated once per session and reused across all requests, eliminating repeated initialization overhead
  • Lazy-Loaded Embeds — Spotify iframes only load when "More Info" is expanded
  • GPU-Accelerated Animations — All transitions use transform and opacity for 60fps performance

Recommendation Engine

  • Expanded Genre Mapping — Comprehensive mapping table covering 50+ genre synonyms and mood-to-genre conversions
  • Multi-Strategy Search — Four-tier fallback: genre-filtered → multi-genre text → playlist mining → simple search
  • Artist Diversity — Track selection pools are diversified by artist before random selection
  • Improved Scoring — Tracks scored by genre relevance (85%), popularity (7.5%), and tempo match (7.5% bonus)
  • Range-Based Filtering — Popularity bounds expand iteratively (±10) if no matches found

Technical

  • Process Cards Module — Extracted to processCards.js with minimal status indicators and auto-dismiss on completion
  • Content Extraction Script — Moved Readability injection to dedicated extract-content.js
  • CSS Architecture — Complete rewrite using CSS custom properties (--color-*, --radius-*, --spacing-*)
  • Settings in Header — Removed footer; settings now expand from Dynamic Island

Bug Fixes

  • Fixed scrollbar rendering white in dark mode
  • Fixed settings panel clipping content at bottom of viewport
  • Fixed checkbox visual state not updating on toggle
  • Fixed source link text illegible in light mode
  • Fixed album art hover state showing redundant play button overlay

2.4

27 Nov 03:52

Choose a tag to compare

2.4

Release Notes - Version 2.4

🎵 Major Improvements to Music Recommendation Engine

🎨 Artist Diversity Enhancement

  • Problem Solved: Recommendations were showing too many tracks from the same artists (e.g., multiple Olivia Dean tracks)
  • Solution: New artist diversity algorithm ensures recommendations come from 20+ different artists
  • How it works:
    • Groups tracks by artist before selection
    • Takes top track from each unique artist (up to 20 artists)
    • Fills pool with remaining top-scored tracks (up to 30 total)
    • Randomly selects from this diverse pool
  • Result: More variety in recommendations, including classic artists like Aretha Franklin, Marvin Gaye, and other soul/R&B legends

Enhanced Multi-Genre Search

  • Multi-genre support: Now searches using 1, 2, or 3 genres simultaneously for more accurate matching
  • Random genre selection: Varied search strategies for diverse results:
    • 40% chance: Uses all available genre combinations
    • 30% chance: Uses 2 strategies (single + multi-genre)
    • 30% chance: Uses 1 strategy (randomly selected)
  • Prioritized search order: Multi-genre searches are tried first when multiple genres are detected
  • Shuffled strategies: Selected strategies are randomly shuffled for additional variety

Improved Scoring Algorithm

  • New scoring weights:
    • 85%: Genre relevance (increased from 65% - now the primary factor)
    • 7.5%: Popularity (reduced from 30% - quality filter only)
    • 7.5%: Tempo relevance (bonus only, increased from 5%)
  • Better prioritizes tracks that match detected genres over pure popularity
  • Genre matching checks track names and artist names for genre keywords

Tempo/BPM Integration

  • Tempo keyword mapping: BPM ranges now map to relevant keywords:
    • < 70 BPM: slow, ballad, ambient, calm, peaceful
    • 70-90 BPM: chill, mellow, downtempo, laid-back
    • 90-110 BPM: moderate, steady, groovy
    • 110-130 BPM: upbeat, lively, energetic
    • 130-150 BPM: fast, energetic, intense
    • 150+ BPM: fast, intense, aggressive, high-energy
  • Sparse tempo usage: Tempo keywords used intermittently in searches to avoid over-reliance
  • Tempo scoring: Small bonus (7.5%) for tracks with tempo-related terms in names (no penalty if missing)
  • BPM number detection: Bonus for tracks with actual BPM numbers in track names (e.g., "120 BPM")

API Compatibility Updates

  • Removed deprecated APIs:
    • Spotify Recommendations API (deprecated in late 2024)
    • Spotify Audio Features API (deprecated)
  • Improved error handling: Better fallback strategies when APIs are unavailable
  • Search-based approach: Now relies exclusively on Spotify's Search API with genre filters for more reliable results
  • Better error messages: More informative logging when Spotify API calls fail

Better Genre Mapping

  • Expanded genre support: Better mapping of mood-based genres:
    • romanticr-n-b
    • aggressivemetal
    • lo-fichill
  • Valid genre validation: Only uses Spotify's valid genre seeds for search filters
  • Fallback handling: Safe defaults when no valid genres are detected

🐛 Bug Fixes

  • Fixed search stopping early when first strategy found 50 tracks (now tries all strategies)
  • Fixed "chill chill" duplicate tempo keyword issue in search queries
  • Improved handling of genre combinations in search queries
  • Better error messages when Spotify API calls fail
  • Fixed popularity threshold fallback logic

🔧 Technical Changes

  • Refactored search strategy system for better maintainability
  • Added tempo keyword generation based on BPM ranges
  • Improved track scoring with genre keyword matching
  • Enhanced logging for debugging search strategies
  • Added artist diversity algorithm to all search functions (primary, fallback, playlist)
  • Improved track deduplication across multiple search strategies

📊 Performance Improvements

  • More efficient search strategy execution
  • Better track pool management (up to 30 tracks from 20+ artists)
  • Reduced redundant API calls

📝 Notes

  • The extension now works entirely with Spotify's Search API (no deprecated endpoints)
  • Genre matching is now the primary factor in track selection (85% weight)
  • Tempo is used as a bonus factor only, since tempo keywords in track names are inconsistent
  • Artist diversity ensures you won't see the same artist repeatedly in recommendations
  • Popularity threshold still provides quality filtering, but is no longer the dominant factor

2.1

24 Nov 23:18

Choose a tag to compare

2.1

Minor Update

Fixing the incorrect manifest.json to have the correct version and a renewed Chrome Origin Trials token for the Writer API

2.0

16 Nov 22:38

Choose a tag to compare

2.0

2.0 Release

  • Settings
  • Improved User Interface

1.0

31 Oct 06:22

Choose a tag to compare

1.0
major

Added all propcolor styles.