This week I focused on expanding system scale, improving usability, and stabilizing both software and hardware through extensive integration work. The primary efforts included expanding the system to support 36 keys, co-designing a physical casing for hardware wiring, and implementing a large set of software refinements aimed at making the system more user-friendly and robust.
Software and Hardware Integration
- Expanded the system from partial coverage to 36-key integration, including testing and debugging across the full range.
Worked on software debugging related to real-time hardware interaction as - key coverage increased.
- Co-designed a 3D-printed casing to organize wiring and improve physical stability during testing and demonstrations.
- Tested the expanded system extensively to ensure stable playback, LED behavior, and key detection.
UI and Playback System Improvements
- Renewed the user interface to improve clarity and usability:
- Consolidated playback controls into clear mode-specific buttons (Playback, No-Beat, Beat).
- Removed developer-oriented terms, internal states, and debug data from the user-facing UI.
- Replaced abstract piano visuals with more realistic piano key representations.
- Enabled clicking individual bars in the piano roll to trigger sound playback.
- Implemented session saving for uploaded sheet music.
- Added an interactive tutorial to guide new users.
Musical Logic and Bug Fixes
- Implemented key range shifting to ensure music fits within the supported three-octave range.
- Fixed score evaluation logic to exclude notes outside the supported range.
Improved metronome behavior: - Added countdown-based metronome start.
- Adjusted metronome beats based on musical rhythm (e.g., waltz).
- Fixed multiple bugs, including:
- Playback slider not resetting when uploading a new sheet.
- Duplicate piano roll creation when pressing the space bar mid-playback.
- Visual inconsistencies in piano key illustrations.
Schedule
I am currently on schedule. While this week involved a high volume of debugging and refinement, these efforts significantly improved system stability, usability, and scalability, and align well with the planned transition toward final validation and presentation.
Deliverables for Next Week
- Continue validation testing across the full 36-key range.
- Refine hardware setup and casing based on testing feedback.
- Conduct focused usability testing of the updated UI and tutorial.
- Prepare the system for final demonstrations and evaluations.
