Simon Lee’s Status Report for April 25

This week I focused on finalizing and stabilizing the Scan Layer and overall software pipeline in preparation for the demo. As I began testing more complex sheet music inputs, especially larger files and higher-resolution PDFs, I encountered issues where the system would produce unreliable or blank outputs. My main goal this week was to resolve these issues and ensure consistent behavior across a wider range of inputs.

Pipeline Refinement for Complex Inputs

While testing more complex sheet music, I found that certain inputs caused failures in the OMR stage. In particular, large or high-resolution files sometimes exceeded what the OMR engine could handle, and lower-quality inputs occasionally failed to produce usable results.

To address this, I restructured parts of the Scan Layer pipeline to better balance input quality and processing reliability. I introduced normalization steps for both image and PDF inputs before they are passed into the OMR stage, ensuring that inputs fall within a more consistent and OMR-friendly range. This included resizing inputs to appropriate resolutions and standardizing preprocessing behavior across different file types.

I also improved how the system handles cases where the OMR output is incorrect but not completely missing. In some cases, notes were misinterpreted in unrealistic pitch ranges, which caused incorrect playback. To mitigate this, I added a correction step that adjusts clearly invalid note ranges back into a realistic piano range. This ensures that even imperfect OMR outputs remain usable for downstream playback.

These changes significantly improved the consistency of both image and PDF processing and reduced cases where the pipeline produced no output.

Improved Robustness and User Feedback

In addition to backend improvements, I added better user feedback during the scan process. The system now previews uploaded images and PDFs before processing, allowing users to confirm that the correct file was selected. This helps prevent user error and improves overall usability.

I also ensured that failures are more clearly handled, so that if the pipeline encounters an issue, it does not silently fail but instead provides more visible feedback.

Verification and Stability

After these updates, I reran the verification suite to ensure the pipeline remained stable. The tests passed successfully, confirming that the changes did not introduce regressions and that the system continues to meet the required correctness and performance criteria.

Testing across a wider range of inputs also gave more confidence that the system behaves reliably under more realistic conditions, not just ideal cases.

Demo Preparation

For demo preparation, I tested the full pipeline multiple times using a variety of inputs to ensure consistent behavior. I identified a set of reliable demo cases and verified that they produce correct outputs and smooth playback.

I also reviewed the full system flow and ensured I am prepared to explain how the Scan Layer integrates with the rest of the pipeline, as well as the key design decisions and trade-offs.

Schedule

The project is on schedule and ready for the demo. The system is now more robust, handles a wider range of inputs, and has been verified against key requirements.

Deliverables for Demo

For the demo, the system will show the full pipeline from sheet music input to LED guidance and playback. I will focus on demonstrating system reliability, correctness of note generation, and responsiveness, while also being prepared to discuss the challenges encountered and how they were resolved.

Team Status Report for April 25

Project Risks and Mitigation

As the system scales from partial to wider keyboard coverage, a key risk is increased complexity in both hardware wiring and software mapping. Expanding to 36 keys introduces more points of failure, including incorrect key-to-LED mappings, inconsistent physical placement, and greater sensitivity to configuration errors. This risk is being mitigated by introducing a configurable key-to-strip mapping system, allowing the software to adapt to arbitrary LED strip placement rather than assuming a fixed layout.

Another risk is usability degradation as more features are added. As the system matured, earlier developer-oriented UI elements and controls became confusing or overwhelming for end users. This risk is being actively addressed through a UI redesign that removes developer-only information, consolidates controls, and replaces abstract visual elements with more intuitive representations (e.g., piano keys instead of generic bars).

A further risk lies in musical correctness and user trust. Features such as metronome behavior, rhythm handling (e.g., waltz timing), and score evaluation must align with musical expectations. Incorrect rhythm or inclusion of out-of-range notes could confuse users. This is being mitigated by refining rhythm-aware metronome logic and explicitly filtering notes outside the supported three-octave range.

On the hardware side, physical durability and wiring organization pose a risk as the system becomes more complex. To address this, the team co-designed a 3D-printed casing to safely house wiring and improve reliability during repeated setup and demonstrations.

Design Changes

This week included several significant design refinements focused on scalability, usability, and system polish.

The system was expanded to support 36 keys, along with software support for shifting note ranges so that music fits within the available three-octave span. A flexible key-to-LED-strip mapping mechanism was added, allowing LED strips to be attached in arbitrary positions and configured through software.

The user interface was substantially redesigned to improve clarity and usability. Playback controls were consolidated into clear mode-specific buttons (Playback, No-Beat, Beat), replacing earlier toggles and developer-oriented states. Preparation and internal-state indicators were removed, developer-only data was hidden behind a development mode, and the piano roll and keyboard visuals were updated to resemble actual piano keys. Users can now click directly on piano roll bars to trigger sound, improving interactivity and learnability.

