Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
XCWCP(1)		     General Commands Manual			XCWCP(1)

NAME
     xcwcp - X Window-based Morse tutor program

SYNOPSIS
     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  prece-
     dence.

DESCRIPTION
     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.

   COMMAND LINE OPTIONS
     xcwcp  understands  the  following command line options.  The long form op-
     tions 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 gener-
	    ated  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 vol-
	    ume.  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 CREATING CONFIGURATION FILES below.

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

   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 de-
     fault  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 con-
     trol.  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  re-
     ceive 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 tries to open OSS device "/dev/audio" to access the sys-
     tem sound card.  This is generally the correct device to use, but for  sys-
     tems with special requirements, or those with multiple sound cards, the op-
     tion  -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  de-
     vice 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 sin-
     gle-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.

   AUDIO OUTPUT - DEFAULTS AND SELECTION
     xcwcp first tries to access sound card using PulseAudio sound system, using
     default  device  name, unless user specifies other audio device with option
     -d or --device.

     xcwcp then tries to access sound card using OSS audio  system  and  default
     OSS audio device name ('/dev/audio'), unless user specifies other audio de-
     vice 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  ('de-
     fault'),  unless  user specifies other audio device with option -d or --de-
     vice.

     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 op-
     erating 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.

   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 recon-
     figures  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 com-
     plete 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 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.

   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 op-
     tions, 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 gen-
     eral 'resilience', a tolerance for Morse code where the timing of	individ-
     ual  elements,  or  spacing between characters and words, is not 100% accu-
     rate.

     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 writ-
     ing each character down, you will find progress  much  easier  above  these
     speeds.   But do not over-use these tapes, otherwise you will quickly memo-
     rise 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 key-
     ing 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 measure-
     ments over a given period would be a lot better.

SEE ALSO
     Man pages for cw(7,LOCAL), libcw(3,LOCAL), cw(1,LOCAL), cwgen(1,LOCAL), and
     xcwcp(1,LOCAL).

xcwcp ver. 3.5.1		CW Tutor Package			XCWCP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=xcwcp&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help