Реализация транслятора азбуки Морзе. Демо.
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.
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"