UNPKG

cw

Version:

A comprehensive Morse Code (CW) library

105 lines (71 loc) 2.07 kB
# CW.js [![Node.js CI](https://github.com/mastercw/cw.js/workflows/Node.js%20CI/badge.svg)](https://github.com/mastercw/cw.js/actions) [![NPM](https://img.shields.io/npm/v/cw)](https://www.npmjs.com/package/cw) A comprehensive Morse Code (CW) library, brought to you by [Master CW](https://www.mastercw.com/). ## Usage ### Node Install the package via `npm` or `yarn`: ```bash $ npm install cw ``` #### ES Modules ```javascript import cw from "cw"; console.log(cw.codes["C"]); // "-.-." cw.play("hello world"); ``` #### CommonJS ```javascript const cw = require("cw"); console.log(cw.codes["C"]); // "-.-." ``` ### Browser You can either build the browser bundle yourself with: ```bash $ npm install $ npm run build ``` Which will create `dist/cw.js` and `dist/cw.min.js`. Or you can use it from a CDN: #### jsDelivr CDN (Recommended) ```html <script src="https://cdn.jsdelivr.net/npm/cw@0.4.0/dist/cw.min.js"></script> ``` or just use `latest`: ```html <script src="https://cdn.jsdelivr.net/npm/cw@latest/dist/cw.min.js"></script> ``` #### Legacy CDN The legacy CDN is still available for backwards compatability but will be deprecated soon: ```html <script src="https://cwjs.mastercw.com/cw.min.js"></script> ``` Once the script is loaded you can call the `cw.play()` function: ```html <script> cw.play("hello world"); </script> ``` Options can be passed to customize the played sequence: ```js cw.play("abcd", { tone: 800, // tone frequency in Hz wpm: 20, // character speed in words per minute (WPM) fwpm: 10, // farnsworth speed in words per minute (WPM) }); ``` In cases of multiple plays, it is recommended to create a global `audioContext` object: ```js // Initialize audio context once let actx = cw.initAudioContext({ tone: 600 }); // tone is passed here // Reuse the audio context for multiple plays cw.play("abcd", { actx, wpm: 10 }); cw.play("efgh", { actx, wpm: 20 }); cw.play("ijkl", { actx, wpm: 30 }); ``` For more examples see the [examples/](examples/) directory. ### Testing ```bash $ npm test ``` ## License ISC