diff --git a/index.js b/index.js index ba1b350..41a4ec6 100644 --- a/index.js +++ b/index.js @@ -15,7 +15,6 @@ var pauseTimeoutId; var sampleIntervalIds = []; let EXCLUDED_CHANNELS = []; -let HUFFMAN_COMRPRESSION = true var TEXT_TO_SEND = "U"; var RANDOM_COUNT = 128; @@ -55,7 +54,6 @@ var PACKET_SIZE_BITS = 8; var EXPECTED_ENCODED_BITS = []; var EXPECTED_BITS = []; var EXPECTED_TEXT = ''; -var EXPECTED_COMPRESSION = []; const packetReceivedBits = []; const packetUninterlievedBits = []; @@ -65,6 +63,7 @@ let packetDataByteCount = -1; function handleWindowLoad() { const printable = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`-=~!@#$%^&*()_+[]\\{}|;':\",./<>?"; TEXT_TO_SEND = new Array(RANDOM_COUNT).fill(0).map(() => printable[Math.floor(Math.random() * printable.length)]).join(''); + // grab dom elements sendButton = document.getElementById('send-button'); isListeningCheckbox = document.getElementById('is-listening-checkbox'); @@ -405,10 +404,6 @@ function applyErrorCorrection(bits) { } return encodedBits; } -function applyCompression(bytes) { - if(!HUFFMAN_COMRPRESSION) return bytes; - return bytes; -} function getChannels(includeExcluded = false) { var audioContext = getAudioContext(); const sampleRate = audioContext.sampleRate; @@ -818,21 +813,15 @@ function getAudioContext() { } return audioContext; } -function byteToBitArray(byte) { - return byte.toString(2).padStart(8, '0').split('').map(Number); -} + function textToBits(text) { const bits = []; - if(typeof text === 'string') { - for(let i = 0; i < text.length; i++) { - bits.push(...byteToBitArray(text[i].charCodeAt(0))); - } - } else if(Array.isArray(text)) { - return text.reduce((bits, byte) => { - bits.push(...byteToBitArray(byte)) - }) + for(let i = 0; i < text.length; i++) { + // const unicode = text.codePointAt(i).toString(2).padStart(16, '0'); + const ascii = text[i].charCodeAt(0).toString(2).padStart(8, '0'); + bits.push(ascii); } - return bits; + return bits.join('').split('').map(Number); } function handleSendButtonClick() { receivedDataTextarea.value = ''; @@ -840,8 +829,7 @@ function handleSendButtonClick() { const text = document.getElementById('text-to-send').value; EXPECTED_TEXT = text; - EXPECTED_COMPRESSION = applyCompression(text); - sendBits(textToBits(EXPECTED_COMPRESSION)); + sendBits(textToBits(text)); } function getAnalyser() { if(analyser) return analyser;