一つのケースを共有します.電子オルガンの製作です.

2837 ワード

シンプルなエレクトーンは、ボタン1-8で異なる音を出すことができます.
使用技術:httml+cs+js



    
    
    
    Document
    
    
        window.onload=function (ev) {

          var datas={
              49:{
                  div:0,audio:400+400*(1/8)
              },
               50:{
                  div:1,audio:400+400*(2/8)
              },
               51:{
                  div:2,audio:400+400*(3/8)
              },
              52:{
                  div:3,audio:400+400*(4/8)
              },
              53:{
                  div:4,audio:400+400*(5/8)
              },
              54:{
                  div:5,audio:400+400*(6/8)
              },
              55:{
                  div:6,audio:400+400*(7/8)
              },
              56:{
                  div:7,audio:400+400*(8/8)
              }
          }

          var keys=document.querySelectorAll(".box div")

           var audio=new AudioContext();
           var os
           var flag=true;
          document.onkeydown=function (ev2) {
              if(!flag){
                  return
              }
              flag=false
              var key=ev2.keyCode
              os=audio.createOscillator()
              var aa=audio.createAnalyser()
              var gain=audio.createGain()

              os.connect(aa)
              os.connect(gain)
              os.connect(audio.destination)
              os.frequency.setValueAtTime(datas[key]["audio"],audio.currentTime)
              os.start(audio.currentTime)
              keys[datas[key]["div"]].style.boxShadow="0 0 10px #000 inset"
          }

          document.onkeyup=function (ev2) {
              flag=true;
              var key=ev2.keyCode

              os.stop(audio.currentTime)
              keys[datas[key]["div"]].style.boxShadow="none"
          }
        }

    


  
1
2
3
4
5
6
7
8