Releases: baijum/ukulele-companion
Releases · baijum/ukulele-companion
Release list
v9.13.0
What's New
New Features
- Song viewer now collapses details into a compact header, leaving more room for lyrics
- Key and capo fields are now shown and editable in the song editor and viewer
- Full-screen chord sheets display properly formatted music, not raw ChordPro markup
Improvements
- Backup and restore is more reliable — corrupt payloads are quarantined, settings survive restore, and melody data preserves durations and octaves across platforms
- Tuner on iOS now matches Android behaviour for hold confirmation, spoken feedback, and Precision Mode
- Metronome accent and mute taps take effect immediately while the metronome is running
- Auto-scroll now honours fractional speeds like 0.5x and 1.5x
- Song viewer toolbar reorganised — duplicate and delete moved to an overflow menu for a cleaner layout
- Practice routine timer now fills its full advertised duration
Bug Fixes
- Chord diagrams, fretboard, and Scale Explorer now correctly follow tuning and left-handed settings on iOS
- Editing a song no longer wipes the key, and preserves view count and practice time
- Melody recording on iOS now gates room noise before detection
- Fixed a crash on launch when achievement counts exceeded Int32 range
- Setlist reorder and song deletion now work correctly when a Songbook filter is active
- iOS Favourites playback and Progression Practice play correctly in the selected tuning
Accessibility
- Fretboard Note Map scrolls as one grid and labels each cell for TalkBack
- A single accessible capo stepper is shared between Chord Explorer and the song editor
v9.12.1
v9.12.0
What's New
New Features
- Chord diagrams now appear alongside lyrics in the Songbook viewer
- Choose how chords are displayed and colored in your chord sheets
- Section markers (Verse, Chorus, Bridge, etc.) are now highlighted in chord sheets
Improvements
- Tuner on iOS is now smoother and more accurate, with less needle jitter
- Haptic feedback when your string is in tune (Android and iOS)
- All animations now respect your device's reduce-motion setting
- Chord diagram strings are individually explorable with screen readers
- Metronome state logic is now shared across platforms for consistent behavior
Bug Fixes
- Fixed tuner showing stale readings after stopping capture
- Fixed Play Along sometimes stacking duplicate timers
- Fixed audio session issues that could cause crashes on iOS
- Fixed chord transposition incorrectly handling slash-chord bass notes
- Fixed backup/restore losing data or resetting settings in some cases
- Fixed Circle of Fifths tap zones not centered on key labels
v9.11.0
What's New
Added
- Songbook feature gaps: duplicate songs, adjustable font size, song sections, setlists, PDF export, batch operations, metronome integration, practice stats, and performance mode
- iOS songbook parity: shared ViewModel, custom strum patterns, chords above lyrics
- Android songbook parity: chord playback, paste import, TalkBack accessibility
- ChordPro practical syntax improvements and songbook parity plans
- Composition tools for songwriting workflow
- In-app review prompt on both Android and iOS
- Kover coverage for shared KMP module and Codecov integration for Android and iOS CI
- KMP shared module tests (500+ new test cases)
- Coverage reporting for Android instrumented tests
- App Store link and badge across project
- Google Play badge to landing page and README
- Codecov badge to README
Fixed
- iOS fretboard string order reversed to show A string on top
- Localized achievement titles from string resources on both platforms
- iOS stress test CI flakiness from simulator background assertion timeout
- PDF export bugs, accessibility improvements, and i18n fixes
- Store badge sizing and vertical alignment across viewports
- Screenshot title cropping on landing page
- White text on CTA panels overridden by teal heading rule
Changed
- Aligned presentation patterns with platform-native UX conventions
- Removed 'free forever', 'no ads', and 'ad-free' claims from settings tagline
- Unified app icons across platforms and updated docs logo
- Redesigned landing page and manual with distinctive visual style
- Replaced Android beta testing docs with iOS TestFlight invitation
- Replaced ASCII architecture diagram with colored SVG
- Moved 11 domain tests from app to shared commonTest for Kover coverage
Maintenance
- Bumped GitHub Actions to Node.js 24-compatible versions
- Reorganized App Store screenshots and recaptured
- Removed 21 obsolete documentation files and orphaned manual screenshots
v9.10.6
What's New
Fixes
- iOS microphone permission crash in tuner audio session lifecycle (#57)
- Enable JUnit Platform for Jazzer fuzz test discovery (#58)
- Auto-scroll in song viewer immediately stopping (#42)
- iOS auto-scroll speed ignored, resume resets position, timer stalls (#49)
- Harden ONNX Runtime download with retries and bump to 1.24.3 (#48)
- Stabilize Xcode Cloud iOS prebuild setup
- Various CI and build fixes (JDK, Gradle daemon, ONNX download mirrors)
Additions
- Jazzer fuzz testing suite and fix ChordDetector out-of-range crash (#56)
- Nightly and on-demand iOS stress test workflow (#54)
- XCUITest monkey test target for crash reproduction (#52)
- Claude Code GitHub Actions workflow (#51)
- Post-bugfix improvements: CI, tests, accessibility, rules, skills (#45)
Dependency Updates
- androidx.core:core-ktx 1.17.0 -> 1.18.0
- androidx.compose:compose-bom 2026.02.01 -> 2026.03.00
- io.kotest:kotest-property 6.1.4 -> 6.1.6
- androidx.activity:activity-compose 1.12.4 -> 1.13.0
- com.microsoft.onnxruntime:onnxruntime-android 1.24.2 -> 1.24.3
ONNX Runtime C 1.24.3 (vendored iOS xcframework)
Vendored ONNX Runtime C 1.24.3 for iOS
This release hosts the ONNX Runtime C iOS xcframework as a GitHub release asset for CI reliability. Xcode Cloud intermittently fails to resolve the upstream CDN hostnames.
Provenance
- Upstream: microsoft/onnxruntime v1.24.3
- Original URL:
https://download.onnxruntime.ai/pod-archive-onnxruntime-c-1.24.3.zip - Fallback URL:
https://onnxruntimepackages.z14.web.core.windows.net/pod-archive-onnxruntime-c-1.24.3.zip - SHA256:
b7eedc45932bac758ffd057cac0feb3f682269e47750b159e4c865145cbf0a8e - License: MIT
v9.10.5
What's New
- Fix: iOS crash on microphone permission request on iOS 26 — migrated from deprecated
AVAudioSession.requestRecordPermissiontoAVAudioApplication.requestRecordPermission()(iOS 17+) - Chore: Removed orphaned localization entry from Localizable.xcstrings
v9.10.4
What's New
- Fix: iOS crash on microphone permission request on iOS 26 — migrated from deprecated
AVAudioSession.requestRecordPermissiontoAVAudioApplication.requestRecordPermission()(iOS 17+) - Chore: Removed orphaned localization entry from Localizable.xcstrings
v9.10.2
What's New in v9.10.2
iOS App
- New: Complete iOS port with full feature parity — 47 SwiftUI views, 15 ViewModels, ONNX-based neural pitch detection, VoiceOver accessibility
- New: iPad landscape optimization with sidebar navigation
- New: Favorite and share icons in Chord Library voicing cards
- Fix: AchievementsView publishing state during SwiftUI view update
- Fix: Audio capture crash and tuner stability on real devices
- Fix: Chord diagram clipping dots for voicings beyond fret 5
- Fix: Scale overlay crash from KMP Set-to-Array force-cast
- Fix: SettingsView crash from @State mutation during view update
- iOS deployment target lowered to 16.0
- App display name updated to "Uke Companion"
Android
- New ukulele headstock app icon
Shared (KMP)
- Shared Kotlin Multiplatform module for cross-platform business logic
Infrastructure
- CodeRabbit integration for automated PR code reviews
- Unit tests for 7 iOS ViewModels
- Dependency updates: AGP 9.1.0, Kotest 6.1.4, Gradle 9.4.0, Compose BOM 2026.02.01
v1.0.4
What's New
- Fix: iOS Songbook feature parity with Android — closes 17 UX gaps including delete/discard confirmations, share menu, file import, strum pattern & label management from viewer, chip-based label editor, Date Added sort, capo hint, transpose reset, auto-scroll stop button, label filter logic fix, search/filter clear buttons, and untitled fallback