GSoC 2024 with Sugar Labs | Community Bonding , Week 1 & 2 | Music Blocks (v4) project updates


Hi everyone, welcome to the GSoC’24 Blogs.

I am documenting my complete journey as a contributor for Google Summer of Code 2024 under Sugar Labs for the Music Blocks (v4) project – Masonry Framework.

What is the Masonry Framework ?

It is a graphical blocks manager module used to create Music Blocks programs, including interactive blocks like Start, Rhythm, Note, Pitch, Instrument, and many more. These blocks can be dragged, dropped, and clicked to perform actions . By implementing the Masonry end-to-end, users will be able to create different musical patterns seamlessly. This is how it looks in the current Music Blocks (v3) :

Major parts of Masonry Framework :

1. Brick: A single, reusable block representing a musical or programming concept.
2. Brick Stack: A sequence of connected bricks that collectively perform a more complex function.
3. Palette: A collection of available bricks that users can drag into the workspace.
4. Workspace: The area where users arrange and manipulate bricks to create and visualize their music and code.

Community Bonding period:

During the community bonding period, I focused on writing and refining the Product Requirements Document (PRD) for the Masonry framework in Musicblocks v4. The PRD includes all design decisions and specifications crucial for the project.

  • PRD Development: Drafted and iterated on the PRD based on feedback from mentors and community discussions. This process ensured comprehensive documentation and alignment among all members of Sugarlabs Community. The PRD can be found here and mentor’s comments can be found here .
  • Learning and Application:
  1. Data Flow Diagrams (DFDs): Learned to create DFDs to visualize data movement within the system.

This period was crucial for thorough planning and learning, setting the stage for effective coding and implementation. This groundwork helped identify potential issues early, ensuring a smooth transition to the coding phase and laying a strong foundation for development.

Week 1&2:

During the first two weeks, I focused on creating the Data Flow Diagrams (DFDs) and technical specifications for the Masonry framework in Musicblocks v4. This involved several key activities:

  • Creating DFDs and Tech Spec: Developed detailed DFDs and a technical specification document to outline the framework’s architecture and data flow.
  • Iteration and Refinement: Iterated on these documents based on feedback from mentors, making necessary adjustments to ensure clarity and accuracy.
  • Decision Making: Evaluated and decided on libraries and algorithms to use for the project.
  • Learning and Application:
  1. SOLID Principles: Deepened my understanding of SOLID principles to ensure the framework’s design is robust and maintainable.
  2. Architecture Diagrams: Learned about different types of architecture diagrams to better visualize and plan the system’s structure.

These activities were crucial for establishing a solid foundation for the project, ensuring well-thought-out design decisions before moving into the implementation phase.

The Architecture diagrams, Tech spec and related stuff can be found here .

Here are some of the screenshots:

We also had a GSoC+DMP contributors initial check-in.

In the coming weeks, I look forward to making more progress on the project and start Coding!
So far, I hope you’ve enjoyed reading about my progress. I’ll be back with new updates about my GSoC journey soon.

Also, don’t forget to drop a star on the project GitHub repo! ⭐
Link: https://github.com/sugarlabs/musicblocks-v4

You can connect with me on LinkedIn. Additionally, you can follow me on GitHub and Twitter, it will be appreciated.