Skip to content

Latest commit

 

History

History
182 lines (152 loc) · 19.9 KB

README.md

File metadata and controls

182 lines (152 loc) · 19.9 KB

Google Summer Of Code 2020 - Final Work Product

sugarlabs/musicblocks

author:sksum (Saksham Mrig)


Project Details

Abstract/Summary

Spending the summer of 2020 working on MusicBlocks has been an amazing experience. I'm very grateful to Sugarlabs for accepting my contributions and supporting me through the process of fixing bugs and adding new features.
For the past 4 months I, along with my peers, have been working tirelessly to make musicblocks better. I have successfully added new features, widgets, new Blocks and also refactored a lot of code.
Issues solved this summer : 71 (complete List of issues at the bottom) over a course of roughly 90 days, these included new additions, enhancements and bug fixes.


 

Highlights

  • MusicKeyboard and Midi:
    The MusicKeyboard widget in MusicBlocks now considers BPM and Tempo info to generate notes. The MusicKeyboard widget now accepts Midi keyboard (USB) as an input source with the help of the Web MIDI API. There are still some performance issues with the .mid file input  

    keyboard  

  • Widgets:
    Oscilloscope widget was added this summer which allows users to visualize musical waveforms.  

    oscilloscope  

    Issues related to pitch slider were mostly resolved.

    We have extended the functionality of the temperament widget to create multiple custom pitches.  

    pie  

    Statistics are now displayed as a widget and we have added new Stats which are better oriented for musical parameters and some of them are used to suggest tags when publishing.  

    stats  

  • Palette & Palette menu:
    Palette and Palette menu buttons now use simple HTML/CSS instead of CreateJS, this has made the user experience much smoother and also handles any issues pertaining to layout distortion on resize.  

    palette  

  • on everybeatdo:
    This is a new block which uses a separate turtle as a beat companion to run tasks on every beat regardless of note playing, whereas the on everynotedo block only worked when a note was queued in the project.

  • Search:
    I helped revamp the jQuery UI Search widget to use images as identifiers. The widget now also uses id-item pairs to maintain uniqueness of block-search queries.  

    search  

  • New Blocks:
    Some of the blocks I helped develop this summer were :

      along with hover sensors, crescendo "within a note", set grid and more.

     

    pitch  


 

You can get the complete list of issues closed and my Pull requests from CODE or here :

Code
ID Issue PR
1973 G_5 plays too short 2246
2253 Default Strong and Weak for Common Meters 2269
2265 regression in change in pitch 2274
2288 Paste JSON only works once 2294
2293 Turtle loses track of position on running a turtle movement block after a bezier block is executed 2294
2329 Display Grid Block 2337
2353 mouse over/mouse out events not working as expected 2354
2373 Measurement Blocks' Clamp does not work 2377
2366 Searching a blocks loads two blocks of the same type 2379
2385 Revamp Palette 2392
2241 Recommended Tags (on Planet) arbitrated by blocks used 2430
1454 Crescendo "within a note" 2437
604 Stereo (Left <--> Right) Block 2445
2444 Oscilloscope Widget 2447
2495 Regression in Simple Tuplet and Tuplet (Phrase Maker) 2515
2466 close search after selecting a block 2502
2494 Use Print Block for Display Grid 2501
2482 Mouse/Turtle should not be draggable when shrunk 2491
2474 oscilloscope widget should auto-open on play 2492
2052 Enable scrolling in palettes menu 2392
1860 musickeyboard only saves default synth 2296
2302 Set Relative Volume is Broken 2303
2221 "Hover" as a sensor event 2328
2310 Does Store in Box have two name inputs? 2321
1899 Accept MIDI input 2322
2334 Funny behavior with the multiply note value clamp 2343
2263 Repeat of zero (and below) 2355
2389 Set Pitch Number Offset does not work 2394
2317 Repetition of block names when searching a block name using search 2421
2420 Three "do" in search | More description appreciated 2518
1463 Make middle mouse scroll more sensitive 2443
855 Drag to edge of screen with "enable scrolling" on should scroll the screen 2448
1891 Note Counter and Sum Note Values 2456
2465 upgrade to latest tone.js release 2470
2234 Sample Instruments Pitch is not Transformed 2470
2434 Update Tone.js to V 14.7.39 2470
2485 Two Design Issues with Pitch Slider 2493
2521 Putting pitch blocks directly into trash does not generate silence 2523
2520 Run Slowly and Step-by-Step is broken 2524
2527 Increase Click and Drag Area in Palette 2529
2433 right click save stack 2433 2433
1744 Recorder breaks synth 2490
1898 Combination of On strong beat do and On every note do not working 2378
1882 Tag Suggestions for Planet Publish 2430
1853 Upload and download functionality in Planet does not seem to work 2409
2409 Fix "Open file" button in planet 2409
1118 Start is initiated when saving as .wav? 2542
2390 On every beat do is always one beat behind 2541
2351 Temperament Widget Enhancements 2365
2350 Temperament: Multiple Custom Pitches 2365
2349 Preview for Temperament Widget Only Plays Octave 2365
2348 Custom Pitch (via Temperament) not loaded, not present in palette 2352
2347 Unknown Block on Custom Temperament Save 2352
2254 Blocks generated by Temperament Widget are jumbled at the left side of the screen 2352
2190 Temperament Widget: action block generating issue 2352
857 Statistics better oriented for musical parameters 2540
2513 Regression on Rawgit 2534
1767 missing Meter Widget features 2530
2484 Spurious Initiation when a Widget is open 2509
1875 Clicks During Musical Keyboard based on 'meter' and 'tempo' 2507
2251 Beat Events triggered regardless of whether a note is played 2378
2227 Code not running with "on strong beat", "on weak beat", and "on every note" 2378
2252 On Every Beat Do 2378
2458 Upon exit, upon reload, MB asks if you would like to save project, but does not `` 2531
2264 Pitch to hertz block always shows undefined for the first note `` 2545
2184 Widget reopen after some time 2509
2533 phrase maker and hertz 2553
2483 Action Block support for Phrase Maker 2553
 

 

Thank You for Reading
Regards -
Saksham Mrig
      

Contact: