Giter Site home page Giter Site logo

cutecw's Introduction

Cute CW: learn Morse Code

Introduction

CuteCW is a graphical interface that provides Carrier Wave (CW) training with a number of different training modes and games. If you want to learn Morse Code (aka CW), this app uses modern teaching conventions to help you learn it as fast as possible.

Modes

CuteCW currently offers the following training modes:

  • Recognition Training
  • Speed Training
  • Word Training
  • Grouping Training
  • Straight Key Training

Additionally it provides the following extras:

  • Type Morse Code
  • Read to me
  • Word game
  • Grouping game
  • Key Invaders

Background

I’ve had thoughts for a long time about how we train ourselves in CW (“Carrier Wave” otherwise known as Morse Code). After preparing for a presentation about learning CW I realized software could really help us out in ways not yet seen. This is my effort to help decrease the pain in training your brain to understand Morse Code.

Download

You can download the source code or pre-built binaries from:

http://www.hamtools.org/cutecw/

You can also access the git repository, provided by githib, from:

http://www.github.com/hardaker/CuteCW/

Further Information

More documentation can be found at:

http://www.hamtools.org/cutecw/

The growing list of CHANGES and the hopefully shrinking TODO list

Compiling It

CuteCW is a Qt6 based program. That means to compile it you’ll need some distribution of Qt6 You can download any of the recent Qt SDK sets and open the cutecw.pro file using qtcreator, which will then be able to compile and edit the code. Or, if you want to compile it via a terminal you can try the following steps:

  1. qmake6
  2. make
  3. optionally: make install

cutecw's People

Contributors

corecode avatar hardaker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cutecw's Issues

news fetching is broken

Fetching from news sources in read-to-me-mode is broken (if nothing else, the URLs are 10 years old and probably out of date).

In Recognition Training mode program stopps accepting input when two keys are pressed at the same time

When more than one key is pressed during Recognition Training mode, application
stopps accepting aditional input.

During practicing the letter 'k' for the third time, I hit letters 'k' and 'j'
at the same time. It shouted 'KEY PRESSED EARLY' and and every next key was
dismised with 'ignoring key press; too long and probably an interruption'

Version-Release number of selected component (if applicable):
CuteCW 1.0

Steps to Reproduce:

  1. Run cutecw,
  2. select Recognition Training on main screen.
  3. Start it by clicking Play. Do some morse code pracicing
  4. When you feel like it, "accidently" press two keys, like 'k' and 'j', when
    you are supposed to press only 'k'

Actual results:
5. from now on cutecw won't accept any input.

This bug was reported in RedHat bugzilla as https://bugzilla.redhat.com/show_bug.cgi?id=700881

N900 - Recognition Training lacks accuracy feedback

The screenshots for the Linux version look great.
N900 Suggestions:
Make the touchscreen keyboard disappear when the hardware keyboard is open to be replaced with accuracy graphs.
Have a button that switches between touchscreen keyboard and the graphs.
Change the appearance of the touchscreen keys based on accuracy.

great program btw :-)

Qt5: Audio in Training is cut off early swallowing parts of the tone output

I just compiled the convert-to-qt5 branch on my Ubuntu 15.10 machine and found that the audio seems to stop early. So e.g. for the k you only hear -. and the last dah is swallowed. I hacked a quick workaround which I am going to attach as a demonstration. The proper fix should probably not stop the audio so early I guess.

Here is the diff:

diff --git a/Morse.cpp b/Morse.cpp
index 57199d0..2749967 100644
--- a/Morse.cpp
+++ b/Morse.cpp
@@ -266,6 +266,14 @@ QTime Morse::playIt(QChar c, bool addLeadInPause) {
         add(pause());  // allows audio device to kick in (otherwise distortion can occur)
     m_leadInPause = sequenceTime();
     add(c, false); // add the pause in maybePlaySequence so it can calculate the sequence end
+
+    /* add a letter pause twice so audio does not stop early (cutting of
+     * the last dit or dah).
+     * This is a workaround and we should probably just let the audio
+     * run a little longer.
+     */
+    add(m_letterPause);
+    add(m_letterPause);
     return maybePlaySequence(true);
 }

This fixes the issue for my use case.

Makefile, DESTDIR, bindir

DESTDIR isn't used but not standard INSTALL_ROOT is used instead.

The binary is copied to local/bin and it is hardcoded.

I think you shoud use DESTDIR and make a paramater to setup bindir (default as local/bin)

N900 - CuteCW doesn't share audio

N900 1.0-2

If you play music with media player you will hear media player and not cutecw.

Maybe this is something to do with pulseaudio? Unfortunately padsp doesn't work on maemo.

sound stops working after a short time

Hi,
I tested cutecw 0.5-1 from maemo extras-testing repository.
I started recognition training, but the sound stops working after
a few minutes. I always have to restart the application to get
sound working again.

btw, the ui is much more useable since the last version, only the
"Read to me" UI is still hardly usable.

regards
Nicolai

No sound using qt5 branch

I just tried a re-package of cutecw in Mageia cauldron using your 'convert-to-qt5' branch - and while it builds fine there is no sound at all (with or without pulesaudio enabled).

[baz@jackodesktop ~]$ cutecw
xkbcommon: ERROR: failed to add default include path auto
Qt: Failed to create XKB context!
Use QT_XKB_CONFIG_ROOT environmental variable to provide an additional search path, add ':' as separator to provide several search paths and/or make sure that XKB configuration data directory contains recent enough contents, to update please see http://cgit.freedesktop.org/xkeyboard-config/ .
Raw audio format not supported by backend, cannot play audio.
new morse2
original buffer size: 0
switch to: 0
QLayout: Attempting to add QLayout "" to QWidget "", which already has a layout
QLayout: Attempting to add QLayout "" to QWidget "", which already has a layout
QLayout: Attempting to add QLayout "" to QWidget "", which already has a layout
Raw audio format not supported by backend, cannot play audio.
using null output device, none available

--------------------------------------------

Backend is Phonon Gstreamer 4.7.1

Any ideas?

Barry

Unable to run on newer Linux distros (specifically Ubuntu)

When I attempt to run cutecw, I get the following error:

$ ./cutecw-1.0.linux
./cutecw-1.0.linux: error while loading shared libraries: libQtMultimedia.so.4: cannot open shared object file: No such file or directory

I have installed all QT libraries using 'apt-get install libqt4-*' . In researching the issue it appears as of QT 4.7 the multimedia library is no longer included.

The Windows distribution works fine, but I want to install this on my daughter's laptop which runs Ubuntu. Is there a newer library that should be used instead of multimedia, or can you suggest a way to get it working without it?

Thank you!

Jeremy
KB7QOA

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.