The Last Week!!


This week I made the ‘tuplet’ block. I improved transposition, polyphony, rhythmic dot and notation blocks.

I didn’t tested Music-Blocks on firefox, Devin did that and he found a major bug i.e. sound is not playing correctly in firefox, rather it plays for infinitely long. I am working on it !

I made a video on how to use tuplet. Check it out here: Tuplet Functionality

Things remaining on the stack are adding comments in the code, updating readme and refactoring which I will do 2-3 days!



This week I divided all the blocks into 4 palettes namely,

  • Matrix Palette : this palette contains various tools used in exploring short musical concepts with the “matrix” clamp.
  • Chunk Palette :This palette contains user generated chunks as well as related tools, such as the “show chunk”, “multiply/divide beat value”, “note” blocks.
  • Play/Save Palette : this palette contains blocks that one uses to either perform or notate their “pitch”, “note”, “chunk” or rhythmic creations.
  • Tone Palette : contains square, sine, sawtooth blocks.(Palettes have random SVGs for now).

Polyphony functionality is added in matrix, User can able to set more than one note at a time on the matrix.


“Show” block functionality -The block takes chunk as the input and generates corresponding matrix of the input chunk, it helps user to see which notes are there inside the chunk. User can edit them and also save as new chunk.


“Play forward”/”Play Backward” block play given input chunk in forward/backward direction respectively.

“Rhythmic Dot” block – Dot increases the duration of the basic note by half of its original value. It takes “rhythm” block as the input and makes all the notes of that rhythm as dotted notes.


“Multiply all beat value” – multiplies the beat values of all the notes inside the input chunk by the given 0th argument. For eg:If the arg is 4, a note (in the input chunk) with original beat value 2 will have final beat value of 8 i.e it will be converted from half note/minim to eighth note/quaver. Similarly “divide all beat values” divides the beat values of all the notes inside the input chunk by the given 0th argument.


There are few things remaining on the stack which I’ll complete by next and last week:

  • Tuplet, Tie blocks are to be made.
  • Music notations generated are not accurate, I’ve to fix them.
  • Few other bugs needs attention.
  • After that code refactoring is to be done and README is to be updated.

Thanks! See you next week 🙂



Now matrix can be generated by using ‘Pitch’ and ‘Rhythm’ block to the matrix clamp block.

Matrix can be made with different beat-value notes, you just have to add a corresponding rhythm block as shown in the example.

‘Sharp’ block increases the pitch by a semitone like ‘sol’ => ‘sol#’. Similarly ‘Flat’ block decreases pitch by a semitone like ‘re’ => ‘re♭’.



If you leave any column empty in the matrix, it acts like ‘Rest note’.

‘Note’ block in the ‘music’ palette plays the pitch block inside it.


Music Notations can be generated using ‘Notation’ block, ‘Meter’ block is to be given as the 0th argument which sets the time signature of the music notation. The ‘Notation’ block takes a ‘Chunk’ as the input.


Now, I’ll work upon chunk functionalities like when user saves the matrix, a corresponding action block is produced for the saved chunk. This will let user to understand more deeply what is happening inside the chunk. Below is the image of what I’m talking about:

01 MusicBlocks-Matrix-Creates-New-Action-Block

I’ll also add triplet, rhythmic dot blocks to add on to the rhythm functionalities and also make the note block play multiple notes at the same time.

See you!