NavidromeApp/iOS/Data
Dallas Groot c6451b440b Audio Tap FFT:
- MTAudioProcessingTap with lock-free ring buffer + pre-allocated vDSP FFT
- Tap installs on readyToPlay (fixes 'no audio track' on live streams)
- Shared tap serves FFT + Shazam simultaneously (no more tap conflict)
- Ring buffer reset on removeTap (prevents stale FFT frames)
- Simulation runs as placeholder until stream connects
- All 6 paths verified: start, station change, goLive, seekBack, bg/fg, radio→music

Bug fixes:
- playerItem tracking in radioGoLive/radioSeekBack (was orphaned)
- Combine sinks: .receive(on: .main) on all 4 notification handlers
- ShazamRecognizer stopAll: audio session now actually restores after mic fallback
- processTapBuffer/convertAndMatch methods restored (were dropped in refactor)

Lyrics:
- Bottom toolbar on overlay: Search, Timing (±0.1s/±0.5s inline), Edit
- LyricsManager.globalOffset applied to syncToTime + wordProgress
- openLyricsEditor notification wired to NowPlayingView

UI:
- Server selection button hidden when Dynamic Island active
- Debug: Capture Audio Tap (5s WAV) with share sheet in Visualizer Settings"
2026-04-14 19:45:05 -07:00
..
AudioPreFetcher.swift bug fixes and improvements 2026-04-12 16:16:32 -07:00
AudioTapProcessor.swift Audio Tap FFT: 2026-04-14 19:45:05 -07:00
BackupManager.swift Live lyrics system — full implementation 2026-04-13 09:01:30 -07:00
OptimisticActionQueue.swift bug fixes 2026-04-11 15:09:06 -07:00
PendingOperationsQueue.swift Widget glassmorphism redesign 2026-04-12 19:57:20 -07:00
PlayQueueSyncManager.swift Add edit history, discover, queue sync, share links 2026-04-14 11:35:52 -07:00
SyncEngine.swift quick fix 2026-04-12 13:21:20 -07:00
WidgetBridge.swift Seek bar glitch — The time observer was reporting from the outgoing player (near 100%) for the first half, then jumping to the incoming player (near 0%) at 50%. Now it reports from the incoming player as soon as crossfade begins. The user hears the new song fading in — the seek bar matches. 2026-04-14 00:27:10 -07:00