Version BETA 0.1.10
Latest
Released: November 28, 2025
🌍 Your Time, Your Format! Dates and times across ModusPractica now automatically follow the locale of the device you're using. Whether you're in Belgium, the United States, or anywhere else, every schedule, history entry, and log will match your familiar regional format.
🔧 Improvements
- Locale-Aware Scheduling: Practice sessions, calendar entries, statistics summaries, and piece details now render using
toLocaleDateString(undefined, ...) and toLocaleTimeString(undefined, ...), letting the browser apply the user's regional preferences automatically.
- Consistent Historical Data: Existing profile data is preserved in ISO format but displayed using the local convention, ensuring previously logged practice sessions immediately reflect the correct formatting on any machine.
- Dashboard Polish: Profile overview cards and draft recovery prompts now mirror the same locale-aware formatting, eliminating confusion when comparing timestamps across devices.
🐛 Bug Fixes
- Regional Mismatch: Resolved the hardcoded Belgian date/time formatting that previously caused MM/DD vs DD/MM confusion for North American users and other regions.
- Documentation Note: Updated release highlights and popup messaging so teams are immediately aware of the locale-aware rollout.
Version BETA 0.1.9
Released: November 27, 2025
🎯 More Control, Better Data! You can now manually adjust target repetitions and have the system respect your choice for the entire session. Plus, incomplete sessions (when a passage is too difficult) can now be saved and tracked separately for more accurate statistics.
✨ New Features
- Manual Target Override Respect: When you manually adjust the target repetitions using the [+ / −] buttons during a session, the Intensity Module now respects your decision for the remainder of that practice session. The system won't automatically increase the target again until you start a new session. This gives you full control when fatigue sets in or time runs out.
- Incomplete Session Handling: Sessions where you struggle with a difficult passage (0 correct repetitions after 2+ minutes of practice) can now be saved as "Incomplete" sessions. These receive a fixed 1-day review interval without stage penalties, allowing you to track effort even when success is elusive.
- Session Outcome Tracking: Practice sessions are now categorized as
TargetReached, PartialProgress, or Incomplete for more accurate statistics and better insight into your learning patterns.
🔧 Improvements
- Manual Documentation Update: Section 4.2 "Understanding Target Repetitions & Overlearning" has been expanded to clearly explain the new manual override behavior, including when auto-adjustments resume and why this design supports both scientific rigor and user autonomy.
- Counter Tooltip Update: The Correct Repetitions counter now includes a helpful tooltip explaining that it's OK if the counter stays at 0 for very difficult passages.
🐛 Bug Fixes
- Intensity Module Override Prevention: Fixed an issue where the Intensity Module would automatically increase target repetitions immediately after a user manually lowered them (e.g., 6→3 would become 6→3→7 after the first repetition). The system now honors manual adjustments throughout the entire session.
- Validation Block for Zero-Rep Sessions: Removed the hard validation block that prevented saving sessions with 0 correct repetitions, even after extended practice time. Sessions with genuine effort (2+ minutes) can now be saved regardless of success rate.
Version BETA 0.1.8
Released: November 26, 2025
🛡️ Data Integrity & Precision! We've added protection against accidental short sessions polluting your stats and fixed a timing anomaly in the memory stability algorithm to ensure your retention predictions are more accurate than ever.
✨ New Features
- Short Session Protection: Sessions shorter than 30 seconds now trigger a confirmation dialog. You can choose to save them (for quick checks) or discard them, preventing accidental "clicks" from skewing your practice statistics.
- Enhanced Diagnostics: Comprehensive logging has been added for profile management, data import/export, and adaptive learning decisions, allowing for better support and troubleshooting.
🔧 Improvements
- Algorithm Accuracy Fix: Fixed a timing anomaly where the memory stability calculation could sometimes use the "current" time instead of the "last review" time, leading to overly optimistic retention predictions. Predictions are now strictly based on the actual interval since the last practice.
- Release Notes Popup: The "What's New" popup now correctly tracks the specific version you've seen, ensuring you only see it once per update.
Version BETA 0.1.7
Released: November 25, 2025
🧠 Less Noise, More Focus! We've simplified the practice interface by removing the confusing "Learning Phase" badge and "range" displays. The system now handles target adjustments intelligently in the background—automatically increasing volume for mastery consolidation and resetting to a clean slate for new stages—so you can focus entirely on the music.
✨ New Features
- Smart Target Adjustment: The system now automatically increases your Target Repetitions when you perform flawlessly (Mastery/Overlearning). This ensures you get the scientifically required volume for long-term consolidation without having to calculate it yourself.
- Stage Reset: When you are promoted to a new stage (e.g., Stage 1 → Stage 2), your target repetitions automatically reset to the baseline of 6. This gives you a fresh start for every new level of difficulty.
🔧 Improvements
- Simplified Interface: Removed the "Learning Phase" badge from the live practice view. The average success ratio in your trend charts provides a much more stable and useful indicator of progress than a jumping live meter.
- Clearer Targets: Removed the confusing "range" display (e.g., "6-8") from the target counter. You now see a single, clear goal.
- Simplified Warnings: The manual override warning is now cleaner: "manual override (recommended X)". It informs you of the scientific optimum while respecting your autonomy to stop when needed.
📖 Documentation
- Manual Update: Added clear explanations for "Why does the Target increase when I play well?" and "Starting a New Stage", focusing on the scientific principles of consolidation vs. acquisition.
Version BETA 0.1.6
Latest
Released: November 24, 2025
🎯 Enhanced Practice Feedback! The Learning Progress card now features a more intuitive "Failure Rate" display for TDS and a smart warning system for manual target overrides, ensuring you always know when you're deviating from the optimal retention strategy.
✨ New Features
- Smart Manual Override Warning: When manually adjusting Target Repetitions away from the scientific recommendation, a bold red warning now appears: "manual override (recommended X • range Y-Z)". This keeps you informed about the optimal path while respecting your autonomy.
- Real-time Target Sync: The Learning Progress card (OLQ bar) now instantly updates when you change your target repetitions, providing immediate visual feedback on your new goal.
🔧 Improvements
- TDS Calculation Update: Technical Difficulty Score (TDS) now displays Failure Rate instead of Success Rate. A full bar (100%) now correctly indicates high difficulty (all failures), while an empty bar (0%) indicates mastery. This aligns better with the concept of "Difficulty".
- Immediate Feedback: The TDS bar now updates immediately upon entering the first failed attempt, even before any correct repetitions are logged, giving instant feedback on session difficulty.
Version BETA 0.1.5
Released: November 23, 2025
📚 Intensity Module Documentation Complete! All documentation now reflects the new FixedGoal + 50% overlearning algorithm. Scientific paper, implementation guides, examples, and manual sections fully synchronized with Dr. Gebrian's research framework.
📖 Documentation Updates
- Scientific Paper: Updated moduspractica-science.html with FixedGoal baselines (6-10) and overlearning formula (ceil(initialFailedAttempts × 0.5))
- README: Revised metric tables showing baseline + overlearning components per learning phase
- Implementation Guide: Updated code examples and TDS tables with new OLQ calculation logic
- Quickstart Guide: Replaced range descriptions with explicit FixedGoal + overlearning term explanations
- Examples Document: All 5 worked examples recalculated with initial failure counts, overlearning bonuses, and revised durations
- Console Debug Output: Example debug logs now show FixedGoal baseline and overlearning bonus fields
- Research Validation Table: Updated to show FixedGoal baselines per phase with overlearning term formula
🔬 Algorithm Clarity
- Pre-Success vs Post-Success: All docs now emphasize that only failures BEFORE first success contribute to overlearning term
- Baseline Stability: FixedGoals (6/7/8/9/10) provide consistent targets across learning phases
- Overlearning Transparency: Formula ceil(initialFailedAttempts × 0.5) explicitly documented in all contexts
- Duration Recalculation: All example scenarios updated with phase-specific time-per-CR values
✨ Manual Enhancements
- Practice Session Interface Guide: New comprehensive walkthrough explaining left/right panel layout and data entry workflow
- Counter Explanations: Detailed descriptions of Failed Attempts, Target Reps, Correct Reps, and automatic Streak Resets
- Learning Progress Window: Step-by-step guide to interpreting TDS bar, phase badge, and OLQ progress display
- Real-World Example: Chopin Nocturne practice session walkthrough with 10 logged attempts showing exact button clicks
🎯 Consistency Achieved
- Code implementation (IntensityModule.js) ✅
- Unit tests (IntensityModule.test.js) ✅
- Scientific paper (moduspractica-science.html) ✅
- Developer documentation (README, Implementation, Quickstart, Examples) ✅
- User manual (moduspractica-manual.html) ✅
- All references to old "range" system removed ✅
Version BETA 0.1.4
Released: November 22, 2025
📊 Enhanced Practice Visualization! Practice Charts now display both success ratio trends and start friction evolution, providing deeper insight into preparation effort versus execution quality. Updated manual section 4A explains the dual-line system.
✨ New Features
- Start Friction Tracking: New purple dashed line on Practice Charts visualizes attempts before first success (0 attempts = instant success, ≥5 attempts = 100% friction)
- Start Friction Indicators: Summary bar and session cards now display color-coded friction chips (Low/Moderate/High) based on preparation difficulty
- Dual-Line Legend: New left-column legend clearly explains both success ratio (blue solid) and start friction (purple dashed) trend lines
- Manual Section 4A: Comprehensive Practice Charts documentation added to manual explaining interpretation of dual metrics
🔧 Improvements
- Session Detail Cards: Practice session cards now show "Attempts Before Success" count alongside existing metrics
- Chart Data Consistency: Start friction uses same normalization logic across all views (summary, sessions, chart)
- Visual Clarity: Removed redundant canvas legend for friction line; sidebar legend provides clearer context
🗑️ Removed
- Success Rate Badge: Removed distracting live success percentage display from practice session page to improve focus during practice
📚 Documentation
- Manual Updated: Section 4A now explains how success ratio (planner metric) and start friction (coaching metric) work together
- Screenshot Added: Practice Charts manual section includes annotated example showing both trend lines
Version BETA 0.1.3
Released: November 21, 2025
🔧 Critical Stability Update! Major bug fixes improve data integrity and prevent session save failures. Enhanced error handling ensures your practice data is always protected, even during code updates or browser reloads.
🐛 Critical Bug Fixes
- Session Save Crash Fixed: Resolved "clampedInterval.toFixed is not a function" error that prevented sessions from being saved
- Data Integrity Protection: Added comprehensive validation to saveData() function to detect and prevent corrupt data scenarios
- Error Recovery: Complete try-catch wrapper around save operations with user-friendly error messages showing practice metrics
- Race Condition Fix: saveData() now always loads fresh data from localStorage before merging changes to prevent data loss during concurrent operations
- Cancel Safety: Enhanced cancel function with error handling to ensure clean exit even if draft cleanup fails
🔧 UI/UX Improvements
- Calendar Button Swap: "Free Practice" button now positioned on the left, "Recalculate Schedule" on the right for better workflow
- Lifecycle Terminology: "Inactive" status renamed to "Archive" for clearer semantics (archived chunks are not scheduled)
- Tooltip Clarity: "Repetition Streak Resets" tooltip now clearly states it counts memory failures, not successful repetitions
- Simplified Controls: Removed redundant reset button (↺) from "Failed Attempts" counter - only +/- needed for manual adjustments
📚 Developer Notes
- API Fix: EbbinghausConstants.clampIntervalToScientificBounds() return value now correctly destructured ({ clampedIntervalDays, reason })
- Validation Layer: All save operations now validate currentProfile, currentPiece, and currentSection existence before proceeding
- Enhanced Logging: Added detailed console logging for save operations and error states for easier debugging
Version BETA 0.1.2
Released: November 21, 2025
🔬 Scientific Accuracy Update! Critical bug fix ensures correct implementation of Ebbinghaus memory theory by properly separating execution errors from memory retrieval failures. This update significantly improves scheduling accuracy for difficult but well-remembered sections.
🐛 Critical Bug Fix
- Metric Separation Fix: Removed incorrect automatic coupling between Failed Attempts and Total Failures counters
- Scientific Accuracy: Failed Attempts now correctly measures execution errors (motor skills) without affecting memory failure tracking
- Scheduling Impact: Intervals are no longer over-penalized for difficult sections with many execution errors but good memory retention
- Ebbinghaus Compliance: Implementation now matches the scientific principle that "retention strength increases with successful recalls, penalized by retrieval failures, independent of acquisition errors" (Ebbinghaus, 1885; Kornell & Bjork, 2008)
🔧 UI/UX Improvements
- Simplified Metrics UI: Removed redundant "Total Failures" manual counter
- Automatic Counter: "Repetition Streak Resets" is now read-only and increments automatically when you reset your practice streak
- Enhanced Tooltips: Added professional balloon-style tooltips explaining each metric's purpose and impact on scheduling
- Clearer Semantics: UI now clearly distinguishes between manual counters (Failed Attempts, Correct Repetitions) and automatic counters (Repetition Streak Resets)
📚 Technical Details
- Before: Each Failed Attempt incorrectly incremented both failedAttempts AND totalFailures (double-counting)
- After: Failed Attempts only tracks execution errors; Repetition Streak Resets (used as totalFailures in Ebbinghaus calculations) only increments on memory retrieval breakdowns
- Research Basis: Aligns with SuperMemo SM-2+ algorithms that separate difficulty (errors during practice) from stability (memory retrieval success)
- Impact: Difficult sections that you successfully memorize will now get appropriately longer intervals instead of being stuck in short review cycles
📖 Documentation
- Tooltip Explanations: Each counter now has detailed tooltip explaining what it measures and how it affects scheduling
- Failed Attempts: "Number of mistakes made while practicing. Used to calculate %Correct and difficulty rating. Does not directly affect scheduling intervals."
- Correct Repetitions: "Number of successful repetitions in your current streak. Used to calculate success rate and determine if you reached your target."
- Repetition Streak Resets: "Automatic counter: increments when you reset your streak due to memory failure. Each reset directly affects your next review interval."
Version BETA 0.1.1
Released: November 20, 2025
🎵 Tempo Tracking Feature! Practice sessions now include optional tempo tracking with intelligent validation and progressive suggestions. Track your tempo progress alongside practice quality metrics.
✨ New Features
- Tempo Tracking: Optional BPM (beats per minute) tracking in practice sessions
- Target & Achieved Tempo: Set long-term tempo goals and record actual achieved tempo per session
- Auto-Fill System: Achieved tempo automatically pre-filled with last session's value for consistency
- Progressive Suggestions: Smart +5 BPM recommendations based on previous session (💡 Try: X BPM)
- Tempo Overlay Graph: Optional orange dashed line in Success Ratio Trend Chart showing tempo progress as percentage of target
- Last Achieved Display: Shows most recent successful tempo from practice history
🔧 Improvements
- Smart Validation: Real-time warnings for unusual tempo values or large jumps between sessions
- Typo Detection: Alerts when achieved tempo exceeds target by more than 10 BPM
- Jump Detection: Warns about tempo changes >30 BPM from previous session (both increases and decreases)
- Range Validation: Ensures tempo values stay within realistic 30-300 BPM range
- Draft Persistence: Tempo values saved in session drafts for crash recovery
- Layout Optimization: Moved "Additional Info" section to left column for better visual balance
🎨 User Experience
- Non-Invasive Design: All tempo tracking is optional - empty fields = not tracked (value: 0)
- Visual Feedback: Green suggestion boxes and orange warning boxes with clear icons
- Consistent Graphs: Auto-fill prevents gaps in tempo progression charts
- No Algorithm Impact: Tempo tracking is purely informational - doesn't affect Ebbinghaus interval calculations
- Clear Labeling: Section titled "Tempo (BPM) (optional)" to reduce confusion
🔬 Technical Details
- Data Storage:
targetTempo and achievedTempo added to PracticeHistory model
- BarSection Model:
targetTempo property stores section-level tempo goals
- Validation Function:
validateTempoInput() with multi-stage checking logic
- Chart Enhancement:
SuccessRatioTrendChart.drawTempoOverlay() method for tempo visualization
- Backward Compatible: Existing sessions without tempo data (0 values) work seamlessly
Version BETA 0.1.0
Released: November 20, 2025
🎉 First Public BETA Release! ModusPractica is now available as a web-based adaptive practice scheduler. This initial version implements the complete Ebbinghaus-based scheduling engine with adaptive learning capabilities.
✨ Core Features
- Adaptive Learning System: Three-layer intelligence combining Ebbinghaus forgetting curves, SM-17+ memory stability tracking, and Bayesian calibration
- Profile Management: Create multiple musician profiles with isolated data, demographics, and learning preferences
- Practice Sessions: Smart daily agendas showing prioritized pieces based on retention science
- Memory Stability Tracking: Dynamic difficulty adjustment and S-value evolution per section
- Personalized Calibration: System learns your unique retention patterns through Bayesian updating
- Local-First Storage: All data stored in browser localStorage with
mp_ prefix - zero server transmission
- Export/Import: Single-profile and full-backup data portability using File System Access API
- Directory Memory: Remembers last save location via IndexedDB for seamless workflow
🔬 Technical Implementation
- EbbinghausEngine.js: Core retention formulas and baseline calculations
- AdaptiveTauManager.js: Unified adaptive system coordinator (Fase 1)
- MemoryStabilityManager.js: SM-17+ stability tracking with S-value persistence (Fase 2)
- PersonalizedMemoryCalibration.js: Bayesian learning of individual forgetting rates (Fase 3)
- StorageQuotaManager.js: Prevents data loss by checking localStorage capacity
- Debug Console Commands:
showCalibrationReport(), showMemoryStats(sectionId), exportAdaptiveData()
📚 Documentation
- Official manual with structured sections and media placeholders
- Privacy policy documentation (local-only storage)
- Comprehensive inline code comments for open-source transparency
- Quick start guide and onboarding checklist
🎯 Design Philosophy
- Scientific Foundation: Based on Ebbinghaus forgetting curves and modern spaced repetition research
- Privacy-First: No user accounts, no cloud storage, no data tracking - everything stays on your device
- Open Algorithm: Client-side scheduling logic is fully transparent and auditable
- Musician-Centric: Designed for real-world practice workflows, not academic theory
- Capacity: Tracks approximately 300 pieces - sufficient for professional repertoire management
⚠️ Known Limitations
- Web version does not include playlist functionality (desktop only)
- Requires modern browser with localStorage and File System Access API support
- Clearing browser data will erase all profiles (manual backups essential)
- No automatic cloud sync - manual export/import required for cross-device usage
- Beta status: interface and features subject to change based on user feedback
Pre-Beta Development
Development Phase: June - November 2025
🔨 Development Milestones
- Algorithm Simplification: Transitioned to pure Ebbinghaus mathematics with Bayesian adaptive parameters (no machine learning)
- Three-Layer Adaptive System: Integrated AdaptiveTauManager, MemoryStabilityManager, and PersonalizedMemoryCalibration
- Stage-Aware MASTERED Growth: Gradual interval expansion (stages 3→4→5+) based on motor skill research
- Retention Targets: Differential targets for Difficult (85%), Default (80%), Easy (70%), Mastered (65%)
- Tau Clamping: τ ∈ [1, 180] days; Intervals: [1, 365] days AND t ≤ 5×τ
- Cross-Platform Architecture: Dual implementation strategy (C# WPF desktop + JavaScript web)
- Data Isolation: Profile-based localStorage with
mp_ prefix convention
📊 Testing & Validation
- Unit tests for core Ebbinghaus calculations
- Memory stability edge case validation
- Calibration convergence testing across difficulty levels
- localStorage quota management verification
- File System Access API compatibility testing