Several functional improvements and bug fixes were also completed, including session saving for uploaded sheets, a tutorial system for first-time users, metronome improvements (countdown start and rhythm-aware beats), playback slider reset fixes, visual polish on piano key illustrations, and fixes for issues such as duplicate piano roll creation and incorrect score evaluation.

Schedule Update

The project remains on schedule. While this week involved a high volume of refinements and fixes, these changes represent planned convergence work as the system transitions from integration toward final usability and validation. No major schedule adjustments are required.

Validation Plan

Validation this week focused on confirming that recent expansions and refinements work cohesively as a system. The team tested the full 36-key setup with physical hardware, verified that configurable key mappings behave correctly, and ensured that note shifting produces musically sensible output within the supported range.

UI validation included testing all playback modes, verifying correct metronome behavior across different rhythms, confirming that session saving and reloading behaves correctly, and ensuring that interactive elements (piano roll clicking, playback slider, mode buttons) work consistently.

Hardware validation included checking that the new casing supports stable wiring and that expanded key coverage remains reliable during extended playback and testing sessions.

Demonstrated Progress

This week marked a major step toward a polished, user-ready system. LumiKey now supports a substantially expanded key range, a cleaner and more intuitive user interface, flexible hardware configuration, and improved musical correctness. The addition of a 3D-printed casing further demonstrates readiness for real-world use and repeated demonstrations.

Overall, the project has moved beyond core functionality into refinement, scalability, and usability, positioning LumiKey well for final validation and presentation as a cohesive guided piano learning system.

Unit and System Testing

At the unit level, we carried out targeted tests on individual subsystems to verify correctness and performance:

Scan pipeline tests: Compared generated note events against labeled reference outputs to verify full event correctness and pitch-level accuracy.
MusicXML validation tests: Ensured generated outputs were structurally valid and could be parsed reliably after cleanup.
UI responsiveness tests: Verified timing using the application refresh interval (100 ms) and visualizer scheduler (50 ms), confirming compliance with the ≤200 ms requirement.
Pipeline consistency tests: Repeated runs on the same inputs to confirm deterministic and stable outputs.

At the system level, we conducted end-to-end tests to evaluate the integrated system:

End-to-end pipeline testing: Verified the full flow from sheet music input through scan, OMR, event generation, and playback produced correct and usable outputs.
Expanded keyboard testing (36 keys): Confirmed correct key-to-LED mapping and reliable behavior across the full range.
UI interaction testing: Tested playback modes, tempo adjustments, and user interactions to ensure consistent and responsive behavior.
Hardware integration testing: Verified stable FSR sensing, LED actuation, and communication during continuous operation.

Findings and Design Changes

Analysis of test results led to several key findings and corresponding design improvements:

Scan reliability issues: Complex or high-resolution inputs caused failures or inconsistent outputs. This led to restructuring the preprocessing pipeline to normalize and resize inputs before OMR.
Incorrect pitch ranges: OMR occasionally produced unrealistic note octaves. A correction step was added to constrain notes to a valid piano range.
Scalability challenges (36 keys): Fixed mappings did not generalize to larger setups. A configurable key-to-LED mapping system was introduced.
UI usability issues: Developer-oriented controls reduced clarity for users. The interface was redesigned with simplified controls and more intuitive visuals.
Hardware noise and wiring complexity: Increased sensor count introduced instability. Sensor strips were moved onto a PCB and a protective casing was added to improve reliability.

Chris Oh’s Status Report for April 25

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.

Gene Chang’s Status Report for April 25

This week I focused on refining the physical design and improving hardware reliability, with the goal of preparing the system for a clean and stable demo-ready build.

Housing Design and 3D Modeling

A major focus this week was designing the enclosure for the LumiKey system:

  • Created a 3D model of the housing to contain the ESP32, wiring, LED chain, and FSR circuitry
  • Iterated on dimensions to ensure proper alignment with piano keys and internal component spacing
  • Considered accessibility for wiring, maintenance, and future modifications

This step is important for transitioning from an exposed prototype to a more polished and portable system.

Hardware Debugging and Signal Stability

I worked on identifying and resolving reliability issues in the hardware:

  • Discovered that loose “hair-like” wires and exposed connections were causing intermittent LED failures and unstable behavior
  • Re-soldered and reinforced connections to eliminate unintended contact between power, ground, and data lines
  • Improved insulation and organization to reduce noise and prevent future short circuits

These fixes significantly improved overall system stability, especially during movement and handling.

FSR Calibration and Threshold Tuning

