⌈⌋ ⎇ branch:  Bitrhythm


Hex Artifact Content

Artifact dda4094c47195a04e7b07ff835eff16441336a2046e154ae5e52ac7eb8d99313:


0000: 3c 21 64 6f 63 74 79 70 65 20 68 74 6d 6c 3e 0a  <!doctype html>.
0010: 3c 68 74 6d 6c 3e 0a 0a 3c 68 65 61 64 3e 0a 20  <html>..<head>. 
0020: 20 3c 6d 65 74 61 20 63 68 61 72 73 65 74 3d 22   <meta charset="
0030: 75 74 66 2d 38 22 20 2f 3e 0a 20 20 3c 74 69 74  utf-8" />.  <tit
0040: 6c 65 3e 4d 75 73 69 63 69 61 6e 27 73 20 54 6f  le>Musician's To
0050: 6f 6c 6b 69 74 3c 2f 74 69 74 6c 65 3e 0a 20 20  olkit</title>.  
0060: 3c 73 63 72 69 70 74 20 73 72 63 3d 22 2e 2e 2f  <script src="../
0070: 64 69 73 74 2f 4e 65 78 75 73 55 49 2e 6a 73 22  dist/NexusUI.js"
0080: 3e 3c 2f 73 63 72 69 70 74 3e 0a 20 20 3c 73 63  ></script>.  <sc
0090: 72 69 70 74 20 73 72 63 3d 22 6a 73 2f 54 6f 6e  ript src="js/Ton
00a0: 65 39 2e 6a 73 22 3e 3c 2f 73 63 72 69 70 74 3e  e9.js"></script>
00b0: 0a 20 20 3c 6d 65 74 61 20 6e 61 6d 65 3d 22 76  .  <meta name="v
00c0: 69 65 77 70 6f 72 74 22 20 63 6f 6e 74 65 6e 74  iewport" content
00d0: 3d 22 77 69 64 74 68 3d 32 30 30 2c 20 69 6e 69  ="width=200, ini
00e0: 74 69 61 6c 2d 73 63 61 6c 65 3d 31 22 3e 0a 3c  tial-scale=1">.<
00f0: 2f 68 65 61 64 3e 0a 3c 62 6f 64 79 20 73 74 79  /head>.<body sty
0100: 6c 65 3d 22 6d 61 72 67 69 6e 3a 30 3b 70 61 64  le="margin:0;pad
0110: 64 69 6e 67 3a 30 3b 22 3e 0a 0a 0a 20 20 3c 64  ding:0;">...  <d
0120: 69 76 20 73 74 79 6c 65 3d 22 66 6f 6e 74 2d 73  iv style="font-s
0130: 69 7a 65 3a 32 30 70 78 3b 70 61 64 64 69 6e 67  ize:20px;padding
0140: 3a 32 30 70 78 3b 74 65 78 74 2d 61 6c 69 67 6e  :20px;text-align
0150: 3a 63 65 6e 74 65 72 3b 6d 61 72 67 69 6e 2d 74  :center;margin-t
0160: 6f 70 3a 34 30 70 78 3b 22 3e 0a 20 20 20 20 4e  op:40px;">.    N
0170: 65 78 75 73 55 49 20 42 61 73 69 63 20 44 65 6d  exusUI Basic Dem
0180: 6f 0a 20 20 3c 2f 64 69 76 3e 0a 0a 20 20 3c 62  o.  </div>..  <b
0190: 75 74 74 6f 6e 20 69 64 3d 22 6d 6f 62 69 6c 65  utton id="mobile
01a0: 53 74 61 72 74 22 3e 50 72 65 73 73 20 74 6f 20  Start">Press to 
01b0: 49 6e 69 74 20 4d 6f 62 69 6c 65 20 41 75 64 69  Init Mobile Audi
01c0: 6f 3c 2f 62 75 74 74 6f 6e 3e 0a 0a 20 20 3c 64  o</button>..  <d
01d0: 69 76 20 69 64 3d 22 64 72 6f 6e 65 22 20 73 74  iv id="drone" st
01e0: 79 6c 65 3d 3e 0a 20 20 20 20 3c 64 69 76 20 73  yle=>.    <div s
01f0: 74 79 6c 65 3d 22 62 61 63 6b 67 72 6f 75 6e 64  tyle="background
0200: 2d 63 6f 6c 6f 72 3a 23 66 66 66 3b 62 6f 72 64  -color:#fff;bord
0210: 65 72 3a 73 6f 6c 69 64 20 31 70 78 20 23 63 63  er:solid 1px #cc
0220: 63 3b 77 69 64 74 68 3a 32 30 30 70 78 3b 70 61  c;width:200px;pa
0230: 64 64 69 6e 67 3a 32 30 70 78 3b 6d 61 72 67 69  dding:20px;margi
0240: 6e 3a 30 20 61 75 74 6f 3b 22 3e 0a 20 20 20 20  n:0 auto;">.    
0250: 20 20 3c 64 69 76 3e 0a 20 20 20 20 20 20 20 20    <div>.        
0260: 3c 64 69 76 20 6e 65 78 75 73 2d 75 69 3d 22 74  <div nexus-ui="t
0270: 6f 67 67 6c 65 22 20 69 64 3d 22 70 6f 77 65 72  oggle" id="power
0280: 22 20 73 74 79 6c 65 3d 22 77 69 64 74 68 3a 34  " style="width:4
0290: 30 70 78 3b 68 65 69 67 68 74 3a 32 35 70 78 3b  0px;height:25px;
02a0: 66 6c 6f 61 74 3a 6c 65 66 74 3b 6d 61 72 67 69  float:left;margi
02b0: 6e 3a 30 22 3e 3c 2f 64 69 76 3e 0a 20 20 20 20  n:0"></div>.    
02c0: 20 20 20 20 3c 73 70 61 6e 20 73 74 79 6c 65 3d      <span style=
02d0: 22 68 65 69 67 68 74 3a 32 35 70 78 3b 6c 69 6e  "height:25px;lin
02e0: 65 2d 68 65 69 67 68 74 3a 32 38 70 78 3b 6d 61  e-height:28px;ma
02f0: 72 67 69 6e 2d 6c 65 66 74 3a 31 30 70 78 22 3e  rgin-left:10px">
0300: 50 6f 77 65 72 20 4f 6e 3c 2f 73 70 61 6e 3e 0a  Power On</span>.
0310: 20 20 20 20 20 20 3c 2f 64 69 76 3e 0a 20 20 20        </div>.   
0320: 20 20 20 3c 64 69 76 20 73 74 79 6c 65 3d 22 6f     <div style="o
0330: 76 65 72 66 6c 6f 77 3a 61 75 74 6f 22 3e 0a 20  verflow:auto">. 
0340: 20 20 20 20 20 20 20 3c 64 69 76 20 73 74 79 6c         <div styl
0350: 65 3d 22 70 61 64 64 69 6e 67 3a 31 35 70 78 20  e="padding:15px 
0360: 30 70 78 20 30 70 78 3b 77 69 64 74 68 3a 32 30  0px 0px;width:20
0370: 30 70 78 3b 6f 76 65 72 66 6c 6f 77 3a 61 75 74  0px;overflow:aut
0380: 6f 22 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 64  o">.          <d
0390: 69 76 20 6e 65 78 75 73 2d 75 69 3d 22 73 6c 69  iv nexus-ui="sli
03a0: 64 65 72 22 20 69 64 3d 22 74 69 6d 62 72 65 22  der" id="timbre"
03b0: 20 73 74 79 6c 65 3d 22 77 69 64 74 68 3a 32 30   style="width:20
03c0: 30 70 78 3b 68 65 69 67 68 74 3a 32 35 70 78 3b  0px;height:25px;
03d0: 64 69 73 70 6c 61 79 3a 69 6e 6c 69 6e 65 2d 62  display:inline-b
03e0: 6c 6f 63 6b 3b 22 3e 3c 2f 64 69 76 3e 0a 20 20  lock;"></div>.  
03f0: 20 20 20 20 20 20 20 20 3c 64 69 76 20 73 74 79          <div sty
0400: 6c 65 3d 22 64 69 73 70 6c 61 79 3a 69 6e 6c 69  le="display:inli
0410: 6e 65 2d 62 6c 6f 63 6b 3b 66 6c 6f 61 74 3a 6c  ne-block;float:l
0420: 65 66 74 3b 70 61 64 64 69 6e 67 3a 33 70 78 20  eft;padding:3px 
0430: 30 70 78 20 30 70 78 22 3e 54 69 6d 62 72 65 3c  0px 0px">Timbre<
0440: 2f 64 69 76 3e 0a 20 20 20 20 20 20 20 20 3c 2f  /div>.        </
0450: 64 69 76 3e 0a 20 20 20 20 20 20 20 20 3c 64 69  div>.        <di
0460: 76 20 73 74 79 6c 65 3d 22 70 61 64 64 69 6e 67  v style="padding
0470: 3a 31 35 70 78 20 30 70 78 20 30 70 78 3b 77 69  :15px 0px 0px;wi
0480: 64 74 68 3a 32 30 30 70 78 3b 6f 76 65 72 66 6c  dth:200px;overfl
0490: 6f 77 3a 61 75 74 6f 22 3e 0a 20 20 20 20 20 20  ow:auto">.      
04a0: 20 20 20 20 3c 64 69 76 20 6e 65 78 75 73 2d 75      <div nexus-u
04b0: 69 3d 22 70 61 6e 22 20 69 64 3d 22 70 61 6e 22  i="pan" id="pan"
04c0: 20 73 74 79 6c 65 3d 22 77 69 64 74 68 3a 32 30   style="width:20
04d0: 30 70 78 3b 68 65 69 67 68 74 3a 32 35 70 78 3b  0px;height:25px;
04e0: 64 69 73 70 6c 61 79 3a 69 6e 6c 69 6e 65 2d 62  display:inline-b
04f0: 6c 6f 63 6b 3b 22 3e 3c 2f 64 69 76 3e 0a 20 20  lock;"></div>.  
0500: 20 20 20 20 20 20 20 20 3c 64 69 76 20 73 74 79          <div sty
0510: 6c 65 3d 22 64 69 73 70 6c 61 79 3a 69 6e 6c 69  le="display:inli
0520: 6e 65 2d 62 6c 6f 63 6b 3b 66 6c 6f 61 74 3a 6c  ne-block;float:l
0530: 65 66 74 3b 70 61 64 64 69 6e 67 3a 33 70 78 20  eft;padding:3px 
0540: 30 70 78 20 30 70 78 22 3e 50 61 6e 3c 2f 64 69  0px 0px">Pan</di
0550: 76 3e 0a 20 20 20 20 20 20 20 20 3c 2f 64 69 76  v>.        </div
0560: 3e 0a 0a 20 20 20 20 20 20 20 20 3c 64 69 76 20  >..        <div 
0570: 73 74 79 6c 65 3d 22 70 61 64 64 69 6e 67 3a 31  style="padding:1
0580: 35 70 78 20 30 70 78 20 30 70 78 3b 77 69 64 74  5px 0px 0px;widt
0590: 68 3a 32 30 30 70 78 3b 6f 76 65 72 66 6c 6f 77  h:200px;overflow
05a0: 3a 61 75 74 6f 22 3e 0a 20 20 20 20 20 20 20 20  :auto">.        
05b0: 20 20 3c 64 69 76 20 6e 65 78 75 73 2d 75 69 3d    <div nexus-ui=
05c0: 22 70 6f 73 69 74 69 6f 6e 22 20 69 64 3d 22 66  "position" id="f
05d0: 69 6c 74 65 72 22 20 73 74 79 6c 65 3d 22 77 69  ilter" style="wi
05e0: 64 74 68 3a 32 30 30 70 78 3b 68 65 69 67 68 74  dth:200px;height
05f0: 3a 31 35 30 70 78 3b 64 69 73 70 6c 61 79 3a 69  :150px;display:i
0600: 6e 6c 69 6e 65 2d 62 6c 6f 63 6b 3b 22 3e 3c 2f  nline-block;"></
0610: 64 69 76 3e 0a 20 20 20 20 20 20 20 20 20 20 3c  div>.          <
0620: 64 69 76 20 73 74 79 6c 65 3d 22 64 69 73 70 6c  div style="displ
0630: 61 79 3a 69 6e 6c 69 6e 65 2d 62 6c 6f 63 6b 3b  ay:inline-block;
0640: 66 6c 6f 61 74 3a 6c 65 66 74 3b 70 61 64 64 69  float:left;paddi
0650: 6e 67 3a 33 70 78 20 30 70 78 20 30 70 78 22 3e  ng:3px 0px 0px">
0660: 46 69 6c 74 65 72 3c 2f 64 69 76 3e 0a 20 20 20  Filter</div>.   
0670: 20 20 20 20 20 3c 2f 64 69 76 3e 0a 0a 20 20 20       </div>..   
0680: 20 20 20 3c 2f 64 69 76 3e 0a 0a 0a 20 20 20 20     </div>...    
0690: 20 20 3c 64 69 76 3e 0a 20 20 20 20 20 20 20 20    <div>.        
06a0: 3c 64 69 76 20 6e 65 78 75 73 2d 75 69 3d 22 73  <div nexus-ui="s
06b0: 70 65 63 74 72 6f 67 72 61 6d 22 20 69 64 3d 22  pectrogram" id="
06c0: 73 70 65 63 74 72 6f 67 72 61 6d 22 20 73 74 79  spectrogram" sty
06d0: 6c 65 3d 22 77 69 64 74 68 3a 32 34 30 70 78 3b  le="width:240px;
06e0: 68 65 69 67 68 74 3a 35 30 70 78 3b 6d 61 72 67  height:50px;marg
06f0: 69 6e 2d 6c 65 66 74 3a 2d 32 30 70 78 3b 6d 61  in-left:-20px;ma
0700: 72 67 69 6e 2d 62 6f 74 74 6f 6d 3a 2d 32 30 70  rgin-bottom:-20p
0710: 78 3b 22 3e 3c 2f 64 69 76 3e 0a 20 20 20 20 20  x;"></div>.     
0720: 20 3c 2f 64 69 76 3e 0a 20 20 20 20 3c 2f 64 69   </div>.    </di
0730: 76 3e 0a 0a 20 20 3c 2f 64 69 76 3e 0a 0a 0a 3c  v>..  </div>...<
0740: 73 74 79 6c 65 3e 0a 0a 62 6f 64 79 20 7b 0a 20  style>..body {. 
0750: 20 66 6f 6e 74 2d 66 61 6d 69 6c 79 3a 68 65 6c   font-family:hel
0760: 76 65 74 69 63 61 3b 0a 20 20 66 6f 6e 74 2d 77  vetica;.  font-w
0770: 65 69 67 68 74 3a 33 30 30 3b 0a 20 20 62 61 63  eight:300;.  bac
0780: 6b 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 3a 23 66  kground-color:#f
0790: 33 66 33 66 33 3b 0a 20 20 63 6f 6c 6f 72 3a 23  3f3f3;.  color:#
07a0: 33 33 33 3b 0a 7d 0a 5b 6e 65 78 75 73 2d 75 69  333;.}.[nexus-ui
07b0: 5d 20 7b 0a 20 20 6d 61 72 67 69 6e 3a 30 70 78  ] {.  margin:0px
07c0: 3b 0a 7d 0a 3c 2f 73 74 79 6c 65 3e 0a 3c 2f 62  ;.}.</style>.</b
07d0: 6f 64 79 3e 0a 3c 73 63 72 69 70 74 3e 0a 0a 20  ody>.<script>.. 
07e0: 20 4e 65 78 75 73 2e 63 6f 6e 74 65 78 74 20 3d   Nexus.context =
07f0: 20 54 6f 6e 65 2e 63 6f 6e 74 65 78 74 3b 0a 0a   Tone.context;..
0800: 20 20 6d 6f 62 69 6c 65 53 74 61 72 74 20 3d 20    mobileStart = 
0810: 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c 65 6d  document.getElem
0820: 65 6e 74 42 79 49 64 28 27 6d 6f 62 69 6c 65 53  entById('mobileS
0830: 74 61 72 74 27 29 0a 20 20 6d 6f 62 69 6c 65 53  tart').  mobileS
0840: 74 61 72 74 2e 61 64 64 45 76 65 6e 74 4c 69 73  tart.addEventLis
0850: 74 65 6e 65 72 28 27 74 6f 75 63 68 65 6e 64 27  tener('touchend'
0860: 2c 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20  ,function() {.  
0870: 20 20 76 61 72 20 6f 73 63 20 3d 20 4e 65 78 75    var osc = Nexu
0880: 73 2e 63 6f 6e 74 65 78 74 2e 63 72 65 61 74 65  s.context.create
0890: 4f 73 63 69 6c 6c 61 74 6f 72 28 29 0a 20 20 20  Oscillator().   
08a0: 20 6f 73 63 2e 63 6f 6e 6e 65 63 74 28 4e 65 78   osc.connect(Nex
08b0: 75 73 2e 63 6f 6e 74 65 78 74 2e 64 65 73 74 69  us.context.desti
08c0: 6e 61 74 69 6f 6e 29 0a 20 20 20 20 6f 73 63 2e  nation).    osc.
08d0: 73 74 61 72 74 28 30 29 0a 20 20 20 20 6f 73 63  start(0).    osc
08e0: 2e 73 74 6f 70 28 30 2e 31 29 0a 20 20 20 20 4e  .stop(0.1).    N
08f0: 65 78 75 73 2e 63 6c 6f 63 6b 2e 73 74 61 72 74  exus.clock.start
0900: 28 29 3b 0a 20 20 7d 29 0a 0a 20 20 4e 65 78 75  ();.  })..  Nexu
0910: 73 2e 63 6f 6c 6f 72 73 2e 61 63 63 65 6e 74 20  s.colors.accent 
0920: 3d 20 22 23 32 63 63 22 3b 0a 0a 0a 0a 20 20 64  = "#2cc";....  d
0930: 72 6f 6e 65 20 3d 20 6e 65 77 20 4e 65 78 75 73  rone = new Nexus
0940: 2e 52 61 63 6b 28 27 23 64 72 6f 6e 65 27 29 3b  .Rack('#drone');
0950: 0a 0a 20 20 64 72 6f 6e 65 53 79 6e 74 68 20 3d  ..  droneSynth =
0960: 20 7b 0a 20 20 20 20 66 6d 3a 20 6e 65 77 20 54   {.    fm: new T
0970: 6f 6e 65 2e 46 4d 4f 73 63 69 6c 6c 61 74 6f 72  one.FMOscillator
0980: 28 31 30 30 2c 20 22 73 61 77 74 6f 6f 74 68 22  (100, "sawtooth"
0990: 2c 20 22 73 61 77 74 6f 6f 74 68 22 29 2e 73 74  , "sawtooth").st
09a0: 61 72 74 28 29 2c 0a 20 20 20 20 66 6d 32 3a 20  art(),.    fm2: 
09b0: 6e 65 77 20 54 6f 6e 65 2e 46 4d 4f 73 63 69 6c  new Tone.FMOscil
09c0: 6c 61 74 6f 72 28 31 31 32 2e 35 2c 20 22 73 61  lator(112.5, "sa
09d0: 77 74 6f 6f 74 68 22 2c 20 22 73 61 77 74 6f 6f  wtooth", "sawtoo
09e0: 74 68 22 29 2e 73 74 61 72 74 28 29 2c 0a 20 20  th").start(),.  
09f0: 20 20 76 6f 6c 3a 20 6e 65 77 20 54 6f 6e 65 2e    vol: new Tone.
0a00: 56 6f 6c 75 6d 65 28 2d 49 6e 66 69 6e 69 74 79  Volume(-Infinity
0a10: 29 2c 0a 20 20 20 20 70 61 6e 3a 20 6e 65 77 20  ),.    pan: new 
0a20: 54 6f 6e 65 2e 50 61 6e 6e 65 72 28 30 29 2c 0a  Tone.Panner(0),.
0a30: 20 20 20 20 66 69 6c 74 65 72 3a 20 6e 65 77 20      filter: new 
0a40: 54 6f 6e 65 2e 46 69 6c 74 65 72 28 31 30 30 2c  Tone.Filter(100,
0a50: 20 22 62 61 6e 64 70 61 73 73 22 29 2c 0a 20 20   "bandpass"),.  
0a60: 20 20 76 65 72 62 3a 20 6e 65 77 20 54 6f 6e 65    verb: new Tone
0a70: 2e 46 72 65 65 76 65 72 62 28 29 2c 0a 20 20 20  .Freeverb(),.   
0a80: 20 63 6f 6d 70 72 65 73 73 6f 72 3a 20 6e 65 77   compressor: new
0a90: 20 54 6f 6e 65 2e 43 6f 6d 70 72 65 73 73 6f 72   Tone.Compressor
0aa0: 28 2d 33 30 2c 20 31 30 29 0a 20 20 7d 0a 0a 20  (-30, 10).  }.. 
0ab0: 20 64 72 6f 6e 65 53 79 6e 74 68 2e 66 6d 2e 63   droneSynth.fm.c
0ac0: 6f 6e 6e 65 63 74 28 20 64 72 6f 6e 65 53 79 6e  onnect( droneSyn
0ad0: 74 68 2e 66 69 6c 74 65 72 20 29 0a 20 20 64 72  th.filter ).  dr
0ae0: 6f 6e 65 53 79 6e 74 68 2e 66 6d 32 2e 63 6f 6e  oneSynth.fm2.con
0af0: 6e 65 63 74 28 20 64 72 6f 6e 65 53 79 6e 74 68  nect( droneSynth
0b00: 2e 66 69 6c 74 65 72 20 29 3b 0a 20 20 64 72 6f  .filter );.  dro
0b10: 6e 65 53 79 6e 74 68 2e 66 69 6c 74 65 72 2e 63  neSynth.filter.c
0b20: 68 61 69 6e 28 20 64 72 6f 6e 65 53 79 6e 74 68  hain( droneSynth
0b30: 2e 63 6f 6d 70 72 65 73 73 6f 72 2c 20 64 72 6f  .compressor, dro
0b40: 6e 65 53 79 6e 74 68 2e 76 6f 6c 2c 20 64 72 6f  neSynth.vol, dro
0b50: 6e 65 53 79 6e 74 68 2e 70 61 6e 2c 20 64 72 6f  neSynth.pan, dro
0b60: 6e 65 53 79 6e 74 68 2e 76 65 72 62 2c 20 54 6f  neSynth.verb, To
0b70: 6e 65 2e 4d 61 73 74 65 72 29 0a 0a 0a 20 20 64  ne.Master)...  d
0b80: 72 6f 6e 65 53 79 6e 74 68 2e 66 6d 2e 68 61 72  roneSynth.fm.har
0b90: 6d 6f 6e 69 63 69 74 79 2e 76 61 6c 75 65 20 3d  monicity.value =
0ba0: 20 34 0a 20 20 64 72 6f 6e 65 53 79 6e 74 68 2e   4.  droneSynth.
0bb0: 66 6d 32 2e 68 61 72 6d 6f 6e 69 63 69 74 79 2e  fm2.harmonicity.
0bc0: 76 61 6c 75 65 20 3d 20 34 0a 0a 0a 20 20 64 72  value = 4...  dr
0bd0: 6f 6e 65 2e 70 6f 77 65 72 2e 6f 6e 28 27 63 68  one.power.on('ch
0be0: 61 6e 67 65 27 2c 66 75 6e 63 74 69 6f 6e 28 76  ange',function(v
0bf0: 29 20 7b 0a 20 20 20 20 69 66 20 28 76 29 20 7b  ) {.    if (v) {
0c00: 0a 20 20 20 20 20 20 64 72 6f 6e 65 53 79 6e 74  .      droneSynt
0c10: 68 2e 76 6f 6c 2e 76 6f 6c 75 6d 65 2e 72 61 6d  h.vol.volume.ram
0c20: 70 54 6f 28 2d 32 30 2c 31 29 0a 20 20 20 20 7d  pTo(-20,1).    }
0c30: 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 64 72   else {.      dr
0c40: 6f 6e 65 53 79 6e 74 68 2e 76 6f 6c 2e 76 6f 6c  oneSynth.vol.vol
0c50: 75 6d 65 2e 72 61 6d 70 54 6f 28 2d 49 6e 66 69  ume.rampTo(-Infi
0c60: 6e 69 74 79 2c 31 29 0a 20 20 20 20 7d 0a 20 20  nity,1).    }.  
0c70: 7d 29 0a 0a 20 20 64 72 6f 6e 65 2e 74 69 6d 62  })..  drone.timb
0c80: 72 65 2e 6d 69 6e 20 3d 20 31 30 0a 20 20 64 72  re.min = 10.  dr
0c90: 6f 6e 65 2e 74 69 6d 62 72 65 2e 6d 61 78 20 3d  one.timbre.max =
0ca0: 20 32 30 0a 20 20 64 72 6f 6e 65 2e 74 69 6d 62   20.  drone.timb
0cb0: 72 65 2e 6f 6e 28 27 63 68 61 6e 67 65 27 2c 66  re.on('change',f
0cc0: 75 6e 63 74 69 6f 6e 28 76 29 20 7b 0a 20 20 20  unction(v) {.   
0cd0: 20 64 72 6f 6e 65 53 79 6e 74 68 2e 66 6d 2e 6d   droneSynth.fm.m
0ce0: 6f 64 75 6c 61 74 69 6f 6e 49 6e 64 65 78 2e 72  odulationIndex.r
0cf0: 61 6d 70 54 6f 28 76 2c 30 2e 31 29 0a 20 20 20  ampTo(v,0.1).   
0d00: 20 64 72 6f 6e 65 53 79 6e 74 68 2e 66 6d 32 2e   droneSynth.fm2.
0d10: 6d 6f 64 75 6c 61 74 69 6f 6e 49 6e 64 65 78 2e  modulationIndex.
0d20: 72 61 6d 70 54 6f 28 76 2c 30 2e 31 29 0a 20 20  rampTo(v,0.1).  
0d30: 7d 29 0a 20 20 64 72 6f 6e 65 2e 74 69 6d 62 72  }).  drone.timbr
0d40: 65 2e 76 61 6c 75 65 20 3d 20 30 0a 0a 0a 20 20  e.value = 0...  
0d50: 64 72 6f 6e 65 2e 70 61 6e 2e 6f 6e 28 27 63 68  drone.pan.on('ch
0d60: 61 6e 67 65 27 2c 66 75 6e 63 74 69 6f 6e 28 76  ange',function(v
0d70: 29 20 7b 0a 20 20 20 20 64 72 6f 6e 65 53 79 6e  ) {.    droneSyn
0d80: 74 68 2e 70 61 6e 2e 70 61 6e 2e 76 61 6c 75 65  th.pan.pan.value
0d90: 20 3d 20 76 2e 76 61 6c 75 65 3b 0a 20 20 7d 29   = v.value;.  })
0da0: 0a 0a 0a 0a 20 20 64 72 6f 6e 65 2e 66 69 6c 74  ....  drone.filt
0db0: 65 72 2e 6d 69 6e 58 20 3d 20 30 0a 20 20 64 72  er.minX = 0.  dr
0dc0: 6f 6e 65 2e 66 69 6c 74 65 72 2e 6d 61 78 58 20  one.filter.maxX 
0dd0: 3d 20 31 34 30 30 0a 20 20 64 72 6f 6e 65 2e 66  = 1400.  drone.f
0de0: 69 6c 74 65 72 2e 6d 69 6e 59 20 3d 20 30 0a 20  ilter.minY = 0. 
0df0: 20 64 72 6f 6e 65 2e 66 69 6c 74 65 72 2e 6d 61   drone.filter.ma
0e00: 78 59 20 3d 20 31 30 0a 0a 20 20 64 72 6f 6e 65  xY = 10..  drone
0e10: 2e 66 69 6c 74 65 72 2e 6f 6e 28 27 63 68 61 6e  .filter.on('chan
0e20: 67 65 27 2c 66 75 6e 63 74 69 6f 6e 28 76 29 20  ge',function(v) 
0e30: 7b 0a 20 20 20 20 64 72 6f 6e 65 53 79 6e 74 68  {.    droneSynth
0e40: 2e 66 69 6c 74 65 72 2e 66 72 65 71 75 65 6e 63  .filter.frequenc
0e50: 79 2e 76 61 6c 75 65 20 3d 20 76 2e 78 3b 0a 20  y.value = v.x;. 
0e60: 20 20 20 64 72 6f 6e 65 53 79 6e 74 68 2e 66 69     droneSynth.fi
0e70: 6c 74 65 72 2e 51 2e 76 61 6c 75 65 20 3d 20 76  lter.Q.value = v
0e80: 2e 79 3b 0a 20 20 7d 29 0a 0a 0a 0a 20 20 20 20  .y;.  })....    
0e90: 64 72 6f 6e 65 53 79 6e 74 68 2e 76 65 72 62 2e  droneSynth.verb.
0ea0: 77 65 74 2e 76 61 6c 75 65 20 3d 20 30 2e 32 0a  wet.value = 0.2.
0eb0: 0a 0a 20 20 20 20 64 72 6f 6e 65 2e 73 70 65 63  ..    drone.spec
0ec0: 74 72 6f 67 72 61 6d 2e 63 6f 6e 6e 65 63 74 28  trogram.connect(
0ed0: 54 6f 6e 65 2e 4d 61 73 74 65 72 29 3b 0a 20 20  Tone.Master);.  
0ee0: 20 20 64 72 6f 6e 65 2e 73 70 65 63 74 72 6f 67    drone.spectrog
0ef0: 72 61 6d 2e 63 6f 6c 6f 72 69 7a 65 28 22 66 69  ram.colorize("fi
0f00: 6c 6c 22 2c 22 23 66 66 66 22 29 0a 20 20 20 20  ll","#fff").    
0f10: 64 72 6f 6e 65 2e 73 70 65 63 74 72 6f 67 72 61  drone.spectrogra
0f20: 6d 2e 63 6f 6c 6f 72 69 7a 65 28 22 61 63 63 65  m.colorize("acce
0f30: 6e 74 22 2c 22 23 32 63 63 22 29 0a 0a 0a 0a 3c  nt","#2cc")....<
0f40: 2f 73 63 72 69 70 74 3e 0a 3c 2f 68 74 6d 6c 3e  /script>.</html>
0f50: 0a                                               .