//@highlight
scene.setBackgroundImage(img`.`)
{Step 3}
Choose your art
🖼
- :paint brush: Click the empty box inside
||scene(noclick):set background image to [ ]||
to open the image editor.
- :mouse pointer: Here, you can create your own artwork, or you can click the Gallery tab
to choose our Zune screen.
//@highlight
scene.setBackgroundImage(zuneassets.Zune)
{Step 4}
- :binoculars: Take a look at the window of your music player.
Do you see the screen you chose?
{Step 5}
Set a Song
🎵 🎵 🎵
Load a song when the up-arrow is pressed.
- :game: From
||controller: Controller||
, drag the
||controller: on [up] button [pressed]||
bundle into an empty area of the workspace.
//@highlight
controller.up.onEvent(ControllerButtonEvent.Pressed, function () {
thisSong = music.createSong()
scene.setBackgroundImage(img`.`)
})
{Step 6}
- :mouse pointer: click the empty
||music(noclick): song [ ]||
block to open the music editor.
- :mouse pointer: Create a song (or switch to My Assets to open one that we’ve created for you.)
controller.up.onEvent(ControllerButtonEvent.Pressed, function () {
//@highlight
thisSong = music.createSong(assets.song`curious-blob`)
scene.setBackgroundImage(img`.`)
})
{Step 7}
Add Album Art
🧑🏽🎨
- :paint brush: Click the empty box inside
||scene(noclick):set background image to [ ]||
to open the image editor.
- :mouse pointer: Create an album cover for your song
(or click the Gallery tab
to choose pre-made album art.)
controller.up.onEvent(ControllerButtonEvent.Pressed, function () {
thisSong = music.createSong(assets.song`curious-blob`)
//@highlight
scene.setBackgroundImage(zuneassets.curiousblobalbumart)
})
{Step 8}
- :binoculars: Look at your music player again.
Does the screen change when you press the up arrow?
~hint Why don’t I hear it 🤷🏽
So far, we have only added the code to load the song. We will add the code to play it in the next step.
hint~
{Step 9}
▶️ Press Play
Add code to play your song when you press the (A) button.
- :game: From
||controller: Controller||
drag the
||controller: on [A] button [pressed]||
bundle into an empty of the workspace.
Now when you press the (A) button, it will play whatever you have loaded into the thisSong variable.
~hint I’m getting an error ⚠️
If you try pressing play before you choose a song, you’ll get a “sim error.”
This just means that it couldn’t find a song to play.
(We’ll fix this in step 11.)
You’ll need to reload the music player and try again, but this time, make sure to press the up-arrow before pressing the (A) button.
hint~
let thisSong: music.Playable = null
controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
music.play(thisSong, music.PlaybackMode.LoopingInBackground)
})
let thisSong: music.Playable = null
controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
music.play(thisSong, music.PlaybackMode.LoopingInBackground)
})
{Step 10}
- :binoculars: Look at your music player again.
Press the up-arrow to load your song and then press the (A) button to play it!
~hint I don’t hear anything 🔈
There are a few reasons you might not be able to hear your song even if the code is correct.
- Make sure the music player is unmuted (🔊)
- Try turning up the volume on your computer
- Add a
||music:set volume [100]||
block to your||loops(noclick):on start||
container.
If you still can’t hear your song, go back and look at previous steps to make sure your code matches the instructions.
hint~
~hint I’m getting an error ⚠️
If you try pressing play before you choose a song, you’ll get a “sim error.”
This just means that it couldn’t find a song to play.
(We’ll fix this in the next step.)
You’ll need to reload the music player and try again, but this time, make sure to press the up-arrow before pressing the (A) button.
hint~
let thisSong: music.Playable = null
controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
music.play(thisSong, music.PlaybackMode.LoopingInBackground)
})
{Step 11}
Avoid Errors
Add code to make sure a song is loaded before you try to play it.
:game: From
||logic: Logic||
drag
||logic: if <true> then||
into the beginning of the
||controller(noclick): on [A] button [pressed]||
container already in the workspace.:mouse pointer: Move
||music(noclick): play [thisSong] [looping in background]||
into the
||logic(noclick): if <true> then||
container just added in the workspace.
let thisSong: music.Playable = null
controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
music.play(thisSong, music.PlaybackMode.LoopingInBackground)
})
let thisSong: music.Playable = null
controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
//@highlight
if (true) {
music.play(thisSong, music.PlaybackMode.LoopingInBackground)
}
})
{Step 12}
- :game: From
||variables: Variables||
drag
||variables: thisSong||
into the top bar of
||logic(noclick): if <true> then||
to replace<true
>.
Now, when you press the (A) button, the code will check to see if there is a value inside thisSong before playing,
let thisSong: music.Playable = null
controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
if (true) {
music.play(thisSong, music.PlaybackMode.LoopingInBackground)
}
})
let thisSong: music.Playable = null
controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
//@highlight
if (thisSong) {
music.play(thisSong, music.PlaybackMode.LoopingInBackground)
}
})
{Step 13}
- :game: You can add more songs by dragging out three more
||controller: on [up] button [pressed]||
bundles and changing||controller:up||
to||controller:down||
,||controller:left||
, and||controller:right||
.
- :mouse pointer: Add a new song and new album art to each option.
controller.up.onEvent(ControllerButtonEvent.Pressed, function () {
thisSong = music.createSong(assets.song`falling-blossoms`)
scene.setBackgroundImage(zuneassets.fallingblossomsalbumart)
})
//@highlight
controller.down.onEvent(ControllerButtonEvent.Pressed, function () {
thisSong = music.createSong(assets.song`bow-the-mighty-oak`)
scene.setBackgroundImage(zuneassets.bowmightyoakalbumart)
})
//@highlight
controller.left.onEvent(ControllerButtonEvent.Pressed, function () {
thisSong = music.createSong(assets.song`curious-blob`)
scene.setBackgroundImage(zuneassets.curiousblobalbumart)
})
//@highlight
controller.right.onEvent(ControllerButtonEvent.Pressed, function () {
thisSong = music.createSong(assets.song`jolliest-of-rogers`)
scene.setBackgroundImage(zuneassets.jolliestrogersalbumart)
})
{Step 14}
- :binoculars: Test your songs on the music player.
Press an arrow to load your song and then press the (A) button to play.
Now try another arrow. Do you notice that the new song plays right over top of the old one? Let’s fix that.
let thisSong: music.Playable = null
controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
if (thisSong) {
music.play(thisSong, music.PlaybackMode.LoopingInBackground)
}
})
{Step 15}
- :headphones: From
||music:Music||
, drag
||music: stop all sounds||
into the top of the
||controller(noclick): on [A] button [pressed]||
container that’s already in the workspace.
Now the code will stop the old song before playing the new one.
let thisSong: music.Playable = null
controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
if (thisSong) {
music.play(thisSong, music.PlaybackMode.LoopingInBackground)
}
})
controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
//@highlight
music.stopAllSounds()
if (thisSong) {
music.play(thisSong, music.PlaybackMode.LoopingInBackground)
}
})
{Step 16}
⏹️ Stop the Music
What if you want to stop your song without starting a new one?
Let’s make the (B) button stop all sounds.
- :game: From
||controller: Controller||
drag the
||controller: on [B] button [pressed]||
bundle into an empty of the workspace.
controller.B.onEvent(ControllerButtonEvent.Pressed, function () {
music.stopAllSounds()
})
controller.B.onEvent(ControllerButtonEvent.Pressed, function () {
music.stopAllSounds()
})
{Step 17}
- :binoculars: Test your final music player.
- The arrows should load a song
- The (A) button should play the loaded song
- The (B) button should stop all songs
controller.B.onEvent(ControllerButtonEvent.Pressed, function () {
music.stopAllSounds()
})
{Finale}
🎉 Way to Go 🎉
You have made your own prototype Zune!
This doesn’t work quite like the original, but when you click Done, your code will open in our project editor and you can play around to make your creation work more like the first Zune did.
Don’t forget to share your music with your friends and family!
let thisSong: music.Playable = null
controller.up.onEvent(ControllerButtonEvent.Pressed, function () {
thisSong = music.createSong()
scene.setBackgroundImage(img`.`)
})
controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
music.play(thisSong, music.PlaybackMode.LoopingInBackground)
})
music.play(thisSong, music.PlaybackMode.LoopingInBackground)
music.setVolume(100)
if (thisSong) {
music.play(thisSong, music.PlaybackMode.LoopingInBackground)
}
{
"theme": "zune"
}
zune-assets=github:kiki-lee/zune-assets#v0.0.13
music.setVolume(20)
{
"README.md": " ",
"assets.json": "",
"images.g.jres": "{\n \"song6\": {\n \"data\": \"00a0000408060206001c00010a006400f401640000040000000000000000000000000000000002f50000000100030d192701000400012906000800012a0a000c00012910001200012a1600180001291e001f0001252200240001222400260001253000310003111d2731003400012936003800012a3a003c00012940004200012a46004700012a47004900012c4e005000012a5400560001295a005c00012a5e005f0002121e60006100031420296a006c00012570007200012272007600012588008a0001228a008c0001258e009000012790009100035561279100920001689600980001279c009e000125a200a4000127a600a700021863a700a8000125ac00ae000161b200b300011eb300b4000120b800ba00011ebe00c000020d2209010e02026400000403780000040a000301000000640001c80000040100000000640001640000040100000000fa0004af00000401c80000040a00019600000414000501006400140005010000002c0104dc00000401fa0000040a0001c8000004140005d0076400140005d0070000c800029001f40105c201f4010a0005900114001400039001000005c201f4010500058403050032000584030000fa00049001000005c201f4010500058403c80032000584030500640005840300009001049001000005c201f4010500058403c80064000584030500c8000584030000f40105ac0d000404a00f00000a0004ac0d2003010004a00f0000280004ac0d9001010004a00f0000280002d00700040408070f0064000408070000c80003c800c8000e7d00c80019000e64000f0032000e78000000fa00032c01c8000ee100c80019000ec8000f0032000edc000000fa0003f401c8000ea901c80019000e90010f0032000ea4010000fa0001c8000004014b000000c800012c01000401c8000000c8000190010004012c010000c80002c800000404c8000f0064000496000000c80002c2010004045e010f006400042c010000640002c409000404c4096400960004f6090000f40102b80b000404b80b64002c0104f40b0000f401022003000004200300040a000420030000ea01029001000004900100040a000490010000900102d007000410d0076400960010d0070000c8007f01000001000201080400050001060600070001050a000b0001060c000d00020509120013000105160017000201061800190001051c001d000201061e001f000105240025000205092800290001052a002b0001062e002f0002010530003100030106073400350001063600370001053a003b0001063c003d000205094200430001054600470001064800490001054c004d0001064e004f000201055400550001095800590001015e005f0002010760006100030105086400650001066600670001056a006b0001066c006d000205097000710001057200730001067600770001067800790001057c007d0001057e007f0001068200830002010684008500020509880089000201058a008b0001068e008f000106900091000201059400950001069600970001059a009b0001069c009d00020609a000a1000106a200a3000106a600a700020105a800a900020106ac00ad00020105ae00af00020106b200b3000105b400b50003010609b800b900020105ba00bb00020106be00bf0003010508\",\n \"mimeType\": \"application/mkcd-song\",\n \"displayName\": \"falling-blossoms\",\n \"namespace\": \"mySongs.\"\n },\n \"song11\": {\n \"data\": \"006e000408040400001c00010a006400f401640000040000000000000000000000000005000004ae0000000100010a06000700010a0e000f00010f0f001000011110001100011214001500011118001900010f1c001d00010a20002100014b26002700014b30003100011232003300011433003400011234003500011138003900010f3c003d00014b40004100010a46004700010a5c005e00010a60006200014b66006800014b7000710001167200730001577300740001167400750001147600780001167800790001127a007b0001147c007d00011105001c000f0a006400f4010a0000040000000000000000000000000000000002900000000200010a06000700010a0e000f00010f0f001000011110001200011214001600011118001a00010f1c001d00010a20002200014b26002700014b30003100011232003300011433003400011234003600011138003a00010f3c003e00014b40004200010a46004800010a5c005e00010a60006200014b66006800014b70007200010a76007700014b7c007d00014b06001c00010a006400f401640000040000000000000000000000000000000002600000000200010a06000800010a1c001d00010a20002200014b26002800014b30003200010a36003800010a3c003e00014b40004200010a46004800010a5c005e00010a60006200014b66006800014b70007200010a76007700014b7c007d00014b09010e02026400000403780000040a000301000000640001c80000040100000000640001640000040100000000fa0004af00000401c80000040a00019600000414000501006400140005010000002c0104dc00000401fa0000040a0001c8000004140005d0076400140005d0070000c800029001f40105c201f4010a0005900114001400039001000005c201f4010500058403050032000584030000fa00049001000005c201f4010500058403c80032000584030500640005840300009001049001000005c201f4010500058403c80064000584030500c8000584030000f40105ac0d000404a00f00000a0004ac0d2003010004a00f0000280004ac0d9001010004a00f0000280002d00700040408070f0064000408070000c80003c800c8000e7d00c80019000e64000f0032000e78000000fa00032c01c8000ee100c80019000ec8000f0032000edc000000fa0003f401c8000ea901c80019000e90010f0032000ea4010000fa0001c8000004014b000000c800012c01000401c8000000c8000190010004012c010000c80002c800000404c8000f0064000496000000c80002c2010004045e010f006400042c010000640002c409000404c4096400960004f6090000f40102b80b000404b80b64002c0104f40b0000f401022003000004200300040a000420030000ea01029001000004900100040a000490010000900102d007000410d0076400960010d0070000c800450100000100020e050600070001050800090002050a0c000d000202050e000f000106120013000105140015000202061800190002120a1c001d00030e02051e001f00010620002100020e0524002500010526002700010528002900010a2a002b0001052c002d0001022e002f00010530003100020e053200330001063400350001003600370001003800390005120105080a3a003b0001063c003d0001003e003f0002000540004100020e054600470001054800490002050a4c004d000202054e004f0001065200530001055400550002020658005900010a5c005d00030e02055e005f00010660006100020e0564006500010566006700010568006900010a6a006b0001056c006d0001026e006f00010570007100020e05720073000106740075000100760077000100780079000301050a7a007b0001067c007d0001007e007f00020005\",\n \"mimeType\": \"application/mkcd-song\",\n \"displayName\": \"curious-blob\",\n \"namespace\": \"mySongs.\"\n },\n \"song10\": {\n \"data\": \"00b4000408060400001c00010a006400f401640000040000000000000000000000000005000004780018001900015019001c00011222002300010d48004900011249004c0001144e004f00015552005300011472007300010d78007900011179007d00011282008300010d8e008f0001128f00920001149600970001559c009d000114a200a3000112a800a9000150b400b5000155b500b8000157be00bf00011405001c000f0a006400f4010a000004000000000000000000000000000000000290000600080001500c000e00010f12001400014e18001a00010d2e00300001503400360001503600380001503c003e00010f42004400014e48004a00010d6000620001506600680001506c006e00010f72007400014e78007a00010d8e00900001149600980001939c009e000112a200a4000150a800aa00010dae00b000010ab400b6000149ba00bc000108be00c000015006001c00010a006400f401640000040000000000000000000000000000000002b0000700080001500d000e00010f13001400014e18001900020d5c19001a00011e2e00300001503400360001503600380001503c003e00010f42004400014e48004900030d1b6149004b00025c634e004f00021e2552005300025c636000620001506600680001506c006e00010f72007400014e78007a00010d8e008f0001149600980001939c009e000112a200a4000150a800aa00010dae00b000010ab400b60002491bba00bc000108be00c00002502009010e02026400000403780000040a000301000000640001c80000040100000000640001640000040100000000fa0004af00000401c80000040a00019600000414000501006400140005010000002c0104dc00000401fa0000040a0001c8000004140005d0076400140005d0070000c800029001f40105c201f4010a0005900114001400039001000005c201f4010500058403050032000584030000fa00049001000005c201f4010500058403c80032000584030500640005840300009001049001000005c201f4010500058403c80064000584030500c8000584030000f40105ac0d000404a00f00000a0004ac0d2003010004a00f0000280004ac0d9001010004a00f0000280002d00700040408070f0064000408070000c80003c800c8000e7d00c80019000e64000f0032000e78000000fa00032c01c8000ee100c80019000ec8000f0032000edc000000fa0003f401c8000ea901c80019000e90010f0032000ea4010000fa0001c8000004014b000000c800012c01000401c8000000c8000190010004012c010000c80002c800000404c8000f0064000496000000c80002c2010004045e010f006400042c010000640002c409000404c4096400960004f6090000f40102b80b000404b80b64002c0104f40b0000f401022003000004200300040a000420030000ea01029001000004900100040a000490010000900102d007000410d0076400960010d0070000c8008401000001000201080400050001060600070001050a000b0001060c000d00031205091200130001051600170001061800190001051c001d0001061e001f00010524002500031205092800290001052a002b0001062e002f0002010530003100030106073400350001063600370001053a003b0001063c003d00031205094200430001054600470001064800490001054c004d0001064e004f00010554005500031201095800590001015e005f00010760006100030105086400650001066600670001056a006b0001066c006d00031205097000710001057200730001067600770001067800790001057c007d0001057e007f000106820083000201068400850003120509880089000201058a008b0001068e008f000106900091000201059400950001069600970001059a009b0001069c009d0003120609a000a100020106a200a3000106a600a700020105a800a9000106ac00ad000105ae00af000106b200b300020105b400b50003120609b800b90003120509ba00bb000106be00bf00051201050809\",\n \"mimeType\": \"application/mkcd-song\",\n \"displayName\": \"bow-the-mighty-oak\",\n \"namespace\": \"mySongs.\"\n },\n \"song7\": {\n \"data\": \"007c000408040400001c00010a006400f401640000040000000000000000000000000005000004ae000200040001570400050001160800090001140c000e0001161000120001571400160001161600180001141a001c00010d2c002e00014b2e003000014b30003100010f32003300010f34003600014b36003700010d3c003e0001084200430001574400450001164800490001144c004d00011650005100015756005700011b5c005d0001196c006d00014b6e006f00014b70007100010f72007300010f74007500014b7600770001117c007d00010d05001c000f0a006400f4010a000004000000000000000000000000000000000272000c000d00010d14001500010d1a001b00010d20002100010d2e002f00010c30003100010f32003300010f36003700010d3c003d0001084c004d00010d54005500010d5a005b00010d60006100010d6c006d00014b6e006f00014b70007100010f72007300010f7600770001117c007d00010d06001c00010a006400f4016400000400000000000000000000000000000000025a0000000100020d190c000e00020d1914001600020d191a001c00020d1920002200020d192c002e00020d193c003e00010840004100020d194c004d00020d1954005500020d195a005b00020d1960006100020d196c006e00020d1909010e02026400000403780000040a000301000000640001c80000040100000000640001640000040100000000fa0004af00000401c80000040a00019600000414000501006400140005010000002c0104dc00000401fa0000040a0001c8000004140005d0076400140005d0070000c800029001f40105c201f4010a0005900114001400039001000005c201f4010500058403050032000584030000fa00049001000005c201f4010500058403c80032000584030500640005840300009001049001000005c201f4010500058403c80064000584030500c8000584030000f40105ac0d000404a00f00000a0004ac0d2003010004a00f0000280004ac0d9001010004a00f0000280002d00700040408070f0064000408070000c80003c800c8000e7d00c80019000e64000f0032000e78000000fa00032c01c8000ee100c80019000ec8000f0032000edc000000fa0003f401c8000ea901c80019000e90010f0032000ea4010000fa0001c8000004014b000000c800012c01000401c8000000c8000190010004012c010000c80002c800000404c8000f0064000496000000c80002c2010004045e010f006400042c010000640002c409000404c4096400960004f6090000f40102b80b000404b80b64002c0104f40b0000f401022003000004200300040a000420030000ea01029001000004900100040a000490010000900102d007000410d0076400960010d0070000c8009c0100000100020e050200030001050400050001050600070001050800090002050a0a000b0001050c000d000202050e000f000106100011000105120013000105140015000202061600170001061800190002050a1a001b0001051c001d0001071e001f000107200021000202052200230001052400250001052600270001052800290002050a2a002b0001052c002d000202052e002f00010530003100010632003300010734003500020106360037000201073800390002050a3a003b000201053c003d000201063e003f0002010740004100020e054200430001054400450001054600470001054800490002050a4a004b0001054c004d000202054e004f000105500051000105520053000105540055000202055600570001055800590002050a5a005b0001055c005d0001055e005f000105600061000202056200630001056400650001056600670001056800690002050a6a006b0001056c006d000202056e006f0001057000710002010672007300010774007500020106760077000201077800790001077a007b000201057c007d000201077e007f00020107\",\n \"mimeType\": \"application/mkcd-song\",\n \"displayName\": \"jolliest-of-rogers\",\n \"namespace\": \"mySongs.\"\n },\n \"*\": {\n \"mimeType\": \"image/x-mkcd-f4\",\n \"dataEncoding\": \"base64\",\n \"namespace\": \"myImages\"\n }\n}",
"images.g.ts": "// Auto-generated code. Do not edit.\nnamespace myImages {\n\n helpers._registerFactory(\"image\", function(name: string) {\n switch(helpers.stringTrim(name)) {\n\n }\n return null;\n })\n\n helpers._registerFactory(\"animation\", function(name: string) {\n switch(helpers.stringTrim(name)) {\n\n }\n return null;\n })\n\n helpers._registerFactory(\"song\", function(name: string) {\n switch(helpers.stringTrim(name)) {\n case \"song11\":\n case \"curious-blob\":return hex`006e000408040400001c00010a006400f401640000040000000000000000000000000005000004ae0000000100010a06000700010a0e000f00010f0f001000011110001100011214001500011118001900010f1c001d00010a20002100014b26002700014b30003100011232003300011433003400011234003500011138003900010f3c003d00014b40004100010a46004700010a5c005e00010a60006200014b66006800014b7000710001167200730001577300740001167400750001147600780001167800790001127a007b0001147c007d00011105001c000f0a006400f4010a0000040000000000000000000000000000000002900000000200010a06000700010a0e000f00010f0f001000011110001200011214001600011118001a00010f1c001d00010a20002200014b26002700014b30003100011232003300011433003400011234003600011138003a00010f3c003e00014b40004200010a46004800010a5c005e00010a60006200014b66006800014b70007200010a76007700014b7c007d00014b06001c00010a006400f401640000040000000000000000000000000000000002600000000200010a06000800010a1c001d00010a20002200014b26002800014b30003200010a36003800010a3c003e00014b40004200010a46004800010a5c005e00010a60006200014b66006800014b70007200010a76007700014b7c007d00014b09010e02026400000403780000040a000301000000640001c80000040100000000640001640000040100000000fa0004af00000401c80000040a00019600000414000501006400140005010000002c0104dc00000401fa0000040a0001c8000004140005d0076400140005d0070000c800029001f40105c201f4010a0005900114001400039001000005c201f4010500058403050032000584030000fa00049001000005c201f4010500058403c80032000584030500640005840300009001049001000005c201f4010500058403c80064000584030500c8000584030000f40105ac0d000404a00f00000a0004ac0d2003010004a00f0000280004ac0d9001010004a00f0000280002d00700040408070f0064000408070000c80003c800c8000e7d00c80019000e64000f0032000e78000000fa00032c01c8000ee100c80019000ec8000f0032000edc000000fa0003f401c8000ea901c80019000e90010f0032000ea4010000fa0001c8000004014b000000c800012c01000401c8000000c8000190010004012c010000c80002c800000404c8000f0064000496000000c80002c2010004045e010f006400042c010000640002c409000404c4096400960004f6090000f40102b80b000404b80b64002c0104f40b0000f401022003000004200300040a000420030000ea01029001000004900100040a000490010000900102d007000410d0076400960010d0070000c800450100000100020e050600070001050800090002050a0c000d000202050e000f000106120013000105140015000202061800190002120a1c001d00030e02051e001f00010620002100020e0524002500010526002700010528002900010a2a002b0001052c002d0001022e002f00010530003100020e053200330001063400350001003600370001003800390005120105080a3a003b0001063c003d0001003e003f0002000540004100020e054600470001054800490002050a4c004d000202054e004f0001065200530001055400550002020658005900010a5c005d00030e02055e005f00010660006100020e0564006500010566006700010568006900010a6a006b0001056c006d0001026e006f00010570007100020e05720073000106740075000100760077000100780079000301050a7a007b0001067c007d0001007e007f00020005`;\n case \"song10\":\n case \"bow-the-mighty-oak\":return hex`00b4000408060400001c00010a006400f401640000040000000000000000000000000005000004780018001900015019001c00011222002300010d48004900011249004c0001144e004f00015552005300011472007300010d78007900011179007d00011282008300010d8e008f0001128f00920001149600970001559c009d000114a200a3000112a800a9000150b400b5000155b500b8000157be00bf00011405001c000f0a006400f4010a000004000000000000000000000000000000000290000600080001500c000e00010f12001400014e18001a00010d2e00300001503400360001503600380001503c003e00010f42004400014e48004a00010d6000620001506600680001506c006e00010f72007400014e78007a00010d8e00900001149600980001939c009e000112a200a4000150a800aa00010dae00b000010ab400b6000149ba00bc000108be00c000015006001c00010a006400f401640000040000000000000000000000000000000002b0000700080001500d000e00010f13001400014e18001900020d5c19001a00011e2e00300001503400360001503600380001503c003e00010f42004400014e48004900030d1b6149004b00025c634e004f00021e2552005300025c636000620001506600680001506c006e00010f72007400014e78007a00010d8e008f0001149600980001939c009e000112a200a4000150a800aa00010dae00b000010ab400b60002491bba00bc000108be00c00002502009010e02026400000403780000040a000301000000640001c80000040100000000640001640000040100000000fa0004af00000401c80000040a00019600000414000501006400140005010000002c0104dc00000401fa0000040a0001c8000004140005d0076400140005d0070000c800029001f40105c201f4010a0005900114001400039001000005c201f4010500058403050032000584030000fa00049001000005c201f4010500058403c80032000584030500640005840300009001049001000005c201f4010500058403c80064000584030500c8000584030000f40105ac0d000404a00f00000a0004ac0d2003010004a00f0000280004ac0d9001010004a00f0000280002d00700040408070f0064000408070000c80003c800c8000e7d00c80019000e64000f0032000e78000000fa00032c01c8000ee100c80019000ec8000f0032000edc000000fa0003f401c8000ea901c80019000e90010f0032000ea4010000fa0001c8000004014b000000c800012c01000401c8000000c8000190010004012c010000c80002c800000404c8000f0064000496000000c80002c2010004045e010f006400042c010000640002c409000404c4096400960004f6090000f40102b80b000404b80b64002c0104f40b0000f401022003000004200300040a000420030000ea01029001000004900100040a000490010000900102d007000410d0076400960010d0070000c8008401000001000201080400050001060600070001050a000b0001060c000d00031205091200130001051600170001061800190001051c001d0001061e001f00010524002500031205092800290001052a002b0001062e002f0002010530003100030106073400350001063600370001053a003b0001063c003d00031205094200430001054600470001064800490001054c004d0001064e004f00010554005500031201095800590001015e005f00010760006100030105086400650001066600670001056a006b0001066c006d00031205097000710001057200730001067600770001067800790001057c007d0001057e007f000106820083000201068400850003120509880089000201058a008b0001068e008f000106900091000201059400950001069600970001059a009b0001069c009d0003120609a000a100020106a200a3000106a600a700020105a800a9000106ac00ad000105ae00af000106b200b300020105b400b50003120609b800b90003120509ba00bb000106be00bf00051201050809`;\n case \"song6\":\n case \"falling-blossoms\":return hex`00a0000408060206001c00010a006400f401640000040000000000000000000000000000000002f50000000100030d192701000400012906000800012a0a000c00012910001200012a1600180001291e001f0001252200240001222400260001253000310003111d2731003400012936003800012a3a003c00012940004200012a46004700012a47004900012c4e005000012a5400560001295a005c00012a5e005f0002121e60006100031420296a006c00012570007200012272007600012588008a0001228a008c0001258e009000012790009100035561279100920001689600980001279c009e000125a200a4000127a600a700021863a700a8000125ac00ae000161b200b300011eb300b4000120b800ba00011ebe00c000020d2209010e02026400000403780000040a000301000000640001c80000040100000000640001640000040100000000fa0004af00000401c80000040a00019600000414000501006400140005010000002c0104dc00000401fa0000040a0001c8000004140005d0076400140005d0070000c800029001f40105c201f4010a0005900114001400039001000005c201f4010500058403050032000584030000fa00049001000005c201f4010500058403c80032000584030500640005840300009001049001000005c201f4010500058403c80064000584030500c8000584030000f40105ac0d000404a00f00000a0004ac0d2003010004a00f0000280004ac0d9001010004a00f0000280002d00700040408070f0064000408070000c80003c800c8000e7d00c80019000e64000f0032000e78000000fa00032c01c8000ee100c80019000ec8000f0032000edc000000fa0003f401c8000ea901c80019000e90010f0032000ea4010000fa0001c8000004014b000000c800012c01000401c8000000c8000190010004012c010000c80002c800000404c8000f0064000496000000c80002c2010004045e010f006400042c010000640002c409000404c4096400960004f6090000f40102b80b000404b80b64002c0104f40b0000f401022003000004200300040a000420030000ea01029001000004900100040a000490010000900102d007000410d0076400960010d0070000c8007f01000001000201080400050001060600070001050a000b0001060c000d00020509120013000105160017000201061800190001051c001d000201061e001f000105240025000205092800290001052a002b0001062e002f0002010530003100030106073400350001063600370001053a003b0001063c003d000205094200430001054600470001064800490001054c004d0001064e004f000201055400550001095800590001015e005f0002010760006100030105086400650001066600670001056a006b0001066c006d000205097000710001057200730001067600770001067800790001057c007d0001057e007f0001068200830002010684008500020509880089000201058a008b0001068e008f000106900091000201059400950001069600970001059a009b0001069c009d00020609a000a1000106a200a3000106a600a700020105a800a900020106ac00ad00020105ae00af00020106b200b3000105b400b50003010609b800b900020105ba00bb00020106be00bf0003010508`;\n case \"song7\":\n case \"jolliest-of-rogers\":return hex`007c000408040400001c00010a006400f401640000040000000000000000000000000005000004ae000200040001570400050001160800090001140c000e0001161000120001571400160001161600180001141a001c00010d2c002e00014b2e003000014b30003100010f32003300010f34003600014b36003700010d3c003e0001084200430001574400450001164800490001144c004d00011650005100015756005700011b5c005d0001196c006d00014b6e006f00014b70007100010f72007300010f74007500014b7600770001117c007d00010d05001c000f0a006400f4010a000004000000000000000000000000000000000272000c000d00010d14001500010d1a001b00010d20002100010d2e002f00010c30003100010f32003300010f36003700010d3c003d0001084c004d00010d54005500010d5a005b00010d60006100010d6c006d00014b6e006f00014b70007100010f72007300010f7600770001117c007d00010d06001c00010a006400f4016400000400000000000000000000000000000000025a0000000100020d190c000e00020d1914001600020d191a001c00020d1920002200020d192c002e00020d193c003e00010840004100020d194c004d00020d1954005500020d195a005b00020d1960006100020d196c006e00020d1909010e02026400000403780000040a000301000000640001c80000040100000000640001640000040100000000fa0004af00000401c80000040a00019600000414000501006400140005010000002c0104dc00000401fa0000040a0001c8000004140005d0076400140005d0070000c800029001f40105c201f4010a0005900114001400039001000005c201f4010500058403050032000584030000fa00049001000005c201f4010500058403c80032000584030500640005840300009001049001000005c201f4010500058403c80064000584030500c8000584030000f40105ac0d000404a00f00000a0004ac0d2003010004a00f0000280004ac0d9001010004a00f0000280002d00700040408070f0064000408070000c80003c800c8000e7d00c80019000e64000f0032000e78000000fa00032c01c8000ee100c80019000ec8000f0032000edc000000fa0003f401c8000ea901c80019000e90010f0032000ea4010000fa0001c8000004014b000000c800012c01000401c8000000c8000190010004012c010000c80002c800000404c8000f0064000496000000c80002c2010004045e010f006400042c010000640002c409000404c4096400960004f6090000f40102b80b000404b80b64002c0104f40b0000f401022003000004200300040a000420030000ea01029001000004900100040a000490010000900102d007000410d0076400960010d0070000c8009c0100000100020e050200030001050400050001050600070001050800090002050a0a000b0001050c000d000202050e000f000106100011000105120013000105140015000202061600170001061800190002050a1a001b0001051c001d0001071e001f000107200021000202052200230001052400250001052600270001052800290002050a2a002b0001052c002d000202052e002f00010530003100010632003300010734003500020106360037000201073800390002050a3a003b000201053c003d000201063e003f0002010740004100020e054200430001054400450001054600470001054800490002050a4a004b0001054c004d000202054e004f000105500051000105520053000105540055000202055600570001055800590002050a5a005b0001055c005d0001055e005f000105600061000202056200630001056400650001056600670001056800690002050a6a006b0001056c006d000202056e006f0001057000710002010672007300010774007500020106760077000201077800790001077a007b000201057c007d000201077e007f00020107`;\n }\n return null;\n })\n\n}\n// Auto-generated code. Do not edit.\n",
"main.blocks": "<xml xmlns=\"https://developers.google.com/blockly/xml\"><block type=\"keyonevent\" x=\"0\" y=\"0\"><field name=\"button\">controller.up</field><field name=\"event\">ControllerButtonEvent.Pressed</field><statement name=\"HANDLER\"><block type=\"music_playable_play\"><field name=\"playbackMode\">music.PlaybackMode.UntilDone</field><value name=\"toPlay\"><shadow type=\"music_song_field_editor\"><field name=\"song\">assets.song`falling-blossoms`</field><data>{\"commentRefs\":[],\"fieldData\":{\"song\":\"mySongs.song6\"}}</data></shadow></value></block></statement></block><block type=\"keyonevent\" x=\"0\" y=\"180\"><field name=\"button\">controller.down</field><field name=\"event\">ControllerButtonEvent.Pressed</field><statement name=\"HANDLER\"><block type=\"music_playable_play\"><field name=\"playbackMode\">music.PlaybackMode.UntilDone</field><value name=\"toPlay\"><shadow type=\"music_song_field_editor\"><field name=\"song\">assets.song`jolliest-of-rogers`</field><data>{\"commentRefs\":[],\"fieldData\":{\"song\":\"mySongs.song7\"}}</data></shadow></value></block></statement></block><block type=\"keyonevent\" x=\"0\" y=\"360\"><field name=\"button\">controller.left</field><field name=\"event\">ControllerButtonEvent.Pressed</field><statement name=\"HANDLER\"><block type=\"music_playable_play\"><field name=\"playbackMode\">music.PlaybackMode.UntilDone</field><value name=\"toPlay\"><shadow type=\"music_song_field_editor\"><field name=\"song\">assets.song`bow-the-mighty-oak`</field><data>{\"commentRefs\":[],\"fieldData\":{\"song\":\"mySongs.song10\"}}</data></shadow></value></block></statement></block><block type=\"keyonevent\" x=\"0\" y=\"520\"><field name=\"button\">controller.right</field><field name=\"event\">ControllerButtonEvent.Pressed</field><statement name=\"HANDLER\"><block type=\"music_playable_play\"><field name=\"playbackMode\">music.PlaybackMode.UntilDone</field><value name=\"toPlay\"><shadow type=\"music_song_field_editor\"><field name=\"song\">assets.song`curious-blob`</field><data>{\"commentRefs\":[],\"fieldData\":{\"song\":\"mySongs.song11\"}}</data></shadow></value></block></statement></block></xml>",
"main.ts": "controller.up.onEvent(ControllerButtonEvent.Pressed, function () {\n music.play(music.createSong(assets.song`falling-blossoms`), music.PlaybackMode.UntilDone)\n})\ncontroller.left.onEvent(ControllerButtonEvent.Pressed, function () {\n music.play(music.createSong(assets.song`bow-the-mighty-oak`), music.PlaybackMode.UntilDone)\n})\ncontroller.right.onEvent(ControllerButtonEvent.Pressed, function () {\n music.play(music.createSong(assets.song`curious-blob`), music.PlaybackMode.UntilDone)\n})\ncontroller.down.onEvent(ControllerButtonEvent.Pressed, function () {\n music.play(music.createSong(assets.song`jolliest-of-rogers`), music.PlaybackMode.UntilDone)\n})\n",
"pxt.json": "{\n \"name\": \"galaxy-songs\",\n \"description\": \"\",\n \"dependencies\": {\n \"device\": \"*\"\n },\n \"files\": [\n \"main.blocks\",\n \"main.ts\",\n \"README.md\",\n \"assets.json\",\n \"images.g.jres\",\n \"images.g.ts\",\n \"tutorial.custom.ts\"\n ],\n \"targetVersions\": {\n \"branch\": \"v1.12.30\",\n \"tag\": \"v1.12.30\",\n \"commits\": \"https://github.com/microsoft/pxt-arcade/commits/33228b1cc7e1bea3f728c26a6047bdef35fd2c09\",\n \"target\": \"1.12.30\",\n \"pxt\": \"8.5.41\"\n },\n \"preferredEditor\": \"tsprj\",\n \"theme\": \"zune\"\n}\n",
"tutorial.custom.ts": "music.setVolume(20)"
}