Releases: mxggle/ModernABLoopPlayer
Releases ยท mxggle/ModernABLoopPlayer
v0.9.2
What's Changed
Added
- Persistent player: Media player survives page navigation, preserving playback state across routes
- Virtualized transcript list for smooth rendering of long transcripts
Changed
- Transcript controls: Action buttons merged into header; individual export buttons replaced with a dropdown menu
- Storage cleanup: Transcript records deleted atomically alongside media files using a shared helper;
clearAllMediaFilesnow clears both stores in one transaction; orphaned transcript records pruned during storage cleanup
Fixed
- AI provider and model selections now initialize correctly from localStorage on first render
- Removed obsolete v3 migration block that incorrectly wiped
mediaTranscriptson store rehydration
Full Changelog: v0.9.1...v0.9.2
v0.9.1
What's New
Local AI services (offline mode)
- Ollama โ use a locally running Ollama instance as the AI provider for chat and language explanation, no cloud API key required
- Local Whisper โ connect to a local Whisper server for fully offline audio transcription
Settings overhaul
- Replaced the settings drawer with a unified
/settingspage - Added A/B loop controls directly to the player control bar
- Added
?tab=aideep-link to open the AI settings tab directly
AI explanation UX
- Inline explanation panel replaces the full-screen drawer
- Tighter prompts produce shorter, language-learning-focused output
Transcript & playback controls
- Streamlined transcript action buttons and range-aware transcription entry points
- Transcript empty-state copy now references the active provider
- Translation updates across English, Japanese, and Chinese
AI model catalog
- Refreshed OpenAI, Gemini, and Grok model catalogs with updated pricing metadata
- Updated default model selections to current provider defaults
- Migrated legacy model IDs
Playlist removal
- Removed playlist/queue controls from desktop and mobile UIs
- Removed queue state and media-end auto-advance from the player store
Bug fixes
- Fixed TypeScript build errors caused by unused variables in
TranscriptPanel
v0.9.0
Added
- Playback controls:
- Added a dedicated "play from start" control in the player UI
- Added safer pending-play handling so media can begin automatically once the element is ready
- Transcription workflow:
- Added loop-range transcription so the active A-B selection can be sent directly for transcription
- Added an explicit full-range transcription action and cancel controls for long-running jobs
- Waveform processing:
- Added cached waveform analysis utilities for background generation and progressive loading
- Added large-file waveform loading feedback with analysis progress states
Changed
- AI settings overhaul:
- Rebuilt the AI settings page into clearer defaults, providers, and transcription sections
- Improved provider selection, model selection, API key handling, and connection testing flows
- Expanded translations for the new AI and transcription settings UI
- Shadowing workflow simplification:
- Simplified shadowing playback and recording to a single-track model
- Refined recorder state handling, cleanup behavior, and waveform rendering for shadowing sessions
- Waveform experience:
- Reworked waveform loading and rendering to better handle very large local audio files
- Improved waveform caching, zoom behavior, and loading transitions for stored media
- Player and media state management:
- Improved playback state synchronization between the media element and the global store
- Reduced noisy current-time updates and tightened media cleanup during unmounts
- Transcript actions:
- Refined transcript action buttons and range-aware transcription entry points
Fixed
- Playback reliability:
- Fixed cases where play requests could be dropped before media was ready
- Fixed store playback state drifting out of sync with the actual media element
- Waveform stability:
- Fixed large audio waveform loading regressions and reduced failures during background analysis
- Improved recovery and status handling when waveform analysis cannot complete normally
- Shadowing and storage cleanup:
- Improved cleanup around shadowing recordings and related persisted media state
- Fixed several edge cases in local media storage and waveform cache updates