Provided by: xcwcp_3.0.2-1_amd64 bug


       xcwcp - X Window-based Morse tutor program


       xcwcp     [-s --system=SYSTEM]    [-d --device=DEVICE]    [-w --wpm=WPM]    [-t --tone=HZ]
       [-v --volume=PERCENT]  [-g --gap=GAP]   [-f,   --infile=FILE]   [-F,   --outifile=FILE]
       [-h --help] [-V --version]

       xcwcp  installed  on  GNU/Linux  systems understands both short form and long form command
       line options.  xcwcp installed on other operating systems may understand  only  the  short
       form options.

       There are no mandatory options.

       Options  may  be  predefined in the environment variable XCWCP_OPTIONS.  If defined, these
       options are used first; command line options take precedence.


       xcwcp is a X Window-based interactive Morse code tutor program.  It lets you choose from a
       number  of  options  for  practice, including sending random characters, random words, and
       characters from the keyboard.  It will also receive Morse code that  you  send  using  the
       keyboard or mouse as a Morse keyer, and display the characters it sees.

       xcwcp  understands  the  following command line options.  The long form options may not be
       available in non-LINUX versions.

       -s, --system=SYSTEM
              Specifies the way that xcwcp generates tones.  Valid values are: console for  tones
              through the console speaker, alsa for tones generated through the system sound card
              using ALSA sound system, oss for tones generated through system  sound  card  using
              OSS  sound system, soundcard for tones generated through the system sound card, but
              without explicit selection of sound system. These values can be shortened  to  'c',
              'a', 'o', or 's', respectively. The default value is 'oss'.

       -d, --device=DEVICE
              Specifies  the  device file to open for generating a sound.  xcwcp will use default
              device if none is specified.  The  default  devices  are:  /dev/console  for  sound
              produced  through  console, default for ALSA sound system, /dev/audio for OSS sound
              system.  See also NOTES ON USING A SOUND CARD below.

       -w, --wpm=WPM
              Sets the initial sending speed in words per minute.  The value must  be  between  4
              and 60.  The default value is 12 WPM.

       -t, --tone=HZ
              Sets  the  initial sounder pitch in Hz.  This value must be between 0 and 4,000.  A
              value of 0 selects silent operation, and can be used for  timing  checks  or  other
              testing.  The default value is 800Hz,

       -v, --volume=PERCENT
              Sets  the  initial sending volume, as a percentage of full scale volume.  The value
              must be between 0 and 100.  The default value is 70 %.  Sound  volumes  work  fully
              for sound card tones, but xcwcp cannot control the volume of tones from the console
              speaker.  In this case, a volume of zero is silent, and all other volume values are
              simply sounded.

       -g, --gap=GAP
              Sets  the  initial  extra gap, in dot lengths, between characters (the 'Farnsworth'
              delay).  It must be between 0 and 60.  The default is 0.

       -f, --infile=FILE
              Specifies a text file that xcwcp can read to  configure  its  practice  text.   See

       -F, --outfile=FILE
              Specifies a text file to which xcwcp should write its current practice text.

       xcwcp  offers  GUI  controls for changing the speed, tone frequency, 'Farnsworth' gap, and
       mode of the program.  All of the major controls are placed on the application toolbar.

       The main GUI window is used to display the characters that xcwcp sends or receives.

       To find out more about what a particular GUI control does, use the "What's  this..."  icon
       (the '?' at the far right of the toolbar).

       xcwcp sends random characters in groups of five, with a space between each group.

       When  sending  random  words, xcwcp sends the complete word, followed by a space.  Because
       short words are easier to copy without writing, xcwcp's default dictionary  contains  only
       three, four, and five-letter words in its random words list.

       xcwcp  chooses  at random from a list of around 3000 words in its default dictionary.  You
       can change  this  text  using  a  configuration  file,  read  at  startup.   See  CREATING

       xcwcp  can  receive  Morse code, and display it in its main GUI window.  To key Morse code
       into the program, select the Receive Keyed CW mode, and press the stop/start button.  Now,
       place  the  mouse  cursor  over the central window of the program.  By pressing the middle
       mouse button, you should be able to key Morse into the program as if the mouse button  was
       a straight Morse key.

       For better keying, you can use the left and right mouse buttons as if they were paddles on
       an Iambic keyer.  This will send Morse code at the exact rate set on the Speed control.

       You can also use the keyboard for keying.  In this case, any of  the  Up  or  Down  cursor
       keys,  Space,  Enter,  or  Return  may be used as the straight key, and the Left and Right
       cursor keys act as the two paddles of an Iambic keyer.

       By default, xcwcp will try to follow the speed of the Morse code that you send to it.   It
       is  possible  to switch this tracking off, in which case the program switches to receiving
       only at the exact speed set on the Speed control.  However, fixed speed receiving is very,
       very  picky  about receiving only extremely accurately timed Morse code, so unless you are
       striving for complete perfection, you may find that speed tracking is more comfortable.

       The speed tracking in xcwcp can sometime be confused by very wide and  abrupt  changes  in
       speed.   If  it is having difficulty finding the speed you are sending at, you can use the
       File pulldown menu to synchronize the receive speed to the speed set on the Speed control.

       At any time, the mode selection combowidget can get focus by using Alt+M.   You  can  then
       use  the  space bar or the up/down keys to change the mode.  The Tab key moves to the next
       widget, so you can change speed, etc.  Shift+Tab moves backwards.

       By default, xcwcp tries to open OSS device "/dev/audio" to access the system  sound  card.
       This is generally the correct device to use, but for systems with special requirements, or
       those with multiple sound cards, the option -d or --device, combined with -s  or  --system
       can  be  used  to specify the device and audio system for sound card access.  If the sound
       card device cannot be set up, xcwcp prints the error message

              cannot set up soundcard sound

       and exits.

       Sound card devices, when opened  through  OSS  sound  system,  are  usually  single-access
       devices,  so  that  when  one process has opened the device, other processes are prevented
       from using it. In such cases xcwcp will of course conflict with any  other  programs  that
       expect  exclusive use of the system sound card (for example, MP3 players).  If xcwcp finds
       that the sound card is already busy, it prints the error message

              open /dev/audio: Device or resource busy

       and exits.

       The sound card device is not used if xcwcp is only sending tones on the console speaker.

       xcwcp first tries to access sound card using OSS audio system and default OSS audio device
       name ('/dev/audio'), unless user specifies other audio device with option -d or --device.

       If  opening  soundcard  through OSS fails, xcwcp tries to access the sound card using ALSA
       audio system, and default ALSA audio device name ('default'), unless user specifies  other
       audio device with option -d or --device.

       If  opening soundcard through ALSA also fails, xcwcp tries to access system console buzzer
       using default buzzer device '/dev/console', unless user specifies other audio device  with
       option -d or --device.

       It  is very common that in order to access the console buzzer device user has to have root
       privileges.  For that reason trying to open console buzzer almost always fails.   This  is
       not a program's bug, this is a result of operating system's restrictions.  Making xcwcp an
       suid binary bypasses this restriction.  The program does not fork() or exec(),  so  making
       it  suid  should  be  relatively safe.  Note however that this practice is discouraged for
       security reasons.

       As stated, user can tell xcwcp which device to use, using -d or  --device  option.   Which
       device  files  are suitable will depend on which operating system is running, which system
       user ID runs xcwcp, and which user groups user belongs to.

       xcwcp contains a default set of modes and practice text that should  be  enough  to  begin
       with.   It  can  however  read  in  a  file  at startup that reconfigures these to provide
       different character groupings, word sets, and other practice data.

       To read a configuration file, use the -i or --infile command line option.  The file should
       introduce each xcwcp mode with a section header in '[' ... ']' characters, followed by the
       practice text for that mode, with elements separated by whitespace.  Lines starting with a
       semicolon or hash are treated as comments.  For example

              ; Simple example mode
              [ A to Z ]
              A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

       xcwcp  will  generate  five  character  groups  for  modes  whose  elements are all single
       characters, and treat other modes as having  elements  that  are  complete  words.   As  a
       starting  point for customized modes, xcwcp will write its default configuration to a file
       if given the undocumented -# option, for example "xcwcp -# /tmp/xcwcp.ini".


       xcwcp is an X Window rewrite of cwcp.  Both programs borrow heavily from the the DOS Morse
       code tutor CP222C.EXE, by VU2ZAP.

       The  characters echoed in the main GUI window may be ASCII equivalents of Morse procedural
       signals; see the cw(7,LOCAL) man page for details.

       Here are a few hints and tips that may help with the process of learning Morse code.

       Firstly, do NOT think of the elements as dots and dashes.  Instead, think of them as  dits
       and dahs (so 'A' is di-dah).  If you think of them in this way, the process of translating
       sound into characters will be learned much more easily.

       Do not learn the characters from a table.  Learn them by watching the groups appear on the
       screen, and listening to the sounds produced as each is sent.  In the very initial stages,
       it may be beneficial if you can find a person to take you  through  the  first  stages  of
       recognising characters.

       Do  not  waste your time learning Morse code at 5 WPM.  Set the speed to 12 or 15 WPM, but
       use extra spacing (the Gap window) to reduce the effective speed to much  lower  -  around
       four  or  five WPM effective speed.  This way, you will learn the rhythm of the characters
       as they are sent, but still have plenty of time  between  characters.   As  you  practice,
       decrease the gap to zero.

       Learn  in  stages.  Start by learning the EISH5 group, then progress down through the menu
       as each group is mastered.  The groups contain characters which are in some  way  related,
       either by sound, or by type of character.

       Once  you  have  completed  all the groups EISH5 to ,?.;)/ (or 23789 if you do not want to
       learn procedural signals yet), use the full character set options, and the  words  and  CW
       words  options,  to  sharpen  your  skill.   If  you  have  difficulties  with  particular
       characters, return to that group and practice again with a smaller character set.

       Resist the temptation to try to learn or improve your speed by copying off-air.  You  will
       not  know what speed you are working at, and much hand-sent Morse is not perfectly formed.
       What you can gain off-air though is a general 'resilience', a  tolerance  for  Morse  code
       where  the  timing of individual elements, or spacing between characters and words, is not
       100% accurate.

       If working to attain a particular speed for a test, always set the speed slightly  higher.
       For  example,  if  aiming for 12 WPM, set the tutor speed to 14 or 15 WPM.  This way, when
       you drop back to 12 WPM you will feel much more relaxed  about  copying.   Be  aware  that
       xcwcp is not necessarily going to send at exactly the speed you set, due to limitations in
       what can be done with UNIX timers.  It often sends at a slower speed than you set,  so  be
       very careful with this if you have a target speed that you need to reach.

       Use  the  program to make cassette tapes that you can take with you in a walkman or in the
       car, for long journeys.  You do not have to write down everything  you  hear  to  practice
       Morse code.  Simply listening to the shapes of characters over a period will help to train
       your brain into effortless  recognition.   In  fact,  slavishly  writing  everything  down
       becomes  a  barrier  at speeds of 15-20 WPM and above, so if you can begin to copy without
       writing each character down, you will find progress much easier above these  speeds.   But
       do  not  over-use  these  tapes, otherwise you will quickly memorise them.  Re-record them
       with new contents at very regular intervals.

       Try to spend at least 15-30 minutes each day practicing.  Much less than  this  will  make
       progress glacially slow.  But significantly more than an hour or so may just result in you
       becoming tired, but not improving.  Recognise when it is time to stop for the day.

       Do not worry if you reach a speed 'plateau'.  This is common, and you will  soon  pass  it
       with a little perseverance.

       At  higher  speeds, CW operators tend to recognise the 'shape' of whole words, rather than
       the individual characters within the words.  The CW words menu option can be used to  help
       to practice and develop this skill.

       Neither  the mouse buttons nor the keyboard are ideal for use a keys or keyer paddles, for
       sending practice.  Try to use a proper key for sending where possible.  It  is  hard  even
       for experienced operators to get good keying using the mouse or keyboard.  Of the two, the
       mouse is probably the better option, though, in a pinch.


       The calibration option is a bit ropy.  It simply sends PARIS repeatedly, and relies on you
       to  time the sending and then work out if any adjustment to the speed is really necessary.
       Automatic calibration by making measurements over a given period would be a lot better.


       Man   pages   for   cw(7,LOCAL),   libcw(3,LOCAL),   cw(1,LOCAL),   cwgen(1,LOCAL),    and