Another key area this week was refining how the FSR sensors behave when integrated with the piano:

  • Adjusted threshold values to account for how FSR strips respond when placed under real piano keys
  • Observed differences between free-space testing and actual mounted conditions
  • Tuned press and release thresholds to reduce false positives and improve responsiveness

This ensures that the system accurately detects user input in realistic playing conditions.

Material Selection for FSR Interface

I also experimented with different materials placed on top of the FSR strips:

  • Tested materials such as foam, cardboard, and thin rigid paper layers
    Evaluated based on force distribution, sensitivity, and consistency of readings
  • Selected a thin cardboard-like material as it provided the best balance between responsiveness and stability

This layer plays a critical role in translating key presses into reliable sensor readings.

Next Steps
– Finalize and fabricate the enclosure design
– Integrate all components into the housing for full system assembly
– Continue long-duration testing for hardware reliability
– Validate system performance during continuous piano interaction

Team Status Report for April 18

Project Risks and Mitigation

As the system moves into deeper hardware integration, a primary risk is instability arising from real-time interaction between software playback logic and physical hardware. While individual software and hardware components function correctly in isolation, integration can expose timing mismatches, communication errors, or inconsistent behavior during live playback. This risk is being addressed through extensive debugging and repeated end-to-end testing using the fully integrated 13-key hardware setup.

Another key risk is inaccurate or inconsistent hardware response during real-world use, particularly related to LED triggering and key press detection thresholds. Variability in sensor readings or environmental factors could lead to incorrect guidance or missed inputs. This is being mitigated by testing the system on an actual keyboard and tuning activation thresholds based on observed behavior, rather than relying solely on simulated or theoretical values.

A further risk is that new software features introduced during integration—such as additional playback sound options and enhanced playback controls—could introduce unintended side effects or regressions. To manage this risk, each new feature is tested alongside hardware playback to ensure it does not interfere with timing, visualization, or LED output.

Design Changes

This week did not introduce major architectural changes, but several implementation-level refinements were made to support full system integration and testing. Software logic was adjusted to better handle real-time hardware communication and improve robustness during playback.

In addition, new user-facing software features were added, including support for multiple playback sound options and a fully functional sliding playback bar. These changes improve usability and user control while preserving the existing event-driven playback architecture.

The overall design continues to emphasize modularity, allowing hardware integration issues to be debugged without impacting the core conversion or visualization pipelines.

Schedule Update

The project remains on schedule. Full integration of 13 keys represents a significant milestone, and the team is now focused on stabilizing the system through debugging and validation. Progress aligns with the planned transition from integration into broader system validation.

Validation Plan

Validation this week focused on early system-level testing enabled by full software–hardware integration. The team conducted repeated end-to-end tests to ensure that software-generated musical events correctly drive LED output and playback on the physical keyboard.

Testing included verifying key activation thresholds, observing LED behavior during real playback, and confirming that timing remains consistent across different playback scenarios. These tests helped identify integration issues that were not visible in software-only testing and guided subsequent fixes.

Additional validation work confirmed that new playback features—such as sound selection and the sliding playback bar—function correctly during live hardware playback.

Demonstrated Progress

This week marked a major step forward in system maturity, with successful integration and testing of 13 hardware keys connected to the full software pipeline. The system was tested on an actual keyboard, demonstrating that LumiKey can operate under real-world conditions rather than controlled demo setups.

Through extensive debugging and testing, the team improved system stability and usability while adding new playback features. This progress positions the project well for continued validation and final demonstrations, with a functioning end-to-end system that reflects real user interaction.

Chris Oh’s Status Report for April 18

This week I focused on stabilizing the software–hardware integration and validating the system through extensive real-world testing. With full integration of 13 keys completed, most of the work centered on debugging integration issues, testing the system on an actual keyboard, and making software improvements to enhance playback and usability.

Software and Hardware Integration Debugging

  • Debugged software issues related to hardware integration following full integration of 13 keys.
  • Identified and resolved errors related to event transmission, timing behavior, and key activation.
  • Refined software logic to improve robustness during real-time playback.
  • Conducted repeated integration tests to ensure stable communication between the software stack and hardware components.

Physical Keyboard Testing

  • Tested the system on an actual keyboard to validate real-world behavior.
  • Tuned and verified key activation thresholds to ensure accurate and reliable LED guidance.
  • Performed extensive end-to-end testing to confirm that playback, visualization, and hardware output remain synchronized during execution.
  • Used real keyboard testing to uncover edge cases not visible in software-only testing.

Software Feature Improvements

  • Added support for multiple playback sound options, allowing users to switch between different playback modes.
  • Implemented a fully functional sliding video-style playback bar to improve user interaction and playback control.
  • Made additional usability-focused software refinements based on testing observations.

New Tools, Knowledge, and Learning Strategies

