Chris Oh’s Status Report for Feb 21

This week I focused on transitioning from architecture design into concrete implementation. I set up the project repository, implemented the foundational conversion layer logic, and built a placeholder Streamlit-based UI that connects to the processing pipeline.

Software Implementation Progress

  • Initialized and structured the main project repository to reflect the modular architecture defined previously (UI/Core, Conversion, Hardware Interface).
  • Ensured clear separation of responsibilities so each layer can be developed and tested independently.
  • Implemented core functionality of the conversion layer, including:
    • MusicXML parsing and note extraction
    • MIDI to 88-key index mapping logic
    • Raw Event IR construction
    • Chord grouping for simultaneous note events
  • Established a functional end-to-end pipeline from MusicXML input to structured Raw Event IR output.
  • Integrated a Streamlit-based UI (skeleton UI; not hooked with backend yet) that supports:
    • File upload (MusicXML input)
    • Mode selection (Beat Mode / No-Beat Mode)
    • BPM input field
    • Play/Pause controls
    • Real-time display of processed event data fordebugging and validation

System Integration and Testing

  • Tested the conversion pipeline using sample sheet music files to verify:
    • Correct note extraction
    • Accurate key index mapping
    • Proper grouping of simultaneous notes
    • Stable modular boundaries between layers
  • The system is a prototype that partially supports a working vertical slice from file input to structured event output through the UI.

Schedule

I am currently on schedule. The repository structure is established, the basic conversion logic is implemented, and the UI layer is sketched out. The project is now in active prototyping and ready for further feature expansion.

Deliverables for Next Week

  • Complete Beat Mode quantization logic.
  • Finalize JSON payload structure for hardware transmission.

Leave a Reply

Your email address will not be published. Required fields are marked *