Man Linux: Main Page and Category List

NAME

       xcwcp - Xwindows-based Morse tutor program

SYNOPSIS

       xcwcp  [-s  sound] [--sound=sound] [-x sdevice] [--sdevice=sdevice] [-y
       mdevice] [--mdevice=mdevice] [-d cdevice] [--cdevice=cdevice] [-w  WPM]
       [--wpm=WPM]   [-t   tone]   [--tone=tone]   [--hz=tone]   [-v   volume]
       [--volume=volume] [-g gap] [--gap=gap]

       xcwcp also accepts the -h, --help, -v and --version options.

       The LINUX version understands both short form  and  long  form  command
       line  options.   Other  versions  may  understand  only  the short form
       options.

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

DESCRIPTION

       xcwcp is a Xwindows-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.

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

       -s, --sound
              Specifies the way that xcwcp generates tones.  Valid values  are
              ’soundcard’  for  tones through the system sound card, ’console’
              for tones through the console speaker, or ’both’.  These may  be
              shortened   to   ’s’,   ’c’,  or  ’b’.   The  default  value  is
              ’soundcard’.

       -x, --sdevice
              Specifies the device file to open for access to the sound  card.
              The  default  device  is  /dev/audio,  and this is generally the
              correct device on most systems.  See NOTES ON USING A SOUND CARD
              below.  This option is invalid if xcwcp is generating tones only
              on the console.

       -y, --mdevice
              Specifies the device file to open for access to the sound mixer.
              The  default  device  is /dev/mixer.  See NOTES ON USING A SOUND
              CARD below.  This option is invalid if cw  is  generating  tones
              only on the console.

       -d, --cdevice
              Specifies  the  device  file to open for sound using the console
              speaker.  The default device here is /dev/console,  although  in
              general it is likely to be necessary to provide a suitable value
              for this option if console sound is selected.  The value  should
              be  a  console device file, capable of KIOCSOUND.  See SELECTING
              SUITABLE SOUND DEVICE FILES below.  This option  is  invalid  if
              xcwcp is generating tones only on the soundcard.

       -i, --inifile
              Specifies  a  text  file  that  xcwcp  can read to configure its
              practice text.  See CREATING CONFIGURATION FILES below.

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

       -t, --hz, --tone
              Sets  the  initial  sounder  pitch  in  Hz.   This value must be
              between 0 and 4,000.  The default value is 800Hz.

       -v, --volume
              Sets the initial sending volume, as  a  percentage.   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
              Sets  the  initial extra gap, in dot lengths, between characters
              (the ’Farnsworth’ delay).  It must be between  0  and  60.   The
              default is 0.

   USER INTERFACE
       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).

   RANDOM CHARACTERS AND WORDS
       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 CONFIGURATION FILES below.

   RECEIVING MORSE
       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.

   NOTES ON USING A SOUND CARD
       By  default,  xcwcp  uses  the  sound 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 -x or --sdevice can be used to specify the device 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 are usually single-access devices, so that when  one
       process has opened the device, other processes are prevented from using
       it.  If xcwcp finds that the sound card is busy, it  prints  the  error
       message

              open /dev/audio: Device or resource busy

       but continues to retry on each new tone until it can access the device.
       Once it has control of the sound card, xcwcp will only use it  as  long
       as  it  has Morse code tones to sound.  It will close the device during
       pauses in output, to allow other programs to use it.

       The main sound card device will  often  allow  xcwcp  to  control  tone
       volumes  directly, but where this is not possible, xcwcp uses the mixer
       device instead.  By default, this is "/dev/mixer", but the  device  can
       be specified with the -y or --mdevice options.  In general, as with the
       main sound card device, the default mixer device is usually the correct
       one to use.

       The  mixer  device is only used if the sound card does not allow volume
       control through the main sound card device.

       cw will  of  course  conflict  with  any  other  programs  that  expect
       exclusive use of the system sound card (for example, MP3 players).

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

   SELECTING SUITABLE SOUND DEVICE FILES
       When xcwcp sounds Morse code on the UNIX console speaker, it  uses  the
       KIOCSOUND   ioctl.    By  default,  it  will  try  to  use  the  device
       "/dev/console", unless the -d or --cdevice  option  is  used.   If  the
       device refuses to create tones, xcwcp prints the error message

              cannot set up console sound

       and exits.

       If  the default device is not available, or if xcwcp has no permissions
       to use it, xcwcp will need to be  told  which  device  to  use.   Which
       device  files  are  suitable  will  depend on which operating system is
       running, and which system user ID runs xcwcp.   They  must  however  be
       console multiscreen devices, for example /dev/tty1 and up on LINUX.

       For  console  sound  on  LINUX, it is normally possible to run xcwcp as
       superuser, with the default /dev/console  as  the  sound  device;  this
       combination  will  usually  work.   Unless  running as superuser, xcwcp
       won’t have the necessary permission to access a ’foreign’ tty.   Making
       xcwcp  an suid binary avoids this problem.  The program does not fork()
       or exec(), so making it suid should be relatively safe.

       There is no need to worry about console sound devices if xcwcp is  only
       sending tones on the system sound card.

   CREATING CONFIGURATION FILES
       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  --inifile  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".

NOTES

       xcwcp is an Xwindows 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.

   HINTS ON LEARNING MORSE CODE
       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.

ERRORS AND OMISSIONS

       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.

SEE ALSO

       Man pages for cw(7,LOCAL), cwlib(3,LOCAL), cw(1,LOCAL), cwgen(1,LOCAL),
       and xcwcp(1,LOCAL).