Skip to content

Commit 85dd58b

Browse files
authored
Merge branch 'main' into fix/dark-mode-pitch-black
2 parents dd89cb8 + 28bbb6e commit 85dd58b

File tree

11 files changed

+600
-31
lines changed

11 files changed

+600
-31
lines changed

public/assets/Stats/KidsWhoseLife.svg

Lines changed: 101 additions & 8 deletions
Loading

public/assets/Stats/MentorsHelping.svg

Lines changed: 80 additions & 8 deletions
Loading

public/assets/Stats/ProjectsForTeaching.svg

Lines changed: 90 additions & 8 deletions
Loading

src/components/AboutUs/HeroSection.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,12 @@ const HeroSection = () => {
106106
animate="visible"
107107
transition={{ delay: 0.5, duration: 0.8 }}
108108
>
109+
A{' '}
109110
<motion.span
110111
className="relative inline-block"
111112
variants={heroAnimations.hoverText}
112113
whileHover="hover"
113114
>
114-
A
115115
<span className="text-rose-500 dark:text-rose-400 font-semibold">
116116
{' '}
117117
Community

src/components/Info.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,11 +228,11 @@ const Info: React.FC = () => {
228228
{/* Card on Top Left */}
229229
{windowWidth >= 270 && (
230230
<motion.div
231-
className="absolute top-2 left-2 bg-black/60
231+
className="absolute top-1 left-2 bg-black/60
232232
backdrop-blur-sm rounded-lg sm:rounded-xl p-2.5 sm:p-4 md:p-6 shadow-lg
233233
max-w-[180px] sm:max-w-[220px] md:max-w-xs transform hover:scale-105
234234
transition-all duration-300 ease-out z-10 border border-white/50"
235-
whileHover={{ scale: 1.05 }}
235+
whileHover={{ scale: 1 }}
236236
>
237237
{windowWidth >= 355 && (
238238
<>
@@ -257,11 +257,11 @@ const Info: React.FC = () => {
257257
{/* Card on Bottom Right */}
258258
{windowWidth >= 270 && (
259259
<motion.div
260-
className="absolute bottom-2 right-2 bg-black/60
260+
className="absolute bottom-1 right-2 bg-black/60
261261
backdrop-blur-sm rounded-lg sm:rounded-xl p-2.5 sm:p-4 md:p-6 shadow-lg
262262
max-w-[180px] sm:max-w-[220px] md:max-w-xs transform hover:scale-105
263263
transition-all duration-300 ease-out z-10 border border-white/50"
264-
whileHover={{ scale: 1.05 }}
264+
whileHover={{ scale: 1 }}
265265
>
266266
{windowWidth >= 355 && (
267267
<>
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
title: "DMP '25 Week-13 Update: Japanese & Hindi Translations and GPT Validation System"
3+
excerpt: "This week: Completed Japanese and Hindi translations, and built a GPT-assisted Selenium system to validate translations for review."
4+
category: "DEVELOPER NEWS"
5+
date: "2025-09-15"
6+
slug: "2025-09-15-dmp-25-weekly-update-aman-chadha"
7+
author: "@/constants/MarkdownFiles/authors/aman-chadha.md"
8+
tags: "dmp25,sugarlabs,weeklyupdate,aman-chadha"
9+
image: "assets/Images/c4gt_DMP.webp"
10+
---
11+
12+
# Weekly Update: Expanding Language Coverage and Translation Validation
13+
14+
Project: [JS Internationalization with AI Translation Support](https://github.com/sugarlabs/musicblocks/pull/4731)
15+
Mentors: [Walter Bender](https://github.com/walterbender), [Devin Ulibarri](https://github.com/devinulibarri)
16+
Week: September 15 – September 17, 2025
17+
18+
---
19+
20+
## Japanese & Hindi Translation Completion
21+
22+
This week, I successfully generated the full Japanese and Hindi `.po` files using the AI-assisted translation pipeline:
23+
- Leveraged the RAG context JSON for each UI string to provide accurate, context-aware translations.
24+
- Ensured that ambiguous strings (e.g., “duck” for pitch vs. volume) were translated correctly with context guidance.
25+
- Produced fully functional `.po` files ready to be integrated into Music Blocks for Japanese and Hindi users.
26+
27+
This significantly expands the accessibility of Music Blocks to learners worldwide.
28+
29+
---
30+
31+
## GPT-Assisted Translation Validation System
32+
33+
To ensure high-quality translations, I developed a Selenium + GPT validation system:
34+
- Selenium Automation: Loads Music Blocks UI in a browser, extracts all visible strings, and compares them with translated `.po` files.
35+
- GPT Analysis: Checks whether the translated string preserves the correct meaning, flags potential errors, and generates a summary of questionable translations.
36+
- Manual Review: Highlighted incorrect translations are then sent to a human translator for verification and correction.
37+
38+
This system allows us to:
39+
- Detect translation errors automatically before merging into the main codebase.
40+
- Maintain a feedback loop between AI translations and human reviewers.
41+
- Ensure a high-quality, context-aware localization workflow.
42+
43+
---
44+
45+
## Outcome This Week
46+
47+
- Generated working Japanese and Hindi `.po` files.
48+
- [Japanese PR](https://github.com/sugarlabs/musicblocks/pull/4774#issuecomment-3410709064)
49+
- [Hindi PR](https://github.com/sugarlabs/musicblocks/pull/4772)
50+
- Built a Selenium + GPT pipeline for translation verification.
51+
- Flagged incorrect translations for review, improving translation accuracy and reliability.
52+
53+
---
54+
55+
## Next Steps
56+
57+
- Integrate Japanese and Hindi translations into the Music Blocks repository via PRs.
58+
- Expand GPT validation system to support additional languages.
59+
- Begin building a translator dashboard to simplify manual review and correction of flagged translations.
60+
61+
---
62+
63+
## Reflection
64+
65+
This week marked a major milestone: expanding Music Blocks's localization coverage and creating a robust validation pipeline. By combining AI translations with automated validation and human review, we ensure learners can access Music Blocks in multiple languages with confidence in translation accuracy and clarity.
66+
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
title: "DMP '25 Week 10 Update by Anvita Prasad"
3+
excerpt: "Improve Synth and Sample Feature for Music Blocks"
4+
category: "DEVELOPER NEWS"
5+
date: "2025-08-10"
6+
slug: "2025-08-10-DMP-25-AnvitaPrasad-week10"
7+
author: "@/constants/MarkdownFiles/authors/anvita-prasad.md"
8+
tags: "dmp25,sugarlabs,week10,AnvitaPrasad"
9+
image: "assets/Images/c4gt_DMP.webp"
10+
---
11+
12+
<!-- markdownlint-disable -->
13+
14+
# Week 10 Progress Report by Anvita Prasad
15+
16+
**Project:** [Music Blocks - Improve Synth and Sample Features](https://github.com/sugarlabs/musicblocks/issues/4539)
17+
**Mentors:** [Walter Bender](https://github.com/walterbender)
18+
**Assisting Mentors:** [Devin Ulibarri](https://github.com/pikurasa)
19+
**Reporting Period:** 2025-08-04 - 2025-08-10
20+
21+
---
22+
23+
## Goals for This Week
24+
- **Goal 1:** Implement multi-sample support for guitar and electric guitar instruments
25+
- **Goal 2:** Expand piano multi-sample coverage with additional samples
26+
- **Goal 3:** Establish consistent sample configuration structure across instruments
27+
- **Goal 4:** Test audio quality and range coverage for both instruments
28+
- **Goal 5:** Create testing framework for the respective instruments
29+
30+
---
31+
32+
## This Week's Achievements
33+
34+
1. **Guitar Multi-Sample Implementation**
35+
- Successfully created multi-sample configurations for both acoustic guitar and electric guitar with 10 samples each (A2, A4, B3, C5, D3, D4, E2, E5, F#3, F4)
36+
- Implemented instrument-specific sampling strategies optimized for string characteristics
37+
38+
2. **Enhanced Piano Coverage**
39+
- Expanded piano multi-sample system from basic coverage to comprehensive 13-sample configuration (A1, A2, A3, A4, A5, A6, A7, C#2, C#3, C#4, C#5, C#6, C#8) covering nearly 8 octaves
40+
41+
3. **Configuration Standardization**
42+
- Established consistent metadata structure including sample names, center notes, frequency mappings, and MIDI number associations
43+
- Created unified framework for multi-sample instrument integration
44+
45+
4. **Testing Framework Development**
46+
- Built comprehensive testing framework for guitar and electric guitar sample validation
47+
- Implemented quality assurance protocols for audio sample consistency
48+
49+
---
50+
51+
## Challenges & How I Overcame Them
52+
53+
- **Challenge:** Initial samples had varying bit depths and sample rates causing audio artifacts
54+
**Solution:** Listened to each sample and edited them using Audacity to remove silence and normalize the samples for consistent quality
55+
56+
- **Challenge:** Large File Size Issues - Base64 encoded samples were causing memory issues in the browser
57+
**Solution:** Optimized sample length to 2-3 seconds and implemented lazy loading patterns to load samples only when needed
58+
59+
---
60+
61+
## Key Learnings
62+
- Gained experience with audio format conversion and optimization for JavaScript applications
63+
- Enhanced understanding of string instrument timbre characteristics and optimal sampling strategies
64+
- Learned importance of audio normalization and preprocessing for web-based audio applications
65+
66+
---
67+
68+
## Next Week's Roadmap
69+
- Implement multi-sample support for wind instruments (flute, clarinet, oboe)
70+
- Develop cello multi-sample configuration for string section representation
71+
- Create automated testing suite for sample selection algorithm
72+
- Optimize performance and memory usage for large multi-sample libraries
73+
- Write week 11 blog post
74+
75+
---
76+
77+
## Resources & References
78+
- **[Web Audio API Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API)**
79+
- **[Audacity Audio Editor](https://www.audacityteam.org/)**
80+
- **Sample Sources:** [Philharmonia Orchestra](https://philharmonia.co.uk/resources/sound-samples/)
81+
- **Additional Samples:** [Freesound MTG Collection](https://freesound.org/people/MTG/)
82+
83+
---
84+
85+
## Acknowledgments
86+
Thank you to my mentors, the Sugar Labs community, and fellow contributors for ongoing support.
87+
88+
---
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
title: "DMP '25 Week 11 Update by Anvita Prasad"
3+
excerpt: "Improve Synth and Sample Feature for Music Blocks"
4+
category: "DEVELOPER NEWS"
5+
date: "2025-08-17"
6+
slug: "2025-08-17-DMP-25-AnvitaPrasad-week11"
7+
author: "@/constants/MarkdownFiles/authors/anvita-prasad.md"
8+
tags: "dmp25,sugarlabs,week11,AnvitaPrasad"
9+
image: "assets/Images/c4gt_DMP.webp"
10+
---
11+
12+
<!-- markdownlint-disable -->
13+
14+
# Week 11 Progress Report by Anvita Prasad
15+
16+
**Project:** [Music Blocks - Improve Synth and Sample Features](https://github.com/sugarlabs/musicblocks/issues/4539)
17+
**Mentors:** [Walter Bender](https://github.com/walterbender)
18+
**Assisting Mentors:** [Devin Ulibarri](https://github.com/pikurasa)
19+
**Reporting Period:** 2025-08-11 - 2025-08-17
20+
21+
---
22+
23+
## Goals for This Week
24+
- **Goal 1:** Implement multi-sample support for flute with comprehensive range coverage
25+
- **Goal 2:** Create cello multi-sample system for orchestral string representation
26+
- **Goal 3:** Refactor codebase architecture by moving sampling logic from synthutils.js to individual sample files
27+
28+
---
29+
30+
## This Week's Achievements
31+
32+
1. **Flute Multi-Sample System**
33+
- Implemented comprehensive 11-sample flute configuration (A5, B4, B6, C4, C6, D5, D7, E4, E6, F5, G4, G6) covering nearly 4 octaves with optimized breath articulation
34+
35+
2. **Cello Implementation**
36+
- Created 4-sample cello configuration (A3, C2, D3, G2) focusing on string resonance and bow articulation characteristics
37+
38+
3. **Major Architecture Refactoring**
39+
- Successfully moved sampling logic from centralized synthutils.js to individual instrument sample files (piano_multi.js, guitar_multi.js, etc.)
40+
- Implemented modular sample selection functions that account for unique timbral characteristics
41+
42+
4. **Enhanced Code Structure**
43+
- Established instrument-specific sample selection functions
44+
- Created maintainable and extensible codebase architecture
45+
46+
---
47+
48+
## Challenges & How I Overcame Them
49+
50+
- **Challenge:** Code Refactoring Complexity - Moving logic from synthutils.js while maintaining backward compatibility
51+
**Solution:** Implemented gradual migration strategy with wrapper functions and extensive testing to ensure no functionality was broken
52+
53+
- **Challenge:** Finding high-quality samples with varying bit depths and sample rates causing audio artifacts
54+
**Solution:** Listened to each sample and edited them using Audacity to remove silence and normalize the samples for consistent quality
55+
56+
---
57+
58+
## Key Learnings
59+
- Lazy loading patterns are crucial for web applications with large audio assets
60+
- Enhanced understanding of wind and string instrument characteristics and their unique sampling requirements
61+
- Gained experience in large-scale code refactoring while maintaining system stability
62+
63+
---
64+
65+
## Next Week's Roadmap
66+
- Complete final week with remaining instruments (clarinet, oboe, viola)
67+
- Implement volume normalization system across all multi-sample instruments
68+
- Create/update unit tests for all instrument implementations
69+
- Develop user documentation and integration guides
70+
- Plan future extensibility features for custom sample uploads
71+
72+
---
73+
74+
## Resources & References
75+
- **[Web Audio API Performance Best Practices](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Best_practices)**
76+
- **Sample Sources:** [Philharmonia Orchestra](https://philharmonia.co.uk/resources/sound-samples/)
77+
- **Additional Samples:** [Freesound MTG Collection](https://freesound.org/people/MTG/)
78+
79+
---
80+
81+
## Acknowledgments
82+
Thank you to my mentors, the Sugar Labs community, and fellow contributors for ongoing support.
83+
84+
---
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
title: "DMP '25 Week 12 Update by Anvita Prasad"
3+
excerpt: "Improve Synth and Sample Feature for Music Blocks"
4+
category: "DEVELOPER NEWS"
5+
date: "2025-08-24"
6+
slug: "2025-08-24-DMP-25-AnvitaPrasad-week12"
7+
author: "@/constants/MarkdownFiles/authors/anvita-prasad.md"
8+
tags: "dmp25,sugarlabs,week12,AnvitaPrasad"
9+
image: "assets/Images/c4gt_DMP.webp"
10+
---
11+
12+
<!-- markdownlint-disable -->
13+
14+
# Week 12 Progress Report by Anvita Prasad
15+
16+
**Project:** [Music Blocks - Improve Synth and Sample Features](https://github.com/sugarlabs/musicblocks/issues/4539)
17+
**Mentors:** [Walter Bender](https://github.com/walterbender)
18+
**Assisting Mentors:** [Devin Ulibarri](https://github.com/pikurasa)
19+
**Reporting Period:** 2025-08-18 - 2025-08-24
20+
21+
---
22+
23+
## Goals for This Week
24+
- **Goal 1:** Implement multi-sample support for remaining instruments (clarinet, oboe, viola)
25+
- **Goal 2:** Implement comprehensive volume normalization system across all instruments
26+
- **Goal 3:** Finalize multi-sample implementation for complete instrument coverage
27+
- **Goal 4:** Ensure consistent audio levels across all multi-sample instruments
28+
29+
---
30+
31+
## This Week's Achievements
32+
33+
1. **Clarinet Multi-Sample System**
34+
- Successfully implemented 9-sample clarinet configuration (A3, A6, B5, B6, D4, E3, E6, F#5, G4) with register-specific timbral characteristics
35+
36+
2. **Oboe Implementation**
37+
- Created 8-sample oboe configuration (A5, A6, B3, C5, D4, D6, F5, G4) capturing the instrument's distinctive nasal timbre and dynamic range
38+
39+
3. **Viola Multi-Sample System**
40+
- Implemented 5-sample viola configuration (A4, C3, C7, D4, E5, G3) with emphasis on the instrument's darker, warmer tone compared to violin
41+
42+
4. **Advanced Volume Normalization**
43+
- Developed sophisticated pre-processing volume normalization system with RMS analysis and automatic level matching to 1.0 standard Music Blocks volume
44+
45+
5. **Cross-Instrument Consistency**
46+
- Standardized targetVolume across all 8 multi-sample instruments, ensuring consistent playback levels
47+
48+
---
49+
50+
## Challenges & How I Overcame Them
51+
52+
- **Challenge:** Volume Inconsistency Across Instruments - Each instrument required different multiplier for volume normalization
53+
**Solution:** Developed instrument-specific volume normalization algorithms with RMS analysis to achieve consistent 1.0 standard across all instruments
54+
55+
---
56+
57+
## Key Learnings
58+
- Advanced understanding of audio normalization techniques and RMS analysis
59+
- Enhanced knowledge of woodwind and string instrument characteristics
60+
- Gained experience in creating comprehensive audio processing pipelines for web applications
61+
- Learned importance of consistent volume standards in multi-instrument systems
62+
63+
---
64+
65+
## Next Week's Roadmap
66+
- Complete project documentation and user guides
67+
- Conduct final testing across all implemented instruments
68+
- Prepare comprehensive project summary and future enhancement recommendations
69+
- Submit final deliverables and project wrap-up
70+
71+
---
72+
73+
## Resources & References
74+
- **[Web Audio API Performance Best Practices](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Best_practices)**
75+
- **[RMS Analysis and Audio Normalization Techniques](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API)**
76+
- **Sample Sources:** [Philharmonia Orchestra](https://philharmonia.co.uk/resources/sound-samples/)
77+
- **Additional Samples:** [Freesound MTG Collection](https://freesound.org/people/MTG/)
78+
79+
---
80+
81+
## Acknowledgments
82+
Thank you to my mentors, the Sugar Labs community, and fellow contributors for ongoing support.
83+
84+
---

src/sections/NavDropdown.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ const NavDropdown: React.FC<NavDropdownProps> = ({
5454
animate={{ opacity: 1, y: 0 }}
5555
exit={{ opacity: 0, y: 10 }}
5656
transition={{ duration: 0.2 }}
57-
className="absolute left-0 mt-2 w-56 rounded-xl bg-white dark:bg-gray-800 shadow-xl ring-1 ring-black dark:ring-white ring-opacity-5 dark:ring-opacity-10 overflow-hidden"
57+
className="absolute left-0 mt-[0.074rem] w-56 rounded-xl bg-white dark:bg-gray-800 shadow-xl ring-1 ring-black dark:ring-white ring-opacity-5 dark:ring-opacity-10 overflow-hidden"
5858
>
5959
<div className="py-2">
6060
{items.map((item) => (

0 commit comments

Comments
 (0)