Code Monkey home page Code Monkey logo

learn-morse-code's Introduction

Learn Morse Code

This web app helps beginners learn Morse code through several features, the main of which is a telegraph with live translation.

Watch the video demo here.

Features

  • Telegraph
    Press the button(s) to generate tones. See a live translation of your tones in both Morse code and alphanumeric characters. Customize the telegraph by choosing the telegraph type, tone frequency, and speed (WPM).

  • Practice Mode
    Freely use the telegraph to practice Morse code while reading about it in the sidebar.

  • Challenge Mode
    Take timed challenges to translate words into Morse code. Customize challenges by changing the word list category, word count, and word order.

  • Legend
    See the Morse alphabet and other characters in the legend. Tap on a legend item to hear the Morse translation.

  • Morse Translator
    Type in the translator below the legend and see/listen to the Morse translation.

App Info

This web app was built using HTML, CSS, and ReactJS. It utilizes React hooks to manage state and component lifecycle.

See it live here: https://genemecija.github.io/learn-morse-code/

Build Instructions

To build and run the project:

cd src/
npm install
npm start

learn-morse-code's People

Contributors

dependabot[bot] avatar genemecija avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

learn-morse-code's Issues

Define licence

Hello there, is it possible to add to the license under which this repository is distributed?

Audio offset to WPM correlation feels off when set to 30WPM

Hi I used your site for a few days at a 15WPM setting and it worked fine at the speed I was keying but at higher speeds it seems to not properly register an appropriate length dah (3x the length of the dit) instead it feels more like I have to give 5-6 times the dit duration for it to register a dah. It's just so much more convenient to be able to pull up a webpage on any device than to have to download and run a specific application on every device. Also when comparing to locally installed morse keyers for windows and android their respective settings for 10 WPM roughly match the setting on the site at 30 WPM. To be clear I greatly appreciate you making it available but with just a little tweak I think it would be a lot better feeling practice tool. From going through most of the code it looks like the issue is here:

/learn-morse-code/tree/master/src/useStraightKey.js

and the specific section of code is:
// DitDah Length
const ditMaxTime = 1200/wpm * 0.3
const letterGapMinTime = ditMaxTime3
const wordGapMaxTime = ditMaxTime
7

It would be better to switch the WPM setting to a text field in MS with a guess as to what WPM the set MS value correlates to eg. 80 MS dit and 240 MS dah for 13 WPM (according to CW communicator at least)

Mode B

Wonderful site! Any chance of implementing Mode B for paddle input?

Also, how do I build this project (so that I may implement this myself)?

Punctuation Challenge.

Hello, Mr. Mecija This app you have made has helped me tremendously to learn Morse code I knew nothing a few weeks ago, but now I have a reasonably good understanding of a lot of the letters. I am, however, very rusty at the punctuation and other symbols and would like to see a challenge added to make learning easier. Thanks again for making such a wonderful app.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.