Skip to content

Commit 4b7823b

Browse files
authored
gsoc-25-week11-shubham-singh (#403)
1 parent f09cd1a commit 4b7823b

File tree

6 files changed

+103
-0
lines changed

6 files changed

+103
-0
lines changed
44.4 KB
Loading
17.4 KB
Loading
16.5 KB
Loading
32.6 KB
Loading
36.2 KB
Loading
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
---
2+
title: "GSoC '25 Week 11 Update by Shubham Singh"
3+
excerpt: "Added SVGs, more instruments, auto arrange method in LegoBricks widget."
4+
category: "DEVELOPER NEWS"
5+
date: "2025-08-21"
6+
slug: "2025-08-21-gsoc-25-firepheonix-week11"
7+
author: "@/constants/MarkdownFiles/authors/shubham-singh.md"
8+
tags:
9+
- gsoc25
10+
- sugarlabs
11+
- week11
12+
- firepheonix
13+
image: "assets/Images/GSOC.webp"
14+
---
15+
16+
<!-- markdownlint-disable -->
17+
18+
# Week 11 Progress Report by Shubham Singh
19+
20+
**Project:** [Color Sensor for Music Blocks](https://github.com/sugarlabs/musicblocks/issues/4537)
21+
**Mentors:** [Devin Ulibarri](https://github.com/pikurasa), [Walter Bender](https://github.com/walterbender)
22+
**Reporting Period:** 2025-08-15 – 2025-08-21
23+
24+
---
25+
26+
## Goals for This Week
27+
28+
- Add support for other instruments
29+
- Add new SVGs for Image and Webcam
30+
- Auto arrange the pitches according to their order just like in the phrase maker.
31+
32+
---
33+
34+
## This Week's Achievements
35+
36+
1. **Added SVGs Corresponding to Camera Image and Live Webcam**
37+
- Created custom SVG icons for the camera and webcam functionality using Figma, ensuring they match the existing Music Blocks design standards.
38+
- Maintained consistent sizing with other widget icons (24x24px) to preserve visual harmony across the interface.
39+
40+
![Adding it on Figma](/assets/Developers/Shubham_Singh/gsoc-25-week11-svgsOnFigma.webp)
41+
42+
![How it looks on Lego Bricks widget](/assets/Developers/Shubham_Singh/gsoc-25-week11-svgsAdded.webp)
43+
44+
2. **Added multiple instrument support and Auto Arrange Pitch according to frequency in Lego Bricks Widget.**
45+
- Implemented a dropdown instrument selector that allows users to choose from various instruments including Electronic Synth (default), Piano, Guitar, Violin, and Drums.
46+
- Integrated the instrument selection with Music Blocks' existing audio engine to ensure proper sound synthesis and playback quality.
47+
- Each instrument maintains its unique timbral characteristics while preserving the pitch and timing information from the LEGO brick patterns.
48+
- Added instrument persistence so user selections are maintained throughout their session.
49+
50+
![Multiple instruments support](/assets/Developers/Shubham_Singh/gsoc-25-week11-multipleInstruments.webp)
51+
52+
- Developed an intelligent auto-arrange feature that automatically sorts pitch blocks by frequency, mimicking the phrase maker's behavior.
53+
- The system detects when pitches are placed in incorrect order and rearranges them from lowest to highest frequency automatically.
54+
- This feature ensures musical coherence regardless of how users initially arrange their LEGO blocks, making the tool more user-friendly for beginners.
55+
- Implemented smooth visual transitions during auto-arrangement to help users understand the reordering process.
56+
57+
![Putting in wrong order](/assets/Developers/Shubham_Singh/gsoc-25-week11-wrongSVGOrder.webp)
58+
59+
![Automatically arranged themselves correctly](/assets/Developers/Shubham_Singh/gsoc-25-week11-autoArrange.webp)
60+
61+
---
62+
63+
## Challenges & How I Overcame Them
64+
65+
- **Challenge:** Ensuring consistent SVG rendering across different browsers and maintaining visual quality at various zoom levels while keeping file sizes minimal.
66+
**Solution:** Used vector-based design principles in Figma and optimized SVG code by removing unnecessary elements and using relative units instead of fixed pixels.
67+
68+
- **Challenge:** Ensuring that multiple audio files were being accessed properly.
69+
**Solution:** Ensured code modularity, how it's being used in the pie menu that allowed access to multiple instruments without having to have a lot many lines of code.
70+
71+
---
72+
73+
## Key Learnings
74+
75+
- **SVG Optimization:** Proper SVG optimization significantly impacts both file size and rendering performance. Using tools like Figma's export settings and manual code cleanup can reduce file sizes by up to 60% while maintaining visual quality.
76+
77+
- **User Experience Consistency:** Auto-arranging features should provide visual feedback to help users understand what's happening. Implementing smooth transitions and clear visual cues prevents confusion when the system automatically corrects user input.
78+
79+
---
80+
81+
## Next Week's Roadmap
82+
83+
- Optimize performance for larger LEGO brick arrangements.
84+
- Begin work on comprehensive user documentation.
85+
- Make Pull Request and final submissions for GSoC.
86+
- Make Demo video for explaining how it works.
87+
88+
---
89+
90+
## Resources & References
91+
92+
- **Music Blocks Documentation:** https://github.com/sugarlabs/musicblocks/tree/master/documentation
93+
- **LEGO Blocks Notation System Video:** https://youtu.be/LOfrCPf3XJU?feature=shared
94+
- **Figma SVG Optimization Guide:** Used for creating efficient vector graphics
95+
- **Music Blocks Audio Engine:** Referenced for instrument integration
96+
97+
---
98+
99+
## Acknowledgments
100+
101+
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 appreciation for their feedback on the instrument integration and auto-arrange functionality.
102+
103+
---

0 commit comments

Comments
 (0)