Skip to content

0xD34F/morse-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 

Repository files navigation

Азбука Морзе

Реализация транслятора азбуки Морзе. Демо.

Трансляция текста в звуковые сигналы

Morse.play('SOS');

Возвращает false если переданная строка пустая, или трансляция в момент вызова уже осуществляется, в противном случае возвращает true.

При успешном вызове генерируется событие morse-signal-on.

Узнать, осуществляется ли трансляция

Morse.isPlaying();

Остановка трансляции

Morse.stop();

Вызывается автоматически при завершении трансляции.

Возвращает false если трансляция в момент вызова не осуществляется, в противном случае возвращает true.

При успешном вызове генерируется событие morse-signal-off.

Установка частоты звука

Morse.frequency = 1000;

Задаётся в герцах.

Дефолтное значение: 800.

Установка скорости воспроизведения

Скорость воспроизведения определяется единицей времени - длительностью звучания одной точки, в миллисекундах (длительность тире - три единицы, пауз - одна, три и семь единиц между элементами одного знака, знаками и словами соответственно).

Задать скорость можно двумя способами - напрямую, определив единицу времени:

Morse.timeUnit = 50;

Либо через количество передаваемых слов в минуту (WPM - words per minute):

Morse.WPM = 15;

В последнем случае единица времени будет расчитана по формуле timeUnit = 1200 / WPM (разумеется, WPM является усреднённым значением, ожидать что количество передаваемых в минуту слов будет точно соответствовать указанному не следует).

Дефолтное значение timeUnit: 100.

Генерирование wav-файла и его скачивание

Morse.download({
    message: 'Hello, world!',
    ...
})

В качестве единственного параметра принимает объект настроек, доступны следующие свойства (значения по умолчанию указаны в скобках):

  • message: текст, который надо транслировать в wav-файл
  • frequency: частота сигнала (текущее значение Morse.frequency)
  • timeUnit: единица времени (текущее значение Morse.timeUnit)
  • channels: количество каналов (1)
  • sampleRate: частота дискретизации ((frequency или текущее значение Morse.frequency) * 2.5)
  • bitsPerSample: количество бит на один сэмпл (16),
  • amplitude: амплитуда (32767)
  • fileName: имя выходного файла (совпадает со строкой message)

Перевод текста в символы азбуки Морзе

Morse.encode('SOS'); // "... --- ..."

Перевод символов азбуки Морзе в текст

Morse.decode('.... . .-.. .-.. ---'); // "hello"

About

Morse code translator (text / audio)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published