pxt-ev3/docs/tutorials/music-brick.md
Galen Nickel 67153fccc5
Reduce the use of @boardname@ (#527)
* Reduce the use of @boardname@

* Use literal 'EV3 Brick' string instead

* Use the new 'nickname' form
2018-04-16 16:15:58 -07:00

2.7 KiB

Music Brick

Introduction @fullscreen

Transform your @boardname@ into a musical instrument!

Press my buttons message

Step 1

Open the ||brick:Brick|| Toolbox drawer. From the Screen section, drag out a ||brick:show string|| block onto the Workspace, and drop it into the ||loops:on start|| block. You should hear and see the block click into place.

brick.showString("Hello world", 1)

Step 2

In the ||brick:show string|| block, type the text "Press my buttons to make music!" to replace "Hello world".

brick.showString("Press my buttons to make music!", 1)

Step 3

Open the ||brick:Brick|| Toolbox drawer. From the Buttons section, drag out an ||brick:on button|| block onto the Workspace (you can put it anywhere).

brick.buttonEnter.onEvent(ButtonEvent.Pressed, function () {

})
brick.showString("Press my buttons to make music!", 1)

Step 4

Open the ||music:Music|| Toolbox drawer. Drag out 5 ||music:play tone|| blocks onto the Workspace, and drop them into the ||brick:on button|| block. Note: you can also right-click on a block and select "Duplicate" to copy blocks.

brick.buttonEnter.onEvent(ButtonEvent.Pressed, function () {
    music.playTone(0, music.beat(BeatFraction.Half))
    music.playTone(0, music.beat(BeatFraction.Half))
    music.playTone(0, music.beat(BeatFraction.Half))
    music.playTone(0, music.beat(BeatFraction.Half))
    music.playTone(0, music.beat(BeatFraction.Half))
})
brick.showString("Press my buttons to make music!", 1) 

Step 5

In the ||music:play tone|| blocks, use the drop-down menu to select a note to play for each block. You can also set the duration to play each note for.

Tone selector keyboard

brick.buttonEnter.onEvent(ButtonEvent.Pressed, function () {
    music.playTone(440, music.beat(BeatFraction.Half))
    music.playTone(494, music.beat(BeatFraction.Half))
    music.playTone(392, music.beat(BeatFraction.Half))
    music.playTone(196, music.beat(BeatFraction.Half))
    music.playTone(294, music.beat(BeatFraction.Whole))
})
brick.showString("Press my buttons to make music!", 1)

Step 6

Now, plug your EV3 Brick into the computer with the USB cable, and click the Download button at the bottom of your screen. Follow the directions to save your program to the brick.

You can add more ||brick:on button|| blocks to the Workspace and create other ||music:play tone|| melodies when different buttons are pressed to transform your brick into a musical instrument!