|
| 1 | +--- |
| 2 | +title: "DMP '25 Week 04 Update by Anvita Prasad" |
| 3 | +excerpt: "Completion of target pitch mode and implementation of manual cent adjustments pie menu" |
| 4 | +category: "DEVELOPER NEWS" |
| 5 | +date: "2025-06-29" |
| 6 | +slug: "2025-06-29-DMP-25-AnvitaPrasad-week04" |
| 7 | +author: "@/constants/MarkdownFiles/authors/anvita-prasad.md" |
| 8 | +tags: "dmp25,sugarlabs,week04,AnvitaPrasad" |
| 9 | +image: "assets/Images/c4gt_DMP.png" |
| 10 | +--- |
| 11 | + |
| 12 | +<!-- markdownlint-disable --> |
| 13 | + |
| 14 | +# Week 04 Progress Report by Anvita Prasad |
| 15 | + |
| 16 | +**Project:** [Music Blocks - Improve Synth and Sample Features](https://github.com/sugarlabs/musicblocks/issues/4539) |
| 17 | +**Mentors:** [Walter Bender](https://github.com/walterbender) |
| 18 | +**Assisting Mentors:** [Devin Ulibarri](https://github.com/pikurasa) |
| 19 | +**Reporting Period:** 2025-06-23 - 2025-06-29 |
| 20 | + |
| 21 | +--- |
| 22 | + |
| 23 | +## Goals for This Week |
| 24 | +- Complete and refine target pitch mode implementation |
| 25 | +- Implement manual cent adjustment functionality and interface |
| 26 | +- Research icons for chromatic and target pitch mode |
| 27 | +- Conduct comprehensive testing with various audio sources and instruments |
| 28 | +- Research different tuning systems |
| 29 | + |
| 30 | +--- |
| 31 | + |
| 32 | +## This Week's Achievements |
| 33 | + |
| 34 | +1. **Dual-Mode Tuner Implementation** |
| 35 | + - Completed target pitch mode implementation with enhanced functionality |
| 36 | + - Integrated target pitch selector with pie menu interface |
| 37 | + - Implemented logic for precise pitch matching and deviation calculation |
| 38 | + - Added comprehensive display for octave, semitone, and cent deviations |
| 39 | + - Gathered and incorporated feedback for interface refinements |
| 40 | + |
| 41 | + |
| 42 | + |
| 43 | +2. **Manual Cents Adjustment Development** |
| 44 | + - Designed and implemented an intuitive pie menu for cent adjustments with: |
| 45 | + - Center Area (Controls): |
| 46 | + * Grey circular area with three buttons |
| 47 | + * "+" button for positive values |
| 48 | + * "-" button for negative values |
| 49 | + * "×" button for menu exit |
| 50 | + - Inner Wheel (Fine Adjustments): Numbers 1-10 |
| 51 | + - Middle Wheel (Medium Adjustments): Numbers 20-50 |
| 52 | + - Outer Wheel (Large Adjustments): Numbers 60-100 |
| 53 | + |
| 54 | +3. **Testing Progress** |
| 55 | + - Conducted initial testing with various audio sources |
| 56 | + - Identified areas for improvement in pitch detection |
| 57 | + - Created a test suite for tuner accuracy verification |
| 58 | + |
| 59 | +--- |
| 60 | + |
| 61 | +## Challenges & How I Overcame Them |
| 62 | + |
| 63 | +- **Challenge 1: Event Bubbling in Pie Menu** |
| 64 | + The pie menu's nested event listeners for note, accidental, and octave selection were triggering multiple unintended actions due to incorrect event propagation. |
| 65 | + **Solution 1:** |
| 66 | + Added event.stopPropagation() at the appropriate event handlers and restructured the event listener hierarchy to ensure events were captured at the correct level only. |
| 67 | + |
| 68 | +- **Challenge 2: State Management Complexity** |
| 69 | + Managing three interdependent states (note, accidental, octave) in the tuner widget led to synchronization issues and undefined states during updates. |
| 70 | + **Solution 2:** |
| 71 | + Implemented a centralized state update method that handles all three components atomically and validates the complete state before triggering any dependent calculations. |
| 72 | + |
| 73 | +--- |
| 74 | + |
| 75 | +## Key Learnings |
| 76 | + |
| 77 | +- Gained deep understanding of Music Blocks' pitch pie menu interface and its implementation patterns |
| 78 | +- Learned about various tuning systems including Equal Temperament, Pythagorean, and Just Intonation |
| 79 | + |
| 80 | +--- |
| 81 | + |
| 82 | +## Next Week's Roadmap |
| 83 | + |
| 84 | +- Implement fully functional tuner with comprehensive features |
| 85 | +- Complete and refine manual cent adjustment functionality |
| 86 | +- Conduct extensive testing with various audio sources and instruments |
| 87 | +- Consider implementation of different tuning systems |
| 88 | +- Make fine refinements to tuner interface and functionality |
| 89 | +- Write blog post for Week 05 |
| 90 | + |
| 91 | +--- |
| 92 | + |
| 93 | +## Resources & References |
| 94 | + |
| 95 | +- [Web Audio API Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API) |
| 96 | +- [Different Tuning Systems](https://www.musiccrashcourses.com/lessons/tuning_systems.html) |
| 97 | +- [Tuning Systems and Equal Temperament](https://www.earmaster.com/music-theory-online/ch06/chapter-6-2.html) |
| 98 | + |
| 99 | +--- |
| 100 | + |
| 101 | +## Acknowledgments |
| 102 | + |
| 103 | +Thank you to my mentors, the Sugar Labs community, and fellow contributors for ongoing support and valuable feedback on the new features. |
| 104 | + |
| 105 | +--- |
0 commit comments