|
| 1 | +--- |
| 2 | +title: "SSoC ’25 Week 08 Update by Muhammad Haroon" |
| 3 | +excerpt: "Code the sketches of the user interface in Music Blocks." |
| 4 | +category: "DEVELOPER NEWS" |
| 5 | +date: "2025-07-27" |
| 6 | +slug: "2025-07-27-ssoc-25-MuhammadHaroon-week08" |
| 7 | +author: "@/constants/MarkdownFiles/authors/muhammad-haroon.md" |
| 8 | +tags: "ssoc25,sugarlabs,week08,GenAI,MusicBlocks,Music" |
| 9 | +image: "assets/Images/GSOC.png" |
| 10 | +--- |
| 11 | + |
| 12 | +<!-- markdownlint-disable --> |
| 13 | + |
| 14 | +# Week 08 Progress Report by Muhammad Haroon |
| 15 | + |
| 16 | +**Project:** [Generative AI Instrument Sample Generation for Music Blocks](https://github.com/sugarlabs/GSoC/blob/master/Ideas-2025.md#Generative-AI-Instrument-Sample-Generation-for-Music-Blocks) |
| 17 | +**Mentors:** [Walter Bender](https://github.com/walterbender), [Sumit Srivastava](https://github.com/sum2it) |
| 18 | +**Assisting Mentors:** [Devin Ulibarri](https://github.com/pikurasa) |
| 19 | +**Reporting Period:** 2025-07-21 - 2025-07-27 |
| 20 | + |
| 21 | +--- |
| 22 | + |
| 23 | +## Goals for This Week |
| 24 | + |
| 25 | +- **Goal 1:** Code the sketches of the user interface in Music Blocks. |
| 26 | +- **Goal 2:** Create a FastAPI for connecting frontend with backend. |
| 27 | + |
| 28 | +--- |
| 29 | + |
| 30 | +## This Week's Achievements |
| 31 | + |
| 32 | +1. **Code the sketches of the user interface in Music Blocks.** |
| 33 | + - I was succefully able to code the user interfaces in Music Blocks. Following are the screenshots of it. |
| 34 | + |
| 35 | +  |
| 36 | + |
| 37 | + - At the moment, I have used placeholders like a, b, c, d, e, f, g, h, i, j, which will later be replaced with actual prompts that users can type. Each time the user clicks on the prompt icon in the toolbar, a new prompt will appear as the placeholder, giving them an idea of what they can type. |
| 38 | + |
| 39 | +  |
| 40 | + |
| 41 | +  |
| 42 | + |
| 43 | + - Below is the video demonstrating the UI in Music Blocks. |
| 44 | + |
| 45 | + [youtube: woTpsiBh2O8] |
| 46 | + |
| 47 | +--- |
| 48 | + |
| 49 | +## Challenges & How I Overcame Them |
| 50 | + |
| 51 | +- **Challenge:** The actual challenge I faced was ensuring that when a user selects an audio file to trim, the file chooser should be replaced with an audio player so the user can get the timestamps of the segment to be trimmed. Initially, I tried hiding the file chooser using display: none after the file was selected. However, this caused the audio player to appear after the "Preview" and "Save" buttons, because the DOM was being modified in a way that shifted elements upwards. |
| 52 | +- **Solution:** After researching online, I discovered the "replaceChild" function, which replaces one child element with another within the same parent, maintaining the layout structure correctly. |
| 53 | + |
| 54 | +--- |
| 55 | + |
| 56 | +## Key Learnings |
| 57 | + |
| 58 | +- Understood about "replaceChild" function. |
| 59 | + |
| 60 | +--- |
| 61 | + |
| 62 | +## Next Week's Roadmap |
| 63 | + |
| 64 | +- Create a FastAPI for connecting frontend with backend. |
| 65 | + |
| 66 | +--- |
| 67 | + |
| 68 | +## Acknowledgments |
| 69 | + |
| 70 | +Thank you to my mentors, the Sugar Labs community, and fellow GSoC contributors for ongoing support. |
| 71 | + |
| 72 | +--- |
0 commit comments