From f6747b9dd247170279e5449ac60e0eb8e5b223ae Mon Sep 17 00:00:00 2001 From: Dragon Fire Date: Thu, 4 Apr 2024 23:02:07 -0400 Subject: [PATCH] Fix --- commands/voice/morse.js | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/commands/voice/morse.js b/commands/voice/morse.js index a06e1be9..147aff0f 100644 --- a/commands/voice/morse.js +++ b/commands/voice/morse.js @@ -52,8 +52,12 @@ module.exports = class MorseCommand extends Command { const processedScript = this.processScript(str); const data = []; const sampleFreq = 8000; - const timeUnitSecs = 0.06; - const timeUnitSamples = Math.floor(timeUnitSecs * sampleFreq); + const dotSecs = 0.065; + const dotSamples = Math.floor(dotSecs * sampleFreq); + const dashSecs = 0.185; + const dashSamples = Math.floor(dashSecs * sampleFreq); + const breakSecs = 0.5; + const breakSamples = Math.floor(breakSecs * sampleFreq); let skip = false; for (let cIndex = 0; cIndex < processedScript.length; cIndex++) { if (skip) { @@ -62,31 +66,31 @@ module.exports = class MorseCommand extends Command { } const c = processedScript[cIndex]; if (c === '.') { - for (let i = 0; i < timeUnitSamples * 8; i++) { - if (i > timeUnitSamples) { - data[(cIndex * timeUnitSamples) + i] = 127; + for (let i = 0; i < dotSamples + breakSamples; i++) { + if (i > dotSamples) { + data[(cIndex * dotSamples) + i] = 127; } else { const libIndex = this.library[44 + i]; - data[(cIndex * timeUnitSamples) + i] = libIndex; + data[(cIndex * dotSamples) + i] = libIndex; } } } else if (c === '-') { - for (let i = 0; i < timeUnitSamples * 16; i++) { - if (i > (timeUnitSamples * 3)) { - data[(cIndex * timeUnitSamples) + i] = 127; + for (let i = 0; i < dashSamples + breakSamples; i++) { + if (i > dashSamples) { + data[(cIndex * dashSamples) + i] = 127; } else { - const libIndex = this.library[44 + timeUnitSamples + i]; - data[(cIndex * timeUnitSamples) + i] = libIndex; + const libIndex = this.library[44 + dashSamples + i]; + data[(cIndex * dashSamples) + i] = libIndex; } } } else if (c === ' ' && processedScript[cIndex + 1] === ' ') { - for (let i = 0; i < timeUnitSamples * 28; i++) { - data[(cIndex * timeUnitSamples) + i] = 127; + for (let i = 0; i < breakSamples * 3; i++) { + data[(cIndex * breakSamples) + i] = 127; } skip = true; } else { - for (let i = 0; i < timeUnitSamples * 12; i++) { - data[(cIndex * timeUnitSamples) + i] = 127; + for (let i = 0; i < breakSamples; i++) { + data[(cIndex * breakSamples) + i] = 127; } } }