From 3c07e944adbed290a01c54e959c418a051eedf4c Mon Sep 17 00:00:00 2001 From: Shubham Singh Date: Mon, 16 Jun 2025 15:42:54 +0530 Subject: [PATCH 1/5] FirePheonixGSOC'25week02 --- .../posts/2025-06-14-gsoc-FirePheonix-week02 | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/constants/MarkdownFiles/posts/2025-06-14-gsoc-FirePheonix-week02 diff --git a/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-FirePheonix-week02 b/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-FirePheonix-week02 new file mode 100644 index 00000000..2762fc54 --- /dev/null +++ b/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-FirePheonix-week02 @@ -0,0 +1,82 @@ +--- +title: "GSoC ’25 Week 02 Update by Shubham Singh" +excerpt: "Adding the entire prototyped interface ON TO the music blocks" +category: "DEVELOPER NEWS" +date: "2025-06-14" +slug: "2025-06-14-gsoc-25-FirePheonix-week02" +description: "GSoC'25 Contributor at SugarLabs (Color Sensor for music blocks)" +author: "Shubham Singh" +tags: "gsoc25,sugarlabs,week02,FirePheonix" +image: "assets/Images/GSOC.png" +--- + + + +# Week 02 Progress Report by Shubham Singh + +**Project:** [Color Sensor for Music Blocks](https://github.com/sugarlabs/musicblocks/issues/4537) +**Mentors:** [Devin Ulibarri](https://github.com/pikurasa), [Walter Bender](https://github.com/walterbender) +**Reporting Period:** 2025-06-08 - 2025-06-15 + +--- + +## Goals for This Week + + +- **Goal 1:** Basic UI for Image Upload/Real time Video upload and adjust. +- **Goal 2:** Putting the developed UIs onto the widget blocks. +- **Goal 3:** Searching for exisiting audios in the phrase maker and note blocks. + +--- + +## This Week’s Achievements + +1. **Interface for Image upload for Lego Notations** + - Music Blocks has a feature to detect the color of pixels generated from drawing within the program, but it cannot detect the color of pixels from images that are either uploaded or from a webcam. + - This week I was travelled to a village, I didn't have no internet there, but worked on implementing the LegoBricks block ON TO the music blocks canvas. + - You have to change a LOT (I had to go through 6 of them) of files in order to implement an entirely new block. (Good Part: A LOT OF THE CODE IS ALREADY THERE IN MUSIC BLOCKS. It's sooo beautifully encapsulated and documented.) + + ![screenshot-description](https://i.ibb.co/d0X9zXjF/1st.png) + + +2. **Graphics for Lego Bricks** + - The following feature helps to use a real time video(webcam) onto the Lego Notation detection interface. Also, you may freely edit and move it around the canvas. + ![screenshot-description](https://i.ibb.co/cXL4Hpxq/2nd.png) + + +3. **Identified methods to exporting blocks' output as an action block** + - I read and went through a lot of documentation, saw a lot of code in the Phrase Maker widget that would help in exporting the code as: midi and as action block. + ![screenshot-description](https://i.ibb.co/bVD8Z54/image.png) + +--- + +## Challenges & How I Overcame Them + +- **Challenge:** Getting the UI on to the interface of music blocks itself was a challenge. +- **Solution:** Consulted my mentors, read the old documentation on "how to add new blocks", used some previous codes. + +- **Challenge:** Figuring out how would the user workflow in the Lego Bricks block take place. +- **Solution:** Talked to my mentor on meet, discussed how exports take place in the phrase maker? + +--- + +## Key Learnings + +- Gained familiarity with **how outputs in different blocks take place.**. +- Deepened understanding of **inheritance, code modularity and custom return types** +- Improved skills in **exports, imports, code reusability**, **documentation**, and **collaboration workflows**. + +--- + +## Next Week’s Roadmap + +- Implement **mapping of musical notes to lego bricks' colors**. +- Target: Completing the **core implementation** in the week number 2 and 3. + +--- + +## Acknowledgments + +Thanks to [Walter Bender's](https://github.com/walterbender) advise on how phrase maker exports the output as an ACTION block in the biweekly meet, I was able to figure out a way to return. + +--- \ No newline at end of file From d8033379a7558b9c43c3e3129173af90b376738c Mon Sep 17 00:00:00 2001 From: Shubham Singh Date: Sun, 22 Jun 2025 10:05:12 +0530 Subject: [PATCH 2/5] updated according to latest format --- .../MarkdownFiles/authors/shubham-singh.md | 34 +++++++ .../posts/2025-06-14-gsoc-FirePheonix-week02 | 97 ++++++++++++------- 2 files changed, 94 insertions(+), 37 deletions(-) create mode 100644 src/constants/MarkdownFiles/authors/shubham-singh.md diff --git a/src/constants/MarkdownFiles/authors/shubham-singh.md b/src/constants/MarkdownFiles/authors/shubham-singh.md new file mode 100644 index 00000000..8b7dc215 --- /dev/null +++ b/src/constants/MarkdownFiles/authors/shubham-singh.md @@ -0,0 +1,34 @@ +--- +name: "Shubham Singh" +slug: "shubham singh" +title: "Maintainer and GSoC'25 Contributor" +organization: "SugarLabs" +description: "Maintainer and GSoC'25 Contributor at SugarLabs" +avatar: "https://avatars.githubusercontent.com/u/174003514?s=400&u=e43600ba24f563f3799388137119ae119c74ffac&v=4" +--- + + + +# About Shubham + +Safwan is a dedicated maintainer and Google Summer of Code 2025 contributor at SugarLabs, working primarily on the Music Blocks 4 Program Engine development. With a passion for educational technology and open-source development, Safwan contributes to making programming more accessible to learners worldwide. + +## Experience + +- **GSoC 2025**: Music Blocks v3 color sensor development +- **SugarLabs Maintainer**: Active contributor to various projects + +## Current Projects + +- Music Blocks 4 Program Engine +- SugarLabs website development + + +## Connect with Me + +- **GitHub**: [@sa-fw-an](https://github.com/sa-fw-an) +- **Email**: [isafwansayeed@gmail.com](mailto:isafwansayeed@gmail.com) +- **LinkedIn**: [Safwan Sayeed](https://linkedin.com/in/safwan-sayeed-6a3a482a9) +- **Twitter**: [@safwan_say](https://twitter.com/safwan_say) +- **Website**: [safwansayeed.dev](https://safwansayeed.dev) +- **Discord**: [safwan#1234](https://discord.com/users/safwan#1234) \ No newline at end of file diff --git a/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-FirePheonix-week02 b/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-FirePheonix-week02 index 2762fc54..bdff5c12 100644 --- a/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-FirePheonix-week02 +++ b/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-FirePheonix-week02 @@ -1,82 +1,105 @@ --- -title: "GSoC ’25 Week 02 Update by Shubham Singh" +title: "GSoC '25 Week 2 Update by Shubham Singh" excerpt: "Adding the entire prototyped interface ON TO the music blocks" category: "DEVELOPER NEWS" date: "2025-06-14" slug: "2025-06-14-gsoc-25-FirePheonix-week02" -description: "GSoC'25 Contributor at SugarLabs (Color Sensor for music blocks)" -author: "Shubham Singh" +author: "@/constants/MarkdownFiles/authors/shubham-singh.md" tags: "gsoc25,sugarlabs,week02,FirePheonix" image: "assets/Images/GSOC.png" --- -# Week 02 Progress Report by Shubham Singh +# Week 2: Building the Foundation for Lego Notation Detection **Project:** [Color Sensor for Music Blocks](https://github.com/sugarlabs/musicblocks/issues/4537) **Mentors:** [Devin Ulibarri](https://github.com/pikurasa), [Walter Bender](https://github.com/walterbender) -**Reporting Period:** 2025-06-08 - 2025-06-15 +**Reporting Period:** June 08, 2025 till June 15, 2025 --- ## Goals for This Week +This week was focused on transitioning from prototype to production-ready implementation. My primary objectives were: -- **Goal 1:** Basic UI for Image Upload/Real time Video upload and adjust. -- **Goal 2:** Putting the developed UIs onto the widget blocks. -- **Goal 3:** Searching for exisiting audios in the phrase maker and note blocks. +- **Goal 1:** Basic UI for Image Upload/Real-time Video upload and adjustment +- **Goal 2:** Integrating the developed UIs onto the widget blocks within Music Blocks +- **Goal 3:** Researching existing audio integration patterns in the phrase maker and note blocks --- -## This Week’s Achievements +## This Week's Achievements -1. **Interface for Image upload for Lego Notations** - - Music Blocks has a feature to detect the color of pixels generated from drawing within the program, but it cannot detect the color of pixels from images that are either uploaded or from a webcam. - - This week I was travelled to a village, I didn't have no internet there, but worked on implementing the LegoBricks block ON TO the music blocks canvas. - - You have to change a LOT (I had to go through 6 of them) of files in order to implement an entirely new block. (Good Part: A LOT OF THE CODE IS ALREADY THERE IN MUSIC BLOCKS. It's sooo beautifully encapsulated and documented.) - - ![screenshot-description](https://i.ibb.co/d0X9zXjF/1st.png) - +### Interface Implementation for Lego Notations -2. **Graphics for Lego Bricks** - - The following feature helps to use a real time video(webcam) onto the Lego Notation detection interface. Also, you may freely edit and move it around the canvas. - ![screenshot-description](https://i.ibb.co/cXL4Hpxq/2nd.png) +Music Blocks already has a sophisticated feature to detect the color of pixels generated from drawing within the program, but it cannot detect the color of pixels from external sources like uploaded images or webcam feeds. This limitation was the core challenge I tackled this week. - -3. **Identified methods to exporting blocks' output as an action block** - - I read and went through a lot of documentation, saw a lot of code in the Phrase Maker widget that would help in exporting the code as: midi and as action block. - ![screenshot-description](https://i.ibb.co/bVD8Z54/image.png) +Despite being in a village with limited internet connectivity, I made significant progress implementing the LegoBricks block directly onto the Music Blocks canvas. The integration process was more complex than anticipated - I had to modify 6 different files to implement an entirely new block type. However, I was impressed by how much foundational code already existed in Music Blocks. The codebase is beautifully encapsulated and thoroughly documented, which made the learning curve much smoother. + +![Interface Implementation](https://i.ibb.co/d0X9zXjF/1st.png) + +### Real-time Video Integration + +The second major achievement was implementing real-time video functionality through webcam integration. This feature allows users to use live video feeds for Lego Notation detection, with full editing capabilities and canvas manipulation. The interface provides seamless interaction between the video feed and the detection algorithms. + +![Real-time Video Feature](https://i.ibb.co/cXL4Hpxq/2nd.png) + +### Export Mechanism Research + +I conducted extensive research into the existing export mechanisms within Music Blocks, particularly studying the Phrase Maker widget. This involved deep diving into the documentation and codebase to understand how different blocks export their output, both as MIDI files and as action blocks. This research will be crucial for implementing the output functionality of the Lego Notation system. + +![Export Research](https://i.ibb.co/bVD8Z54/image.png) --- -## Challenges & How I Overcame Them +## Challenges & Solutions + +### UI Integration Complexity + +**Challenge:** Getting the UI integrated into the Music Blocks interface proved more challenging than expected. The block system has intricate dependencies and requires specific implementation patterns. + +**Solution:** I leveraged multiple resources to overcome this hurdle: consulting with my mentors for guidance, studying the existing documentation on "how to add new blocks," and analyzing previous implementations for reference patterns. This multi-pronged approach helped me understand the architectural requirements. -- **Challenge:** Getting the UI on to the interface of music blocks itself was a challenge. -- **Solution:** Consulted my mentors, read the old documentation on "how to add new blocks", used some previous codes. +### User Workflow Design -- **Challenge:** Figuring out how would the user workflow in the Lego Bricks block take place. -- **Solution:** Talked to my mentor on meet, discussed how exports take place in the phrase maker? +**Challenge:** Determining the optimal user workflow for the Lego Bricks block required careful consideration of how users would interact with the feature and how it would integrate with existing Music Blocks functionality. + +**Solution:** I scheduled a focused discussion with my mentor during our regular meeting, where we analyzed how exports function in the phrase maker. This conversation provided crucial insights into user experience patterns and technical implementation approaches. --- ## Key Learnings -- Gained familiarity with **how outputs in different blocks take place.**. -- Deepened understanding of **inheritance, code modularity and custom return types** -- Improved skills in **exports, imports, code reusability**, **documentation**, and **collaboration workflows**. +This week provided several important learning opportunities: + +- **Output Mechanisms:** Gained comprehensive understanding of how different blocks in Music Blocks handle their output generation and processing. +- **Code Architecture:** Deepened my appreciation for inheritance patterns, code modularity, and custom return types within the Music Blocks ecosystem. +- **Development Workflow:** Improved my skills in exports, imports, code reusability, documentation practices, and collaborative development workflows. + +These learnings are already proving valuable as I plan the next phases of development. + +--- + +## Next Week's Roadmap + +Moving forward, my focus will shift to the core functionality implementation: + +- **Primary Goal:** Implement comprehensive mapping of musical notes to Lego brick colors +- **Target:** Complete the core implementation during weeks 2 and 3, ensuring robust functionality and thorough testing + +The foundation laid this week positions me well to tackle these more complex algorithmic challenges. --- -## Next Week’s Roadmap +## Resources & References -- Implement **mapping of musical notes to lego bricks' colors**. -- Target: Completing the **core implementation** in the week number 2 and 3. +- Project Issue - [Color Sensor for Music Blocks](https://github.com/sugarlabs/musicblocks/issues/4537) +- Music Blocks Repository - [sugarlabs/musicblocks](https://github.com/sugarlabs/musicblocks) +- Documentation - Music Blocks Developer Guide --- ## Acknowledgments -Thanks to [Walter Bender's](https://github.com/walterbender) advise on how phrase maker exports the output as an ACTION block in the biweekly meet, I was able to figure out a way to return. - ---- \ No newline at end of file +Special thanks to [Walter Bender](https://github.com/walterbender) for his invaluable advice during our biweekly meeting on how the phrase maker exports output as ACTION blocks. His insights were instrumental in helping me understand the export mechanism and plan the implementation strategy. Thanks also to [Devin Ulibarri](https://github.com/pikurasa) for ongoing mentorship and guidance throughout this development phase. \ No newline at end of file From c453ba6bf9bbf01c747aeab3dcbdac14ffc398b1 Mon Sep 17 00:00:00 2001 From: Shubham Singh Date: Sun, 22 Jun 2025 10:06:00 +0530 Subject: [PATCH 3/5] updated author info according to format --- .../MarkdownFiles/authors/shubham-singh.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/constants/MarkdownFiles/authors/shubham-singh.md b/src/constants/MarkdownFiles/authors/shubham-singh.md index 8b7dc215..70f5338b 100644 --- a/src/constants/MarkdownFiles/authors/shubham-singh.md +++ b/src/constants/MarkdownFiles/authors/shubham-singh.md @@ -11,7 +11,8 @@ avatar: "https://avatars.githubusercontent.com/u/174003514?s=400&u=e43600ba24f56 # About Shubham -Safwan is a dedicated maintainer and Google Summer of Code 2025 contributor at SugarLabs, working primarily on the Music Blocks 4 Program Engine development. With a passion for educational technology and open-source development, Safwan contributes to making programming more accessible to learners worldwide. +Shubham Singh is a passionate developer, open-source contributor, and Google Summer of Code 2025 contributor at SugarLabs. As a core contributor, he brings together creativity and functionality, optimizing both the user experience and technical performance of projects. Shubham is currently working on enhancing educational tools, with a focus on accessibility, interactivity, and meaningful design—empowering learners globally through open-source innovation. + ## Experience @@ -20,15 +21,15 @@ Safwan is a dedicated maintainer and Google Summer of Code 2025 contributor at S ## Current Projects -- Music Blocks 4 Program Engine +- Music Blocks v3 Development of Color Sensor. - SugarLabs website development ## Connect with Me -- **GitHub**: [@sa-fw-an](https://github.com/sa-fw-an) -- **Email**: [isafwansayeed@gmail.com](mailto:isafwansayeed@gmail.com) -- **LinkedIn**: [Safwan Sayeed](https://linkedin.com/in/safwan-sayeed-6a3a482a9) -- **Twitter**: [@safwan_say](https://twitter.com/safwan_say) -- **Website**: [safwansayeed.dev](https://safwansayeed.dev) -- **Discord**: [safwan#1234](https://discord.com/users/safwan#1234) \ No newline at end of file +- **GitHub**: [@FirePheonix](https://github.com/FirePheonix) +- **Email**: [shubhsoch@gmail.com](mailto:shubhsoch@gmail.com) +- **LinkedIn**: [Shubham Singh](https://www.linkedin.com/in/shubham-singh-8a5643198/) +- **Twitter**: [@shubhamm069](https://x.com/shubhamm069) +- **Website**: +- **Discord**: [ctrlaltresett](https://discord.com/users/Shubham#0418) \ No newline at end of file From 170e584531103f7556990064928d9376cb4d916d Mon Sep 17 00:00:00 2001 From: Shubham Singh Date: Sun, 22 Jun 2025 10:29:50 +0530 Subject: [PATCH 4/5] changed file name --- .../2025-06-14-gsoc-25-FirePheonix-week02 | 91 +++++++++++++++ .../posts/2025-06-14-gsoc-FirePheonix-week02 | 105 ------------------ 2 files changed, 91 insertions(+), 105 deletions(-) create mode 100644 src/constants/MarkdownFiles/posts/2025-06-14-gsoc-25-FirePheonix-week02 delete mode 100644 src/constants/MarkdownFiles/posts/2025-06-14-gsoc-FirePheonix-week02 diff --git a/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-25-FirePheonix-week02 b/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-25-FirePheonix-week02 new file mode 100644 index 00000000..ea1d757f --- /dev/null +++ b/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-25-FirePheonix-week02 @@ -0,0 +1,91 @@ +--- +title: "GSoC '25 Week 2 Update by Shubham Singh" +excerpt: "Adding the entire prototyped interface ON TO the music blocks" +category: "DEVELOPER NEWS" +date: "2025-06-14" +slug: "2025-06-14-gsoc-25-FirePheonix-week02" +author: "@/constants/MarkdownFiles/authors/shubham-singh.md" +tags: "gsoc25,sugarlabs,week02,FirePheonix" +image: "assets/Images/GSOC.png" +--- + + + +# Week 2 Progress Report by Shubham Singh + +**Project:** [Color Sensor for Music Blocks](https://github.com/sugarlabs/musicblocks/issues/4537) +**Mentors:** [Devin Ulibarri](https://github.com/pikurasa), [Walter Bender](https://github.com/walterbender) +**Reporting Period:** 2025-06-08 – 2025-06-15 + +--- + +## Goals for This Week + +- Basic UI for Image Upload/Real-time Video upload and adjustment. +- Integrating the developed UIs onto the widget blocks within Music Blocks. +- Researching existing audio integration patterns in the phrase maker and note blocks. + +--- + +## This Week's Achievements + +1. **Interface Implementation for Lego Notations** + - Successfully integrated the LegoBricks block directly onto the Music Blocks canvas. + - Modified 6 different files to implement an entirely new block type. + - Music Blocks already has sophisticated color detection for internal pixels, but couldn't detect colors from external sources like uploaded images or webcam feeds — this limitation was addressed. + - The codebase proved beautifully encapsulated and thoroughly documented, making the learning curve smoother. + ![Interface Implementation](https://i.ibb.co/d0X9zXjF/1st.png) + +2. **Real-time Video Integration** + - Implemented real-time video functionality through webcam integration. + - Added full editing capabilities and canvas manipulation for live video feeds. + - Interface provides seamless interaction between video feed and detection algorithms. + ![Real-time Video Feature](https://i.ibb.co/cXL4Hpxq/2nd.png) + +3. **Export Mechanism Research** + - Conducted extensive research into existing export mechanisms within Music Blocks. + - Deep-dived into Phrase Maker widget documentation and codebase. + - Studied how different blocks export output as both MIDI files and action blocks. + ![Export Research](https://i.ibb.co/bVD8Z54/image.png) + +--- + +## Challenges & How I Overcame Them + +- **Challenge:** UI integration complexity — getting the UI integrated into Music Blocks proved more challenging than expected due to intricate dependencies and specific implementation patterns required by the block system. +**Solution:** Leveraged multiple resources including mentor consultations, existing documentation on "how to add new blocks," and analyzed previous implementations for reference patterns. + +- **Challenge:** User workflow design — determining optimal user workflow for the Lego Bricks block required careful consideration of user interaction patterns and integration with existing functionality. +**Solution:** Scheduled focused discussion with mentor during regular meeting to analyze phrase maker export functionality, gaining crucial insights into user experience patterns and technical approaches. + +--- + +## Key Learnings + +- Gained comprehensive understanding of **output mechanisms** and how different blocks handle their output generation and processing. +- Deepened appreciation for **code architecture** including inheritance patterns, code modularity, and custom return types within the Music Blocks ecosystem. +- Improved skills in **development workflow** including exports, imports, code reusability, documentation practices, and collaborative development workflows. + +--- + +## Next Week's Roadmap + +- Implement comprehensive mapping of musical notes to Lego brick colors. +- Complete the core implementation during weeks 2 and 3, ensuring robust functionality and thorough testing. +- Focus on algorithmic challenges for note-to-color mapping system. + +--- + +## Resources & References + +- **Project Issue:** [Color Sensor for Music Blocks](https://github.com/sugarlabs/musicblocks/issues/4537) +- **Music Blocks Repository:** [sugarlabs/musicblocks](https://github.com/sugarlabs/musicblocks) +- **Documentation:** Music Blocks Developer Guide + +--- + +## Acknowledgments + +Thank you to my mentors [Walter Bender](https://github.com/walterbender) and [Devin Ulibarri](https://github.com/pikurasa) for invaluable guidance throughout this development phase. Special thanks to Walter for his advice during our biweekly meeting on how the phrase maker exports output as ACTION blocks. + +--- \ No newline at end of file diff --git a/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-FirePheonix-week02 b/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-FirePheonix-week02 deleted file mode 100644 index bdff5c12..00000000 --- a/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-FirePheonix-week02 +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: "GSoC '25 Week 2 Update by Shubham Singh" -excerpt: "Adding the entire prototyped interface ON TO the music blocks" -category: "DEVELOPER NEWS" -date: "2025-06-14" -slug: "2025-06-14-gsoc-25-FirePheonix-week02" -author: "@/constants/MarkdownFiles/authors/shubham-singh.md" -tags: "gsoc25,sugarlabs,week02,FirePheonix" -image: "assets/Images/GSOC.png" ---- - - - -# Week 2: Building the Foundation for Lego Notation Detection - -**Project:** [Color Sensor for Music Blocks](https://github.com/sugarlabs/musicblocks/issues/4537) -**Mentors:** [Devin Ulibarri](https://github.com/pikurasa), [Walter Bender](https://github.com/walterbender) -**Reporting Period:** June 08, 2025 till June 15, 2025 - ---- - -## Goals for This Week - -This week was focused on transitioning from prototype to production-ready implementation. My primary objectives were: - -- **Goal 1:** Basic UI for Image Upload/Real-time Video upload and adjustment -- **Goal 2:** Integrating the developed UIs onto the widget blocks within Music Blocks -- **Goal 3:** Researching existing audio integration patterns in the phrase maker and note blocks - ---- - -## This Week's Achievements - -### Interface Implementation for Lego Notations - -Music Blocks already has a sophisticated feature to detect the color of pixels generated from drawing within the program, but it cannot detect the color of pixels from external sources like uploaded images or webcam feeds. This limitation was the core challenge I tackled this week. - -Despite being in a village with limited internet connectivity, I made significant progress implementing the LegoBricks block directly onto the Music Blocks canvas. The integration process was more complex than anticipated - I had to modify 6 different files to implement an entirely new block type. However, I was impressed by how much foundational code already existed in Music Blocks. The codebase is beautifully encapsulated and thoroughly documented, which made the learning curve much smoother. - -![Interface Implementation](https://i.ibb.co/d0X9zXjF/1st.png) - -### Real-time Video Integration - -The second major achievement was implementing real-time video functionality through webcam integration. This feature allows users to use live video feeds for Lego Notation detection, with full editing capabilities and canvas manipulation. The interface provides seamless interaction between the video feed and the detection algorithms. - -![Real-time Video Feature](https://i.ibb.co/cXL4Hpxq/2nd.png) - -### Export Mechanism Research - -I conducted extensive research into the existing export mechanisms within Music Blocks, particularly studying the Phrase Maker widget. This involved deep diving into the documentation and codebase to understand how different blocks export their output, both as MIDI files and as action blocks. This research will be crucial for implementing the output functionality of the Lego Notation system. - -![Export Research](https://i.ibb.co/bVD8Z54/image.png) - ---- - -## Challenges & Solutions - -### UI Integration Complexity - -**Challenge:** Getting the UI integrated into the Music Blocks interface proved more challenging than expected. The block system has intricate dependencies and requires specific implementation patterns. - -**Solution:** I leveraged multiple resources to overcome this hurdle: consulting with my mentors for guidance, studying the existing documentation on "how to add new blocks," and analyzing previous implementations for reference patterns. This multi-pronged approach helped me understand the architectural requirements. - -### User Workflow Design - -**Challenge:** Determining the optimal user workflow for the Lego Bricks block required careful consideration of how users would interact with the feature and how it would integrate with existing Music Blocks functionality. - -**Solution:** I scheduled a focused discussion with my mentor during our regular meeting, where we analyzed how exports function in the phrase maker. This conversation provided crucial insights into user experience patterns and technical implementation approaches. - ---- - -## Key Learnings - -This week provided several important learning opportunities: - -- **Output Mechanisms:** Gained comprehensive understanding of how different blocks in Music Blocks handle their output generation and processing. -- **Code Architecture:** Deepened my appreciation for inheritance patterns, code modularity, and custom return types within the Music Blocks ecosystem. -- **Development Workflow:** Improved my skills in exports, imports, code reusability, documentation practices, and collaborative development workflows. - -These learnings are already proving valuable as I plan the next phases of development. - ---- - -## Next Week's Roadmap - -Moving forward, my focus will shift to the core functionality implementation: - -- **Primary Goal:** Implement comprehensive mapping of musical notes to Lego brick colors -- **Target:** Complete the core implementation during weeks 2 and 3, ensuring robust functionality and thorough testing - -The foundation laid this week positions me well to tackle these more complex algorithmic challenges. - ---- - -## Resources & References - -- Project Issue - [Color Sensor for Music Blocks](https://github.com/sugarlabs/musicblocks/issues/4537) -- Music Blocks Repository - [sugarlabs/musicblocks](https://github.com/sugarlabs/musicblocks) -- Documentation - Music Blocks Developer Guide - ---- - -## Acknowledgments - -Special thanks to [Walter Bender](https://github.com/walterbender) for his invaluable advice during our biweekly meeting on how the phrase maker exports output as ACTION blocks. His insights were instrumental in helping me understand the export mechanism and plan the implementation strategy. Thanks also to [Devin Ulibarri](https://github.com/pikurasa) for ongoing mentorship and guidance throughout this development phase. \ No newline at end of file From 7b24f2816affc9a746e493449595de4ef5d93850 Mon Sep 17 00:00:00 2001 From: Shubham Singh Date: Mon, 23 Jun 2025 07:50:00 +0530 Subject: [PATCH 5/5] fixed slugs error --- src/constants/MarkdownFiles/authors/shubham-singh.md | 2 +- ...ix-week02 => 2025-06-14-gsoc-25-firepheonix-week02.md} | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) rename src/constants/MarkdownFiles/posts/{2025-06-14-gsoc-25-FirePheonix-week02 => 2025-06-14-gsoc-25-firepheonix-week02.md} (97%) diff --git a/src/constants/MarkdownFiles/authors/shubham-singh.md b/src/constants/MarkdownFiles/authors/shubham-singh.md index 70f5338b..213f06b7 100644 --- a/src/constants/MarkdownFiles/authors/shubham-singh.md +++ b/src/constants/MarkdownFiles/authors/shubham-singh.md @@ -1,6 +1,6 @@ --- name: "Shubham Singh" -slug: "shubham singh" +slug: "shubham-singh" title: "Maintainer and GSoC'25 Contributor" organization: "SugarLabs" description: "Maintainer and GSoC'25 Contributor at SugarLabs" diff --git a/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-25-FirePheonix-week02 b/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-25-firepheonix-week02.md similarity index 97% rename from src/constants/MarkdownFiles/posts/2025-06-14-gsoc-25-FirePheonix-week02 rename to src/constants/MarkdownFiles/posts/2025-06-14-gsoc-25-firepheonix-week02.md index ea1d757f..ee57b80e 100644 --- a/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-25-FirePheonix-week02 +++ b/src/constants/MarkdownFiles/posts/2025-06-14-gsoc-25-firepheonix-week02.md @@ -3,9 +3,13 @@ title: "GSoC '25 Week 2 Update by Shubham Singh" excerpt: "Adding the entire prototyped interface ON TO the music blocks" category: "DEVELOPER NEWS" date: "2025-06-14" -slug: "2025-06-14-gsoc-25-FirePheonix-week02" +slug: "2025-06-14-gsoc-25-firepheonix-week02" author: "@/constants/MarkdownFiles/authors/shubham-singh.md" -tags: "gsoc25,sugarlabs,week02,FirePheonix" +tags: + - gsoc25 + - sugarlabs + - week02 + - firepheonix image: "assets/Images/GSOC.png" ---