GSoC’17 with Sugar Labs – Final Report

Aim of the Project :

To create Timbre Widget for Music Blocks

Proposed Goals :

To implement my  Timbre Widget Mockup , I had proposed the following goals :

  • To create User interface of Timbre Widget and include functionalities of Synth, Oscillator , Effects, Envelope and effects.
  • Modifying existing “set-synth” block and creation of “set-timbre” block.
  • Provide audio feedback according to the custom timbre set by the user obtained by  integrating Tone.js API.
  • Enhance user experience with pictorial representation.

Development Period:

  • My work started with creation of different effects such as Tremolo, chorus, phaser and distortion for Music Blocks and specifically for Timbre Widget of Music Blocks . You can see my contribution here.
  • After the inclusion of effects, I started working on the User Interface of Timbre Widget for it’s various options of Synth, Oscillator , Envelope, Filter and Effects.The user interface had to be in sync with the existing UI of Music Blocks. This is how Timbre Widget with the “set-timbre” block with note values looks :ttttttttt
  • For detailed UI of each option of Timbre Widget, please refer my earlier blog post.
  • After the User interface was made, minor tweaks were done according to the suggestions given by my mentors. User can now use “multiple” filters instead of previously decided single filter as a part of the custom timbre. The User Interface was modified in such a way that it caters well to the children using Music Blocks.
  • After setting up the UI, I integrated the UI with Tone.js API with the help of co-intern , Prachi who is selected as part of Outreachy program.
  • A fully functional widget has been made but it is under testing. The code will be merged once we fix some issues with minor tweaks.

Link to my work :

  • You can find all my work related to Timbre Widget in this Pull Request.
  • Branch on my fork can be found here.

 

Further improvements:

  • As a part of the widget, pictorial representation such as graphs should be added to make the widget conceptually rich. The “ADSR” graph for envelope is currently a work in progress.
  • Macros for Timbre widget needs to decided .

Conclusion :

Acknowledgement :

I would like to thank my mentors Walter Bender and Devin Ulibarri for their constant mentorship and guidance. I would also like to thank my co-intern Prachi for helping achieve our proposed goals working as a team. A big thanks to Sugar Labs community for being supportive and providing valuable feedback and suggestions.

I would like to express my sincere gratitude and appreciation to Google Summer of Code (GSoC) for providing such a wonderful platform for learning and helping me to be an active member of Open Source Community.

 

 

 

Leave a comment