JSFiddle - React, Tailwind, and code Playground
by xavierm02
JavaScript
['ababababacacacdbebacacdbegacacdbebacacdbebfhfhf.30,ijijkjljljijijkjljljacacdbeb0.6,2.6,0.6','0.24,-3.24,0.24,-3.24,.24,ababebmbmbababebmbmgababdbmbmbnonpcqgababebmbmbnonpcqgababebmbmbababebmbmb0.6,2.6,0.6','.408,ababebmbmg.384,0.6,2.6,0.6'].map(function(z,a){c=new webkitAudioContext;p=44100;x=Math;t=5;u=z.split('');for(v in u){u[v]={a:'0.6,2.6,0.6,',b:'4.2,5.2,4.2,',c:'2.2,2.2,2.2,',d:'2.6,4.6,5.6,',e:'2.6,4.6,2.6,',f:'12.6,12.6,12.2,9.4,',g:'4.2,5.2,7.2,',h:'12.2,12.2,12.2,',i:'12.6,14.6,12.6,',j:'16.2,17.2,16.2,',k:'14.6,16.6,14.6,',l:'14.2,12.2,14.2,',m:'2.2,0.2,2.2,',n:'0.2,0.2,0.2,0.2,0.2,',o:'0.2,7.2,4.10,',p:'2.2,0.2,-3.10,',q:'2.2,2.2,4.2,2.14,0.2,2.2,4.2,5.6,0.2,2.2,'}[w=u[v]]||w};u.join('').split(',').map(function(n){n=n.split('.');d=x.abs(n[1]/6);if(h=n[0]){f=new Float32Array(i=p*d);b=c[k='createBuffer'](1,i,p);for(;i--;f[i]=x.cos(i*x.PI/p*x.pow(2,h/12-a)*880));b.gain=.1;b.getChannelData(0).set(f);s=c[k+'Source']();s.buffer=b;s.connect(c.destination);s.noteOn(t)}t+=d})})