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!

Hello !!

This week I worked upon Music chunks representation with matrix.


Once a matrix is played then it can be saved using ‘Save Matrix’ block as a chunk. After saving the chunk, when you click on that, the corresponding notes are being played. For a given chunk, its matrix can also be generated by using the ‘Show’ block. You just have to give the chunk as argument to the show block. After the matrix corresponding to the argument chunk is displayed, it can also be edited and saved again as another chunk 🙂 .
Now, the main advantage of chunk representation is that they can be plugged together and played sequentially as a melody.    today1

By working on chunks separately, students can focus on a particular place in the music, while building something that they will use as part of the larger whole in a latter lesson.

Next week I’ll work upon UI aspects like making matrix and notations movable, make notes that are longer than just one matrix box (half notes, dotted half notes,  and whole notes) and shorter than just one matrix box (some division, like eighth notes or triplets).


Downloadable notations yayy !!

Hi all

This week I added functionality of downloading the music notations as png image. The green download button does the job.

I started developing chunks representation with matrix but it will take a few more days to complete. For generating Tablature notations from matrix I found Vextab that can help us. But the problem is that it requires input as fret number and string number, and we are not dealing with them till now.

Apart from this, I made the matrix responsive, made notations scrollable.


Till next week I will complete music chunks representation with matrix and will make some basic music tools like playing music and recording sound etc.


Music Notation


This week I added functionality of transforming matrix into staff and marks on it into musical notation. Music notations can be made with ‘music notation’ block. Firstly, you’ve to set up the parameters in matrix block and generate the matrix. After clicking on desired notes in the matrix, click on the ‘Play Matrix’ block and then finally clicking upon ‘Music Notation’ block will generate notations for that matrix. More notations can be generated by marking different notes in the same matrix. You just have to click again the block after playing the edited matrix.

Screenshot from 2015-06-12 04:59:43

I also integrated the prototype I made earlier. It allows user to make note using note block, note value of each note can be set, like 4 denoted a quarter note, 8 denotes eighth note value and so on. In the palette, I also made different type of oscillators(sine, square, sawtooth), frequency, start and end time can be set for each oscillator. Music Chunks can also be made but with note block. Below is an example of hot cross buns melody played with chunks. It gives another modular way of representing music.

Screenshot from 2015-06-12 05:23:47

Oscillator : There are sine, sawtooth and square wave oscillators. Screenshot from 2015-06-12 05:29:28

My next week targets are generating tablature notation from matrix, developing chunks representation with matrix and making improvements in the work done so far.