{"id":9865,"student_id":1486,"content":"var audioCtx= new (window.AudioContext||window.webkitAudioContext)();\nfunction Beep(n,t){\n var e=audioCtx.createOscillator(),\n i=audioCtx.createGain(),\n a=sound.volume;\n return e.connect(i),\n i.connect(audioCtx.destination),\n i.gain.value=0,\n e.frequency.value=n,\n e.type=\"sine\",\n e.start(),\n {\n play:function(){i.gain.value=a,setTimeout(function(){i.gain.value=0},t)},stop:function(){i.gain.value=0}}}\n\nvar keys = [];\nfor(var i = 0; i \u003c 7; i++){\n keys[i] = createSprite([\"base.png\", \"clicked.png\"]);\n keys[i].x = 8 + i*(64+16) + 32;\n}\n\nvar isPlaying = false;\nvar latency = 100;\nvar _arr = [261.6, 293.7, 329.6, 349.2, 392.0, 440.0, 493.9]\nvar _a = Beep(_arr[0], latency);\nvar _s = Beep(_arr[1], latency);\nvar _d = Beep(_arr[2], latency);\nvar _f = Beep(_arr[3], latency);\nvar _g = Beep(_arr[4], latency);\nvar _h = Beep(_arr[5], latency);\nvar _j = Beep(_arr[6], latency);\nvar _as = Beep(_arr[0]*2, latency);\nvar _ss = Beep(_arr[1]*2, latency);\nvar _ds = Beep(_arr[2]*2, latency);\nvar _fs = Beep(_arr[3]*2, latency);\nvar _gs = Beep(_arr[4]*2, latency);\nvar _hs = Beep(_arr[5]*2, latency);\nvar _js = Beep(_arr[6]*2, latency);\nvar _ac = Beep(_arr[0]/2, latency);\nvar _sc = Beep(_arr[1]/2, latency);\nvar _dc = Beep(_arr[2]/2, latency);\nvar _fc = Beep(_arr[3]/2, latency);\nvar _gc = Beep(_arr[4]/2, latency);\nvar _hc = Beep(_arr[5]/2, latency);\nvar _jc = Beep(_arr[6]/2, latency);\n\n\nforever(function(){\n if(key.a){\n if(key.shift) _sound = _as;\n else if(key.ctrl) _sound = _ac;\n else _sound = _a;\n keys[0].costumeId = 1;\n }\n if(key.s){\n if(key.shift) _sound = _ss;\n else if(key.ctrl) _sound = _sc;\n else _sound = _s;\n keys[1].costumeId = 1;\n }\n if(key.d){\n if(key.shift) _sound = _ds;\n else if(key.ctrl) _sound = _dc;\n else _sound = _d;\n keys[2].costumeId = 1;\n }\n if(key.f){\n if(key.shift) _sound = _fs;\n else if(key.ctrl) _sound = _fc;\n else _sound = _f;\n keys[3].costumeId = 1;\n }\n if(key.g){\n if(key.shift) _sound = _gs;\n else if(key.ctrl) _sound = _gc;\n else _sound = _g;\n keys[4].costumeId = 1;\n }\n if(key.h){\n if(key.shift) _sound = _hs;\n else if(key.ctrl) _sound = _hc;\n else _sound = _h;\n keys[5].costumeId = 1;\n }\n if(key.j){\n if(key.shift) _sound = _js;\n else if(key.ctrl) _sound = _jc;\n else _sound = _j;\n keys[6].costumeId = 1;\n }\n\n print(\"A\", 26, 220, \"#eeeeee\", 40);\n print(\"S\", 106, 220, \"#eeeeee\", 40);\n print(\"D\", 186, 220, \"#eeeeee\", 40);\n print(\"F\", 266, 220, \"#eeeeee\", 40);\n print(\"G\", 346, 220, \"#eeeeee\", 40);\n print(\"H\", 426, 220, \"#eeeeee\", 40);\n print(\"J\", 506, 220, \"#eeeeee\", 40);\n\n\n if(key.a || key.s || key.d || key.f || key.g || key.h || key.j){\n if (!isPlaying) {\n isPlaying = true;\n _sound.play();\n setTimeout(function() {\n isPlaying = false;\n for(var i = 0; i \u003c keys.length; i++){\n keys[i].costumeId = 0;\n }\n }, latency);\n }\n }\n});\n","created_at":"2017-03-01T20:52:04.729+08:00","updated_at":"2020-05-21T21:09:40.403+08:00","name":"piano","language":"javascript","screenshot":{"url":"https://cdn0.koding.school/uploads/project/screenshot/9865/691ebd6f8340eed33a5b7b90296eda8f.jpg"},"parent_id":2,"plugin":"","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":433,"hashid":"882sqq5g","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[{"id":218485,"file_name":"0.png","project_id":9865,"asset_id":6,"created_at":"2017-08-25T11:34:19.620+08:00","updated_at":"2017-08-25T11:34:19.620+08:00"},{"id":218486,"file_name":"1.svg","project_id":9865,"asset_id":7,"created_at":"2017-08-25T11:34:19.624+08:00","updated_at":"2017-08-25T11:34:19.624+08:00"},{"id":218487,"file_name":"2.png","project_id":9865,"asset_id":8,"created_at":"2017-08-25T11:34:19.628+08:00","updated_at":"2017-08-25T11:34:19.628+08:00"},{"id":218488,"file_name":"0.wav","project_id":9865,"asset_id":9,"created_at":"2017-08-25T11:34:19.632+08:00","updated_at":"2017-08-25T11:34:19.632+08:00"},{"id":218489,"file_name":"1.wav","project_id":9865,"asset_id":10,"created_at":"2017-08-25T11:34:19.635+08:00","updated_at":"2017-08-25T11:34:19.635+08:00"},{"id":218491,"file_name":"base.png","project_id":9865,"asset_id":26799,"created_at":"2017-08-25T11:51:32.325+08:00","updated_at":"2017-08-25T11:51:32.325+08:00"},{"id":218492,"file_name":"clicked.png","project_id":9865,"asset_id":26798,"created_at":"2017-08-25T11:51:32.328+08:00","updated_at":"2017-08-25T11:51:32.328+08:00"}]
橘蘋學習平台
橘蘋學習平台
我的作品
檢視專案頁
匯出
複製
匯入
刪除
下載 Android APP (APK)
截圖
1:1:1
1:1
full
幫助
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