WebAudioと音の話

 WebAudioと音の話

WebAudioの初歩の初歩

C123355918153416d5db4c346140ddc8?s=128

kalibora

July 28, 2015
Tweet

Transcript

  1. 8FC"VEJPͱԻͷ࿩

  2. 8FC"VEJPͬͯ ஌ͬͯ·͔͢ʁ

  3. 8FC"VEJPͱ͸ʁ w 8FC"VEJP"1*͸8$ʹΑͬͯ։ൃ͞Ε͍ͯ Δɺ΢ΣϒΞϓϦέʔγϣϯ༻ͷԻ੠ॲཧͱԻ ੠߹੒ͷͨΊͷߴϨϕϧ+BWB4DSJQU"1* w ओཁͳઃܭύϥμΠϜ͸ɺ"VEJP/PEFΦϒδΣ ΫτΛͭͳ͗ɺԻ੠ϧʔτάϥϑΛ࡞Δܗɻ࣮ ࡍͷॲཧ͸ɺओʹ΢Σϒϒϥ΢β಺ͷ࣮૷Ͱߦ ΘΕΔ͕ɺ+BWB4DSJQUͰ௚઀ॲཧͯ͠߹੒͢Δ

    ͜ͱ΋Մೳ
  4. None
  5. +BWB4DSJQUͰʂ ϒϥ΢β্Ͱʂ Ի͕ग़ͤΔʂ

  6. Ͱ΋୯७ʹ XBWͱ͔NQͱ͔Λ ࠶ੜ͢ΔΘ͚͡Όͳ͍Α

  7. ԻΛ߹੒ͨ͠Γͯ͠ ͲΜͳԻͰ΋ग़ͤΔΑ ʢཧ࿦্ʣ

  8. ·ͣ͸ԻΛग़ͯ͠ΈΑ͏ var  ctx  =  new  AudioContext();   var  osc  =

     ctx.createOscillator();   osc.connect(ctx.destination);   osc.start(0);   osc.stop(ctx.currentTime  +  0.5); IUUQTHJTUHJUIVCDPNLBMJCPSBDGCEBFCB
  9. Ͳ͏Ͱ͔͢ʁʂ Ի͕Ͱ·͔ͨ͠ʁ

  10. DUY"VEJP$POUFYU ίʔυΛղઆ PTD var  ctx  =  new  AudioContext();   var

     osc  =  ctx.createOscillator();   osc.connect(ctx.destination);   osc.start(0);   osc.stop(ctx.currentTime  +  0.5); EFTUJOBUJPO DPOOFDU TUBSU TUPQ ԻΛग़͢ ૷ஔ εϐʔΧʔ ͷΑ͏ͳ ΋ͷ
  11. ͱ͜ΖͰɺԻۭͬͯؾ தΛ఻ΘΔ೾Ͱ͢ΑͶʁ

  12. ͖ͬ͞ग़ͨ͠Իͬͯ ͲΜͳ೾ͷܗʢ೾ܗʣ Λ͍ͯ͠Δͱࢥ͍·͔͢ʁ

  13. ͜ΜͳܗΛ͍ͯ͠·͢

  14. ͜ͷ೾ܗΛ ਖ਼ݭ೾ʢTJOF೾ʣ ͱݴ͍·͢

  15. ୅දతͳ೾ܗҰཡ TRVBSFʢۣܗ೾ʣ TJOFʢਖ਼ݭ೾ʣ USJBOHMFʢࡾ֯೾ʣ TBXUPPUIʢڒࣃঢ়೾ʣ

  16. ͲΕ΋໊લ௨ΓͷܗΛ ͍ͯ͠·͢

  17. ࣮ࡍʹͦΕͧΕͷ ೾ܗΛ໐Βͯ͠ΈΑ͏

  18. var  ctx  =  new  AudioContext();   var  osc  =  ctx.createOscillator();

      var  types  =  ['sine',  'square',  'triangle',   'sawtooth'];   var  typeIdx  =  0;   var  timerId  =  setInterval(function  ()  {          if  (typeIdx  >=  types.length)  {                  clearInterval(timerId);                  return;          }          console.log(types[typeIdx]);          osc.type  =  types[typeIdx];  //  set  waveform  here          if  (typeIdx  ===  0)  {                  osc.start(0);                  osc.stop(ctx.currentTime  +  types.length  *   1);          }          typeIdx++;   },  1000);   osc.connect(ctx.destination); IUUQTHJTUHJUIVCDPNLBMJCPSBCGCDBBEGBBG
  19. ؙ͍೾ܗ͸ؙ͍Ի ΪβΪβͷ೾ܗ͸ΪβΪβͨ͠Ի ʹฉ͑͜·ͤΜ͔ʁ

  20. ͱ͍͏Θ͚Ͱɺ

  21. Ի৭͸೾ͷܗʢ೾ܗʣ Ͱܾ·Γ·͢

  22. ͱ͜ΖͰɺ

  23. Իͱ͍͏΋ͷͷཁૉ͸ Ի৭͚ͩͰ͸͋Γ·ͤΜ

  24. Իͷཁૉ w Ի৭ʢUJNCSF UPOFʣ w େ͖͞ʢMPVEOFTTʣ w ߴ͞ʢQJUDIʣ

  25. Ͱ͸େ͖͞ͱߴ͞͸Կ Ͱܾ·ΔͷͰ͠ΐ͏͔ʁ

  26. ج४ͱͳΔԻ

  27. େ͖͍Ի ৼ෯

  28. ߴ͍Ի प೾਺

  29. Ͱ͸ɺ प೾਺Λมߋͯ͠ Իͷߴ͞Λมߋͯ͠Έ·͢

  30. var  ctx  =  new  AudioContext();   var  osc  =  ctx.createOscillator();

      var  freqs  =  [261.63,  293.67,  329.63,  349.23,  392.00,   440.00,  493.88,  523.23];   var  freqIdx  =  0;   var  timerId  =  setInterval(function  ()  {          if  (freqIdx  >=  freqs.length)  {                  clearInterval(timerId);                  return;          }          console.log(freqs[freqIdx]);          osc.frequency.value  =  freqs[freqIdx];  //  set   frequency          if  (freqIdx  ===  0)  {                  osc.start(0);                  osc.stop(ctx.currentTime  +  freqs.length  *  1);          }          freqIdx++;   },  1000);   osc.connect(ctx.destination);   IUUQTHJTUHJUIVCDPNLBMJCPSBDEGC
  31. ࣍ʹɺ ৼ෯Λίϯτϩʔϧͯ͠ɺ Իͷେ͖͞Λมߋͯ͠Έ·͢

  32. var  ctx  =  new  AudioContext();   var  osc  =  ctx.createOscillator();

      var  gain  =  ctx.createGain();     var  levels  =  [1.0,  0.9,  0.8,  0.7,  0.6,  0.5,  0.4,  0.3,   0.2,  0.1];   var  levelIdx  =  0;   var  timerId  =  setInterval(function  ()  {          if  (levelIdx  >=  levels.length)  {                  clearInterval(timerId);                  return;          }          console.log(levels[levelIdx]);          gain.gain.value  =  levels[levelIdx];  //  set  gain          if  (levelIdx  ===  0)  {                  osc.start(0);                  osc.stop(ctx.currentTime  +  levels.length  *  0.5);          }          levelIdx++;   },  500);   osc.connect(gain);   gain.connect(ctx.destination); IUUQTHJTUHJUIVCDPNLBMJCPSBGCFGGBCB
  33. DUY"VEJP$POUFYU ίʔυΛղઆ PTD var  ctx  =  new  AudioContext();   var

     osc  =  ctx.createOscillator();   var  gain  =  ctx.createGain();     (snip)          gain.gain.value  =  levels[levelIdx];  //  set  gain   (snip)   osc.connect(gain);   gain.connect(ctx.destination); EFTUJOBUJPO DPOOFDU HBJO DPOOFDU ϘϦϡʔϜ ϑΣʔμʔΈ ͍ͨͳ΋ͷ
  34. DUY"VEJP$POUFYU ιʔεϊʔυ " σεςΟωʔ γϣϯϊʔυ ϊʔυ " ϊʔυ # ιʔεϊʔυ

    # ϊʔυ $ ੨͍࢛֯͸ϊʔυͱ ݺ͹ΕΔ΋ͷͰ ͦΕΒΛෳ਺૊Έ߹Θͤͯ ͍ΖΜͳԻ͕࡞ΕΔΈ͍ͨͰ͢
  35. ͓͠·͍

  36. TJOF೾Λ߹੒͍ͯ͠Ζ Μͳ೾ܗ͕࡞ΕΔ࿩ https://www.google.co.jp/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=sin(x) %2Bsin(2x)*(1%2F2)%2Bsin(3x)*(1%2F3)%2Bsin(4x)*(1%2F4)%2Bsin(5x)*(1%2F5)%2Bsin(6x)*(1%2F6)%2Bsin(7x)*(1%2F7) https://www.google.co.jp/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=sin(x) %2Bsin(3x)*(1%2F3)%2Bsin(5x)*(1%2F5)%2Bsin(7x)*(1%2F7)%2Bsin(9x)*(1%2F9)%2Bsin(11x)*(1%2F11)