A morse code translation library written in JavaScript
Working implementation of morsejs
morsejs:translate will translate a given String to an Array of Numbers found in the signal enumeration (by default: -1
, 0
, and 1
).
The return structure is formated so that it is similar to the transmission format of a morse message. This means that it includes the spacing between symbol signals, the symbols themselves, and words. See transmission of morse code on Wikipedia for a better explanation.
By default, this library transmits -1
for any padding between signals, symbols, or words. Similarly, it sends 0
for a short signal and 1
for a long signal. Really, if we were to follow the transmission format correctly, we should send 0
for padding and 1
for short or long since it would be more aking to on/off.
The rational for this is that we can compress the data from having to have 3 1
's for a long to just one number but since we don't distinguish between the different paddings, we are wasting space anyway. That's why this may or may not change or maybe become a compression setting.
Consider the transmission of "SOS":
1 2 3
123456789012345678901234567890
-_-_-___---_---_---___-_-_-
morsejs would actually return:
[ 0, -1, 0, -1, 0, -1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, 0, -1, 0, -1, 0 ]
npm install -g morsejs
npm install --save morsejs
morsejs hello world
If you just want to plainly translate a message, you can just use translate
var message = morsejs.translate("hello world");
There are plugins that can use the output from morsejs to render it in different ways.