Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WebAudioと音の話

 WebAudioと音の話

WebAudioの初歩の初歩

kalibora

July 28, 2015
Tweet

More Decks by kalibora

Other Decks in Programming

Transcript

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

     ctx.createOscillator();   osc.connect(ctx.destination);   osc.start(0);   osc.stop(ctx.currentTime  +  0.5); IUUQTHJTUHJUIVCDPNLBMJCPSBDGCEBFCB
  2. 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 ԻΛग़͢ ૷ஔ εϐʔΧʔ ͷΑ͏ͳ ΋ͷ
  3. 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
  4. 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
  5. 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
  6. 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 ϘϦϡʔϜ ϑΣʔμʔΈ ͍ͨͳ΋ͷ
  7. DUY"VEJP$POUFYU ιʔεϊʔυ " σεςΟωʔ γϣϯϊʔυ ϊʔυ " ϊʔυ # ιʔεϊʔυ

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