Storyboard: The goal of this lab is to create a program that can play the song “row, row, row your boat”. The “play note” block will be used to execute this as well as higher order functions and abstract data types. Constructors and selectors will be utilized as well.
Logic: I created several blocks including “note, pitch and length”, “pitch from note”, “length from note”, and some variables as well including length, pitch and note. Lists were created with the inputs of the note pitch and length block that was connected to the list of notes that was previously given. Blocks were specified to track and record the beats per minute or second and this gave the coder more control over the intended sounds. Using the map block with the ADT blocks created a reporter block that transposed or shifted a list of notes.
Steps:
- First, I created a play note block
- I placed the list within this block, after the item random option
- I specified this by including the information of “1 beat”
- I then moved onto a block called “for each”
- I created a “note” variable and included the list in this as well
- Within this block, I included a command that said “play note for 1 beat”
- It looked like what is pictured below.

- I then created a block very similar to the one pictured above, however this block included the “map” specification
- I included the addition operators and typed 5 for the second space
- Lastly, I created a third for each block and included “keep items such that” with an operator and the list included
- I placed the play not block within this and specified it by included only one beat
- It ended up looking like what is pictured below.

- Finally, i made a reporter that said “row row row your boat”
- I included a reporter for this
- Within this reporter, I included a list with 10 blocks of “note, pitch and length”
- I included specific numerical values within each space
- These notes corresponded with the lists provided.
- lastly, I tested the program and the code and finished by placing the “row row row your boat” reporter into the play song block I created.
Problems: Within this lab, I encountered several issues that prevented the code from successfully completing the intended function. Some of these obstacles included an oversimplified block that did not complete its intention. I fixed this by editing the block and adding extra blocks within the edit function in order to specify the intention.