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!


The New Path!

This week I made the solfa menu, which can be activated once the user clicks on ‘Solfa’ on top left corner of matrix. It allows to change the rows of the matrix dynamically (add/delete rows). Day before yesterday Devin, Walter and Marnen had a meeting together to come up with the most valuable direction for the remainder of the project. So, from now onwards I’ll work upon those ideas though it requires to step backwards with respect to some functionalities but this design will be more integrable and make use of more and more existing TBjs functionalities 🙂

Sketches they came up with:

00 MusicBlocks-Matrix-Generation 01 MusicBlocks-Matrix-Creates-New-Action-Block 02 MusicBlocks-Action-Block-Becomes-Chunk 03 MusicBlocks-How-to-Create-Sharp 04 MusicBlocks-Matrix-Two-Simultaneous-Notes 05 MusicBlocks-Matrix-Random-Pitch 06 MusicBlocks-Matrix-Advanced-Random-Possibility


New Mouse !!

  • Initial turtle blocks svg is replaced with an awesome mouse teacher svg made by Chie 🙂 .
  • Help menu updated!
  • Chunk transposition added in assemble workspace, Now transposition goes up or down and does not restart in the same octave.
  • Made play matrix block compatible with repeat and forever blocks.
  • Did matrix enhancements and made the cells of the matrix play their respective sounds when clicked.
  • Made ‘Play’ and ‘Stop’ button on top right corner. Play button now plays the music inside start block and Stop button stops the same.
  • Fixed minor bugs and did some code refactoring.



Assemble Workspace

Last week I was out on family trip 🙂 . This week I made the ‘assemble’ workspace in the activity. It lets the user to only assemble and play the chunks which he/she had developed in the home screen. Once a melody is assembled, it can be played using two blocks i.e. ‘repeat’ and ‘forever’. To play for fixed number of iterations the ‘repeat’ block is to be used and to play infinitely, use ‘forever’ block. User can shift from home screen to assemble workspace and vice-versa using the arrow icons at bottom right corner.

I also made the ‘play’ button(top right), which only plays the matrix made in home screen for the time being. The problem I am facing is, how do play button would know what to play on the screen, matrix or chunks (grouped or individually) and in which order.



Next Week I will develop welcome screen, add more functionalities to workspaces. I will also work upon Matrix UI and functionalities in it like adding/removing rows dynamically, splitting notes.

Few improvements this week:
  •  Music notations can be generated with varied time Signature.
  •  No need to play the matrix before generating the music notations.
  •  On changing time signature matrix reflects the effect visually as well as with sound(i.e. on changing time signature from 3/4 to 3/8 width of time columns get halved).
  •  Matrix and Music notations are now movable.
  •  Staff displays time signature next to treble sign.
  •  I changed the sound from monoSynth to modulated monoSynth, which sounds more pleasant than earlier .
This weekend me and Devin will discuss upon UI improvements of the activity and after that I’ll work upon the same next week!