As the project progressed into full software–hardware integration and real-world testing, it became necessary to learn additional tools and system-level debugging techniques. In particular, I gained hands-on experience debugging real-time interactions between software playback logic and physical hardware, including timing-sensitive LED control and key activation thresholds on an actual keyboard. This required a deeper understanding of how software assumptions translate (or fail to translate) into physical behavior.

I also learned more about diagnosing integration failures across language and system boundaries, especially when tracking down intermittent errors caused by data formatting, timing mismatches, or hardware constraints. Supporting new playback features, such as multiple sound options and a sliding playback bar, further required learning UI-state synchronization techniques and refining event-driven playback logic.

To acquire this knowledge, I primarily relied on informal learning strategies. These included reading documentation and source code, consulting online forum discussions and issue threads related to similar hardware–software integration problems, watching short technical videos for targeted concepts, and using iterative experimentation through testing and debugging. Repeated hands-on testing—especially on the physical keyboard—was a key learning strategy, as it exposed issues that were not apparent in isolated software tests and helped reinforce practical understanding of system behavior.

Schedule

I am currently on schedule. Full 13-key integration and successful real-world testing represent a major milestone, and the system is becoming increasingly stable through continued debugging and refinement.

Deliverables for Next Week

  • Continue debugging remaining edge cases in software–hardware integration.
  • Expand testing to additional musical inputs and tempos.
  • Refine UI behavior and playback controls based on user interaction.
  • Begin preparing the system for broader demonstrations and evaluations.

Gene Chang’s Status Report for April 18

This week I focused on scaling and stabilizing the hardware subsystem for the LumiKey project, with the goal of transitioning from a small prototype to a full single-octave implementation that is reliable enough for validation and demo use.

Learning New Tools and Knowledge Acquisition

Since I worked primarily on the hardware components of the project, I had to learn how to interpret and apply technical documentation effectively. This included understanding the behavior of components such as FSR strips and LED drivers, as well as implementation details like bit shifting in the Adafruit LED libraries. To navigate this, I relied heavily on a combination of official documentation, online forums such as Reddit, and LLM based tools. These resources were especially helpful in quickly identifying relevant sections of large documentation sets, allowing me to focus on the specific details I needed rather than spending excessive time searching.

In addition to online resources, I adopted hands-on and collaborative learning strategies. I initially lacked confidence in soldering on a protoboard and troubleshooting hardware issues, but by consulting with TechSpark staff and seeking in person guidance, I was able to learn proper soldering techniques and best practices. This significantly reduced hardware related issues and improved the reliability of my system.

Through this process, I also developed practical debugging skills. For example, I was able to identify and resolve issues such as unintended short circuits caused by stray wires, which led to incorrect LED behavior during testing. Overall, combining targeted use of documentation, community resources, LLM assisted search, and hands-on mentorship allowed me to efficiently acquire the knowledge needed to design, implement, and debug the system.

System Expansion

A major milestone this week was expanding both sensing and visual output coverage:

  • Increased FSR input channels from 12 to 24, enabling support for a full octave range
  • Expanded LED output from 5 LEDs to 36 LEDs, allowing per-key visual guidance across the entire octave
  • Ensured proper mapping between each FSR input and its corresponding LED output

This expansion moves the system closer to the intended use case of guiding real piano playing rather than demonstrating isolated functionality.

FSR Strip Validation and Debugging

A significant portion of the week was spent verifying the reliability of the FSR sensing system:

  • Tested each FSR channel individually to ensure consistent and correct readings
  • Identified and debugged issues related to inconsistent triggering and cross-channel interference
  • Verified that each sensor responds appropriately to key presses and releases

This process was important to ensure that the system produces stable and interpretable input signals before integrating higher-level logic.

FSR Modification Experiments

I also explored the flexibility of the sensing hardware by experimenting with modifying the FSR strips:

  • Tested whether FSR strips could be cut to custom lengths for better physical alignment with keys
  • Found that the strips remain functional when cut within certain threshold regions, without breaking conductivity
  • This result improves the adaptability of the system for different keyboard sizes and layouts

Hardware Integration and Wiring

To improve system robustness and prepare for enclosure, I worked on consolidating the hardware:

  • Performed extensive wire management to reduce clutter and improve signal reliability
  • Migrated connections onto a perfboard-based PCB, replacing loose wiring with a more stable structure
  • Organized power, ground, and signal routing to support both LEDs and FSR inputs cleanly

This significantly improves durability and makes the system more suitable for packaging into a final enclosure.

Next Steps
Finalize enclosure design and integrate all components into a compact housing

Continue validating sensor reliability under continuous use
Integrate hardware with software pipeline for full system testing (input → processing → LED feedback)

Measure and report system-level latency and responsiveness