- 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" |
||
|---|---|---|
| .. | ||
| API | ||
| Audio | ||
| Models | ||
| Storage | ||