Menu

Tree [e62049] master /
 History

HTTPS access


File Date Author Commit
 debian 2017-07-09 acerion acerion [a0f0e3] Integrating changed to debian files, as found i...
 m4 2018-08-19 Nate Bargmann Nate Bargmann [e62049] Remove files generated by configure from reposi...
 po unknown
 src 2018-08-18 Nate Bargmann Nate Bargmann [e07edc] Initial removal of Autotools generated files
 .gitignore 2018-08-19 Nate Bargmann Nate Bargmann [e62049] Remove files generated by configure from reposi...
 AUTHORS 2014-08-16 acerion acerion [94bdd0] Updating reference to acknowledgements file.
 COPYING unknown
 ChangeLog 2017-05-04 acerion acerion [12348c] Describing recent changes
 HISTORY 2015-09-22 acerion acerion [69a4d0] HISTORY file will be no longer updated
 INSTALL 2017-02-11 acerion acerion [83fa2c] Updating version numbers for the project and li...
 Makefile.am 2018-08-19 Nate Bargmann Nate Bargmann [e62049] Remove files generated by configure from reposi...
 Makefile.inc.in 2017-02-11 acerion acerion [183145] Updating year in copyright notices.
 NEWS 2017-02-11 acerion acerion [b14cc1] Updating some files with new information before...
 README 2017-02-12 acerion acerion [20c98f] Last minute changes.
 README.Git-checkout 2018-08-19 Nate Bargmann Nate Bargmann [e62049] Remove files generated by configure from reposi...
 THANKS 2014-08-16 acerion acerion [1076aa] File with contents moved from README. THANKS is...
 TODO 2014-08-16 acerion acerion [a5b421] A TODO file, finally!
 autogen.sh 2018-08-19 Nate Bargmann Nate Bargmann [e62049] Remove files generated by configure from reposi...
 configure.ac 2018-08-19 Nate Bargmann Nate Bargmann [e62049] Remove files generated by configure from reposi...
 icon_unixcw.svg unknown
 icon_unixcw.xpm unknown
 qa_build_debian.sh 2017-02-11 acerion acerion [83fa2c] Updating version numbers for the project and li...
 qa_compile_headers.sh 2014-08-16 acerion acerion [3fb837] Simple script that checks for potential problem...
 qa_test_configure_flags.sh 2014-08-16 acerion acerion [a6f798] Some small updates. Nothing really important.
 qa_valgrind_cwcp.sh 2015-09-21 acerion acerion [2ac6e5] Improving the qa script
 qa_valgrind_libcw_test_internal.sh 2014-12-31 acerion acerion [d6bbe2] Adding a simple script that invokes valgrind on...
 qa_valgrind_libcw_test_public.sh 2015-09-21 acerion acerion [4fc72c] Script to run libcw_test_public under valgrind
 qa_valgrind_xcwcp.sh 2015-09-21 acerion acerion [606036] Script to start xcwcp under valgrind
 stamp-h unknown
 unixcw-2.3.spec unknown
 unixcw-3.5.1.lsm 2017-02-11 acerion acerion [83fa2c] Updating version numbers for the project and li...

Read Me

This is README file for unixcw project version 3.5.1.

unixcw is a project providing libcw library and a set of programs
using the library: cw, cwgen, cwcp and xcwcp. The programs are
intended for people who want to learn receiving and sending Morse
code. unixcw is developed and tested primarily on GNU/Linux system.





For general description of changes see HISTORY file.
For detailed description of changes see NEWS file.
For details on building unixcw from sources see INSTALL file.
For acknowledgements see THANKS file.
For full text of software license see COPYING file.





