function randInt(min,max) { return Math.floor(Math.random() * (max - min + 1)) + min; } function hexToRGB(hex) { var r = parseInt(hex.slice(0, 2), 16), g = parseInt(hex.slice(2, 4), 16), b = parseInt(hex.slice(4, 6), 16); return [r,g,b]; } function convertData(text, base){ if(text.length < 150) { website = ""; return; } var output = ""; for (var i = 0; i < text.length; i++) { var letter = text[i].charCodeAt(0).toString(base); output += letter; } return output; } function generateString() { var final = ""; var length = randInt(50,100); for(var i = 0; i < length; i++) { final += randInt(0,1); } return final; } var canvas = document.getElementById("canvas"); var visualCtx = canvas.getContext("2d"); var audioCtx = new window.AudioContext(); var doAnimate = true; var freq = [261.63, 293.66, 329.63, 349.23, 392.00, 440.00, 493.88, 523.25]; canvas.width = window.innerWidth; canvas.height = window.innerHeight; visualCtx.fillStyle = "#000"; visualCtx.fillRect(0,0, canvas.width, canvas.height); function generateFrames(frame, string, width, height, rate) { // Rate is in bits per second // 30 frames per second var bitsPerSection = Math.ceil(canvas.width/width)+1; var shift = canvas.width-rate*width*frame/30; var bitsToCalc = Math.ceil(rate*width*frame/(width*30)); var output = []; for(var i = bitsToCalc-bitsPerSection; i < bitsToCalc; i++) { try { var x = i*width; if(parseInt(string[i])) { output.push([x+shift, -height+canvas.height/2]); output.push([x+width+shift, -height+canvas.height/2]); if(string[i-1] === 0) { output.push([x+width+shift, canvas.height/2]); } } else { output.push([x+shift, canvas.height/2]); output.push([x+width+shift,canvas.height/2]); } } catch(err) {} } return output; } function drawFrame(frame ,input) { visualCtx.fillRect(0,0, canvas.width, canvas.height); visualCtx.beginPath(); var frame1 = generateFrames(frame, input, 100, 100, speed); visualCtx.moveTo(0,(canvas.height/2)-100); for(var i = 1; i < frame1.length; i++) { visualCtx.lineTo(frame1[i][0],frame1[i][1]); } visualCtx.strokeStyle="#006064"; visualCtx.stroke(); } function drawFrame2(frame ,input) { visualCtx.fillRect(0,0, canvas.width, canvas.height); var ColorList = ["006064"/*,"00838F","0097A7","00ACC1","00B8D4","00E5FF","18FFFF","84FFFF"*/]; for(var j=0;j