Module 1 tool fixes and content adjacency
Created by: jedmund
Summary
- Fix IntervalComparison target/answer bug where pairs with target matching intervalB played the wrong interval and marked the wrong answer
- Add context field to IntervalClassifier config and display it in the view
- Add multi-note timing to IntervalClassifier (0.25s per note when >2 notes)
- Add WH (3 half steps) support to ScaleBuilder for harmonic minor patterns
- Fix back-to-back modals in lesson 1-2 (inline quiz + exercise ref) by inserting a bridge text block
- Fix double callout on lesson 1-4 keyboard diagram by converting the inversion callout to a reading page
Test plan
-
Build and run on iPad Pro simulator -
Walk through lesson 1-2, verify bridge page appears between quiz and exercise -
Walk through lesson 1-4, verify inversion content renders as its own reading page -
Test IntervalComparison in lessons 1-4 and 1-5 with pairs where target is Minor 6th, Minor 7th, etc. -
Test IntervalClassifier context display in lesson 1-5 exercise -
Verify IntervalTrainer progressive unlocking works with m6/M6/m7/M7/aug5/dim5