The heart of the unixcw package is libcw library.  It offers the
following basic CW services to a caller program:

 - Morse code character translation tables, and lookup functions
 - Morse code low-level timing calculations
 - A 'sidetone' generation and queueing system, using either the system sound
   card or the console speaker
 - Optional keying control for an external device, say a transmitter, or an
   oscillator
 - CW character and string send routines, tied in with the character lookup
 - CW receive routines, also tied in to the character lookup
 - Adaptive speed tracking of received CW
 - An iambic keyer, with both Curtis 8044 types A and B timing
 - Straight key emulation





The library uses signals and threads to create a background task in
which it performs the majority of its work, leaving the main program
free to handle other tasks.  For example, the simplest CW sending
program that uses the library looks like this (compile it with
"gcc -lcw example.c"):


#include <libcw.h>

int main ()
{
        /* Library initialization */
        cw_generator_new(CW_AUDIO_SOUNDCARD, NULL);
        cw_generator_start();

        /* Start the string sending in the background. */
        cw_send_string("Hello, world");

        /* Wait for the string send to complete. */
        cw_wait_for_tone_queue();

        /* Library cleanup */
        cw_generator_stop();
        cw_generator_delete();

        return 0;
}


Instead of the cw_wait_for_tone_queue() call, this program could
instead handle any other work it has to do, asynchronously from the CW
library's sending.

As well as the handful of applications included in unixcw, the
following types of programs might also use libcw as their core:

 - a fully graphical CW send and receive station
 - a 'CWbiff' that announces incoming email sender in CW
 - an offline CW reader program, capable of decoding CW from MP3 or
   other audio file formats
 - a simple Iambic keyer for an external transmitter, using the mouse
   buttons as the keyer paddles
 - a more comprehensive CW tutor program
 - an automated Morse Code testing application

libcw is written in C for easy portability and use.





In addition to libcw, the package comes with four basic applications:

 - cw: a CW sending 'engine' that reads characters from stdin, sounds
   them on either the sound card or the console speaker, and echoes
   them to stdout.

 - cwgen: a simple random character generator that can be used as a
   feed for cw.  For example:

               cwgen | cw

 - cwcp: a curses-based program that generates groups of characters
   from selected sets, words, and CW abbreviations randomly, and
   sounds them using libcw.  It owes much to CP222.EXE, by VU2ZAP.

 - xcwcp: a CW tutor program for X Window environment.  It offers the
   same random and keyboard sending as 'cwcp', and in addition can
   read CW that sent to it using the keyboard or mouse as a keyer,
   making it useful for sending as well as receiving practice.





Relationship between version of unixcw package and version of libcw is
following:

    unixcw      libcw      release date
    3.0         3.0.0      2011.12.13
    3.0.1       3.0.1      2012.01.08
    3.0.2       3.0.1      2012.06.18
    3.1.0       4.0.0      2012.06.30
    3.1.1       4.1.1      2012.07.04
    3.2.0       5.0.0      2013.01.11
    3.3.0       6.0.1      2013.12.10
    3.3.1       6.1.1      2014-04-23
    3.4.0       6.2.1      2014-11-11
    3.4.1       6.3.1      2015-01-02
    3.4.2       6.4.1      2015-06-17
    3.5.0       6.5.1      2015-10-06
    3.5.1       6.6.1      2017-02-12





Primary development platform for unixcw is Debian GNU/Linux. An effort
has been made to compile and test at least parts of some versions of
unixcw package on following platforms:
 - FreeBSD 9.3
 - FreeBSD 10.0
 - OpenBSD 5.5
 - Alpine Linux 3.1
See INSTALL file for more information about compilation on different
OSes.





unixcw is distributed under the terms of GNU GPL license, version 2 or
later.  See COPYING for details.





unixcw was developed by Simon Baldwin, G0FRD <simon_baldwin@yahoo.com>.
unixcw is developed by Kamil Ignacak <acerion@wp.pl>.





Website: unixcw.sf.net





Comments, questions, bug reports:
 - create ticket: http://sourceforge.net/p/unixcw/tickets/, or
 - write directly to acerion@wp.pl
I reserve a right to a month of delay to reply.
MongoDB Logo MongoDB