# file: wave.info	G. Moody	21 August 1990
#			Last revised:  16 September 2002	WAVE 6.5
# XView spot help file for `wave'
#
# -----------------------------------------------------------------------------
# WAVE: Waveform analyzer, viewer, and editor
# Copyright (C) 2002 George B. Moody
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place - Suite 330, Boston, MA 02111-1307, USA.
#
# You may contact the author by e-mail (george@mit.edu) or postal mail
# (MIT Room E25-505A, Cambridge, MA 02139 USA).  For updates to this software,
# please visit PhysioNet (http://www.physionet.org/).
# _____________________________________________________________________________

:file:%sec:file-menu%
This button opens a pull-down menu containing
selections for loading, saving, printing,
analyzing, and logging database files.
# 

:file.load:%sec:load-window%
This selection pops up a window in which you
can enter a new record or annotator name, or
change the name of the WFDB calibration
file or the value of the WFDB path within this
window.
#

:file.load.record
Specifies the name of the record to be viewed.
The initial value of this field is the name of the
record that you specified on the command line.
To view another record, select this field and
enter another record name.

Your edits, if any, are saved automatically
whenever you change records.  Only one level of
backup is preserved, so you will overwrite the
original annotation file if it is in the current
directory and you open the same annotator more
than once.
#

:file.load.annotator
Specifies the name of the annotator whose
annotations are shown.  If you specified an
annotator on the command line, the annotator name
is the initial value of this field; otherwise, the
field is initially empty.  Fill in or change this
field to view or edit a different set of
annotations.

Your edits, if any, are saved automatically
whenever you change records.  Only one level of
backup is preserved, so you will overwrite the
original annotation file if it is in the current
directory and you open the same annotator more
than once.
#

:file.load.calibration_file:url_view /usr/local/help/html/wag/wfdbca-5.htm
Specifies the name of the WFDB calibration file
(a text file containing information on the
relative scales of many types of signals).
Include path information in this field only if
the WFDB calibration file is not found in the
WFDB path.
#

:file.load.wfdb_path
Specifies the search path for WAVE's input
files.  Components are directory names,
separated by colons (`:').  An empty component
(either an initial or final colon, or two
consecutive colons) specifies the current
directory.  If `%r' appears in the WFDB path,
it is replaced by the current record name.
#

:file.save
If there are unsaved edits, this selection saves
them.  The annotator name in the title bar is
marked with parentheses if there are unsaved
edits.
#

:file.print:%fig:chart1%
This selection prints the contents of the signal
window on paper.  The output is made from the
original signal files, and therefore is of better
quality than a screen dump would be.  Your edits,
if any, are saved before printing, so that the
output reflects any changes you have made.
#

:file.printsetup:%sec:print-setup-window%
This selection pops up a panel that shows the
commands WAVE uses to print PostScript and text
data from the standard input.  You may change
these commands (for example, to specify use of
a different printer) by typing the desired
commands into the appropriate fields on the panel.
#

:file.printsetup.psprint
WAVE supplies any PostScript data to be printed
(such as the chart generated when you choose
Print from the File menu) to the standard input
of this command.  You may change this command
(for example, to specify use of a different
printer).
#

:file.printsetup.textprint
WAVE supplies any text to be printed (such as
on-line help) to the standard input of this
command.  You may change this command (for
example, to specify use of a different printer).
#

:file.analyze:%sec:analyze-window%
This selection pops up a panel containing a set of
buttons, and a terminal emulator window.  The
names of the buttons and their assigned actions
are read from a configuration file (by default,
`wavemenu' if it exists in the current directory,
otherwise /usr/local/lib/wavemenu.def; this may be
overridden by setting the environment variable
WAVEMENU to the name of a different file).  The
buttons are usually configured to perform various
analysis functions on the current record; read
/usr/local/lib/wavemenu.def for details.
#

:file.analyze.<
Press this button to shift the segment to be
analyzed in the direction of the beginning of the
record, without changing the duration of the
segment.  The current `Start:' becomes the new
`End:', unless doing so would require shortening
the length of the segment.
#

:file.analyze.start
This field specifies the elapsed time from the
beginning of the record to the beginning of the
segment to be analyzed.  You may enter a time
directly in this field, or you may insert a `<'
marker using the standard procedure for inserting
annotations.

To enter a time in sample or counter intervals,
enter `s' or `c' in this field, followed by the
desired number of intervals.  Examples:
   s123		sample number 123
   c20		counter number 20
WAVE converts your entry to hh:mm:ss format when
you press RETURN.
#

:file.analyze.astart
This field specifies the time of day of the
beginning of the segment to be analyzed.  You may
enter the time directly in this field (in 24-hour
clock format), or you may insert a `<' marker
using the standard procedure for inserting
annotations.

To set both date and time, change the date first,
then the time.
#

:file.analyze.dstart
This field specifies the date of the beginning of
the segment to be analyzed.  If you change this
field, the start time will change to midnight or
to the time of the beginning of the record,
whichever is later.

To set both date and time, change the date first,
then the time.
#

:file.analyze.end
This field specifies the elapsed time from the
beginning of the record to the end of the segment
to be analyzed.  You may enter a time directly in
this field, or you may insert a `>' marker using
the standard procedure for inserting annotations.

To specify the end of the record, enter `e' in
this field.  WAVE converts your entry to hh:mm:ss
format when you press RETURN.

To enter a time in sample or counter intervals,
enter `s' or `c' in this field, followed by the
desired number of intervals.  Examples:
   s123		sample number 123
   c20		counter number 20
#

:file.analyze.aend
This field specifies the end of the segment to be
analyzed, expressed as absolute time of day.  You
may enter a time directly in this field, or you
may insert a `<' marker using the standard
procedure for inserting annotations.

To set both date and time, change the date first,
then the time.
#

:file.analyze.dend
This field specifies the date of the end of
the segment to be analyzed.  If you change this
field, the end time will change to midnight or
to the time of the beginning of the record,
whichever is later.

To set both date and time, change the date first,
then the time.
#

:file.analyze.>
Press this button to shift the segment to be
analyzed in the direction of the end of the
record, without changing the duration of the
segment.  The current `End:' becomes the new
`Start:', unless the current `End:' is already
at or beyond the end of the record.
#

:file.analyze.signal
This field specifies the selected signal.  You
may enter a signal number directly in this field,
or you may point to a signal, depress the <shift>
key, and click left to select the signal.
In the WAVE menu, the symbol $SIGNAL refers to
the signal number of the selected signal;  this
symbol usually specifies a signal to be analyzed.
The name of the selected signal appears to the
right of its signal number.  The uppermost signal
displayed by WAVE is signal 0.
#

:file.analyze.signal_list
This field specifies the signal list (a list of
signal numbers, separated by spaces).  In the
WAVE menu, the symbol $SIGNALS refers to the
signal list;  this symbol usually appears where
a list of signals to be analyzed is required.
To change the signal list, either type into this
field, or point to a signal, press and hold the
<control> (to add the signal to the list) or the
<meta> key (to delete the first occurrence of the
signal from the list), and click left.
#

:file.analyze.show_scope_window:%sec:scope-window%
This button pops up WAVE's Scope window,
which can be used to display a signal in
`oscilloscope' mode.
#

:file.analyze.show_command_window:%fig:analysis-commands%
This button pops up a terminal emulator window
that receives commands generated by selecting
most of the other buttons in this window, and
that displays any text output of those commands.
You may type commands directly into the window.
#

:file.analyze.edit_menu:%fig:wave-menu%
This button allows you to edit the menu
configuration file for this panel, using the
text editor named in the EDITOR environment
variable (or `textedit' if EDITOR is not set).
After you have saved your changes, select
`Reread menu' to reconfigure this panel.
#

:file.analyze.reread_menu:%fig:wave-menu%
Select this button to reconfigure this panel
after you have made changes to the menu
configuration file (most easily done by
using the `Edit menu' button) or after
changing records.
#

:file.analyze.reload
Click on this button to force WAVE to reload
its input (signal and annotation) files.  WAVE
waits for any foreground commands in the Analysis
Commands window to finish before reloading.
#

:file.analyze.analysis_button
This button performs an action determined by the
WAVE analysis menu file.  If the environment
variable WAVEMENU is set, it names that file;
otherwise, `wavemenu' (if it exists in the current
directory) or `/usr/local/lib/wavemenu.def' is the
analysis menu file.
#

:file.log:%sec:log-window%
This selection pops up a window that allows you to
name a log file, and to record in that file the
current record name and start and end time entries
from the main panel, along with a one-line
comment.  Log files may be used as scripts for
`pschart'.  You may write to as many log files in
a single session as you choose, and you may
accumulate entries from multiple sessions in a
single log file.  Your entry is not recorded
unless you press the `Add' button on the log
panel.  If you press the `>>' button, WAVE will
review the log, displaying the waveforms
associated with each entry and pausing between
entries.  The review can be stopped by pressing
`Pause'.
#

:file.log.file
This field names the current log file.
#

:file.log.load
Press this button to load (or reload) the
log if an external process (such as one started
from the Analyze panel) creates or modifies the
log file.
#

:file.log.description
This field contains the description associated
with the current log entry.
#

:file.log.review_delay
Adjust the slider to set the length (in seconds)
of the pause between log entries while using the
`<<' or `>>' buttons to review the log.
#

:file.log.add
This button adds an entry containing the time,
the record name, and the description to the
log file.  If an annotation or marker has been
selected (i.e., if it is shown marked with a
box), that annotation will be selected whenever
the entry is redisplayed.
#

:file.log.replace
This button replaces the description attached
to the current log entry with the current
contents of the description field.  It does
not create a new entry (use the `Add' button
for that purpose).
#

:file.log.delete
This button deletes the current entry from
the log.  This button also causes WAVE to
display the next log entry if it exists.
#

:file.log.edit
This button is currently non-functional.
#

:file.log.|<
This button causes WAVE to show the first
log entry.
#

:file.log.<<
This button causes WAVE to begin reviewing
each entry in the log file in reverse order,
pausing between entries.  While a review is
in progress, only the Pause button is
enabled.

Adjust the length of the pause (in seconds)
using the `Delay' slider.
#

:file.log.<
This button causes WAVE to show the previous
log entry.
#

:file.log.pause
This button causes WAVE to stop the review of
the log file that was begun by the `<<' or
`>>' button.  This button is disabled unless a
review is in progress.
#

:file.log.>
This button causes WAVE to show the next
log entry.
#

:file.log.>>
This button causes WAVE to begin reviewing
each entry in the log file, pausing between
entries.  While a review is in progress,
only the Pause button is enabled.

Adjust the length of the pause (in seconds)
using the `Delay' slider.
#

:file.log.>|
This button causes WAVE to show the last
log entry.
#

:view:%sec:view-window%
This button pops up the View window, which allows
you to choose (or merely examine) display scales,
grid styles, and annotation, signal, and time
display styles.  Changes are not effective until
the signal window is redrawn.
#

:view.show
Toggle these options by selecting them.  Multiple
annotation fields are shown in the following
arrangement:

	annotation mnemonic
	subtype
	`chan' field
	`num' field
	`aux' field

Signal names and baselines are defined in the
header file.  Markers show the precise locations
of all annotations.  Levels show the amplitudes of
each signal at the time indicated by the pointer,
whenever a mouse button is depressed.  Changes are
not effective until the signal window is redrawn.
#

:view.time_scale

Choose the horizontal scale by selecting one of
the choices.

You can check the calibration of the display by
enabling the 0.2 s or 0.2 s x 0.5 mV grid, and
then by measuring the spacing of the grid lines.
If the spacing is incorrect, your X server does
not know the actual display resolution.  See your
X server documentation if this is the case, or use
the -dpi option when starting `wave' (start `wave'
with no arguments for instructions).
#

:view.amplitude_scale
Choose the vertical scale by selecting one of the
choices.

You can check the calibration of the display by
enabling the 0.5 mV or 0.2 s x 0.5 mV grid, and
then by measuring the spacing of the grid lines.
If the spacing is incorrect, your X server does
not know the actual display resolution.  See your
X server documentation if this is the case, or use
the -dpi option when starting `wave' (start `wave'
with no arguments for instructions).
#

:view.draw
Use this control to toggle WAVE's signal display
mode.  By default, WAVE displays all signals in
order of signal number, with signal 0 at the top
of the signal window.  If you select `listed
signals only', WAVE displays only those signals
that appear in the signal list (on the Analyze
panel).  Changes are not effective until the
signal window is redrawn.
#

:view.show_annotations
Use this menu button to choose how annotations
are to be displayed.  By default, WAVE displays
annotations in the center of the signal window.
If you select `attached to signals', each
annotation appears near the signal specified by
its `chan' field.  If you select `as a signal',
WAVE draws a signal derived from the `num' fields
of any annotations in the window, in place of the
standard annotation display.  Changes are not
effective until the signal window is redrawn.
#

:view.overlap
Use this menu button to control the display of
long annotation text.  By default, WAVE will
truncate the display of annotation text that is
longer than 3 characters, if it would overlap
the display of another annotation.  Choose
`allow overlap' if you wish to have WAVE display
as much of the text as will fit in the screen
(text may still be truncated at the right edge
of the signal window).  Changes are not effective
until the signal window is redrawn.

The full text (up to 80 characters) of the
currently selected annotation, if any, appears in
the footer of the signal window (at left).  Move
the pointer just to the left (or right) of an
annotation and click right (or left) to select
it.
#

:view.time_display
By default, WAVE displays elapsed time from the
beginning of the record in hh:mm:ss format.
Use this control to select display of absolute
time (if defined for the record), or to display
time in sample intervals.  If you select absolute
time display, you may enter absolute times in
the Find and Analyze panels.  Changes are not
effective until the signal window is redrawn.
#

:view.grid
Use this menu button to select a grid style.
Changes are not effective until the signal window
is redrawn.
#

:view.undo
This button cancels any changes you have made to
the View window settings and restores the
indicators to reflect the current settings.
#

:view.redraw
This button causes WAVE to accept any changes
you have made in the View panel.  Pressing
the `Redraw' button dismisses the View window
and refreshes the signal window.
#

:view.save_as_new_defaults:%sec:resources%
This button causes WAVE to record the current
View panel settings in your .Xdefaults file
(at the same time erasing any comments in
that file).  These settings become the new
defaults for your future WAVE sessions.

:edit:%sec:edit-menu%
This button brings up the Edit menu, which
allows you to specify if annotation editing
is to be allowed or forbidden.  By default,
editing is forbidden when WAVE starts up.
#

:edit.allow_editing
This selection allows you to make changes to the
annotation buffer.  By default, editing is
forbidden when WAVE starts up.
#

:edit.view_only
This selection disallows annotation editing.
You may still edit `<', `:', and `>' markers.
#

:prop:%sec:prop-menu%
This button brings up the Properties menu,
with selections for obtaining information
about the current signal and annotation files
and about this version of WAVE.
#

:prop.signals:url_view /usr/local/help/html/wag/wfdbde-1.htm
This selection pops up a window containing
information about the signals of the current
record, obtained by running `wfdbdesc'.
#

:prop.annotations:url_view /usr/local/help/html/wag/sumann-1.htm
This selection pops up a window containing
a summary of the contents of the annotation
buffer, obtained by running `sumann' (after
saving any edits).
#

:prop.wave
This selection pops up a window containing
the version number and installation date of
this version of WAVE.  This window may also
contain news about recent changes in WAVE.
#

:<search
This button recenters the signal window on the
previous occurrence of an annotation or marker
that matches the entry in the `Search for' field
of the Find window, if any.  If no match is found,
a notice is posted, but the signal window is not
recentered.

If the `Search for' field is empty, any annotation
or marker will be counted as a match.
#

:<<
This button scrolls the signal window towards the
beginning of the record, by an amount equal to the
width of the signal window (i.e., a full screen).
#

:<
This button scrolls the signal window towards the
beginning of the record, by an amount equal to
half of the width of the signal window.
#

:find:%sec:find-window%
This button opens a window that allows you to
specify what portion of the current record should
be displayed next.  You may set a specific start
or end time, or you may specify an annotation to
be searched for by the "< Search" and "Search >"
buttons.
#

:find.start_time
Specifies the time of the sample shown at the left
edge of the signal window, in the format specified
by the `Time display' item in the View window.  Go
to any other part of the record by entering the
time in this field.

Time can be entered in h:m:s format, with hours or
hours and minutes omitted, or in sNNNNN format, in
which NNNNN is a number of sample intervals from
the beginning of the record.
#

:find.end_time
Specifies the elapsed time from the beginning of
the record to the sample shown at the right edge
of the signal window, in hours, minutes,
and seconds.  Go to any other part of the record
by entering the time in this field.

Time can be entered in h:m:s format, with hours or
hours and minutes omitted, or in sNNNNN format, in
which NNNNN is a number of sample intervals from
the beginning of the record.
#

:find.search_for
Specifies a target for the "< Search" and "Search
>" buttons.  Changing this field causes an
immediate forward search.  The contents of this
field should match an annotation or marker
mnemonic, signal quality code, rhythm, comment, or
other text string, or one of the following:

  *v	to match any ventricular ectopic beat
  *s	to match any supraventricular ectopic beat
  *n	to match any other beat type
  *	to match any annotation or marker
  .	to match a deletion made during this edit
#

:find.more_options:%sec:search-template-window%
This button clears the contents of the "Search for"
field and opens the Search Template window.
#

:>
This button scrolls the signal window towards the end
of the record, by an amount equal to half of the
width of the signal window.
#

:>>
This button scrolls the signal window towards the end
of the record, by an amount equal to the width of
the signal window (i.e., a full screen).
#

:search>
This button recenters the signal window on the next
occurrence of an annotation or marker that
matches the entry in the `Search for' field of the
Find window, if any.  If no match is found, a
notice is posted, but the signal window is not
recentered.

If the `Search for' field is empty, any annotation
or marker will be counted as a match.
#

:help:%sec:help-topics-window%
This button pops up a panel containing buttons
that name several topics for which extensive
on-line help is available.  Choosing a topic
allows you to browse through the associated help
file in a scrollable text window.
#

:help.intro
Press this button for a quick introduction to
WAVE's features.
#

:help.buttons
Press this button for a summary of the functions
of the buttons on WAVE's control panels.
#

:help.editing
Press this button for a summary of annotation
editing procedures.
#

:help.faq
Press this button for answers to common
questions about using WAVE.  If you are having
trouble getting started, read this topic.
#

:help.logs
Press this button for information about creating
and reviewing WAVE log files.
#

:help.printing
Press this button for an overview of methods of
printing annotated signals from WAVE.
#

:help.analysis
Press this button for information about using
and customizing the Analyze panel.
#

:help.resources
Press this button for information about setting
WAVE-specific X11 resources.
#

:help.news
Press this button for information about recent
changes in WAVE.
#

:help.print
Press this button to print the contents of the
text window on the default printer.
#

:help.ug
Press this button to view the WAVE User's Guide
using a web browser.

If Netscape version 1.1 or later has not been
installed on this system, this button may not
work.  To use another browser, redefine the
action associated with <Open URL> in WAVE's
menu file (choose Analyze from the File menu,
then `Edit Menu' in the Analyze window).  Read
the notes in the menu file for details.
#

:help.quit
Press this button to dismiss the main Help
window.
#

:quit
`wave' exits when you press this button, after
saving your edits if any.  If your input file
would be overwritten as a result of saving your
edits, it is first renamed by appending a tilde
(`~') to its annotator name.

If you have entered annotations but have not
specified an annotator, the name by which you
invoked this program (normally, `wave') is used
for the annotator name.
#

:main_panel
This is the main control panel of WAVE.
Move the pointer onto any of the controls
and press the HELP key for further
information.
#

:canvas
This is the signal window, in which signals and
annotations are displayed.  For information
about using the mouse in this window, press
the `Help' button and select the `Annotation
Editing' topic from the Help window.
#

:annot.type:%fig:annotation-template%
This field specifies the type of annotation
to be inserted.  It may be changed by selecting
a new value from the pull-down menu, by typing
the mnemonic while the pointer is within the
signal window, or by selecting an existing
annotation and pressing the <Copy> or <F6>
keys.
#

:annot.text
This field specifies the contents of the
optional annotation `aux' field.  It may be
changed by typing into it directly or by
selecting an existing annotation and pressing
the <Copy> or <F6> keys.  In most cases, it
should be empty, but it must be filled in for
rhythm and certain other non-beat annotations.
When the annotation is written, WAVE prefixes
the required byte count to this field before
transferring it to the `aux' field.
#

:annot.subtype
This field specifies the contents of the
annotation `subtyp' field.  In most cases,
it should be 0; legal values range from
-128 to +127.
#

:annot.chan
This field specifies the contents of the
annotation `chan' field.  In most cases,
it should be 0; legal values range from
-128 to +127.
#

:annot.num
This field specifies the contents of the
annotation `num' field.  In most cases,
it should be 0; legal values range from
-128 to +127.
#

:annot.change
This button changes all annotations between
the `<' and `>' markers (the Start and End
times on the Analyze panel) to match the
annotation template.
#

:annot.dismiss
This button makes the Annotation Template
window disappear (until the left mouse
button is pressed while the pointer is
within the signal window).
#

:level.show
Choose how time and signal levels are
displayed in the Level window using this
menu.  Physical units are seconds (time)
and units defined in the record's header
file for each signal.  WFDB units are
sample intervals and analog-to-digital
converter units (adu).  In relative mode,
all measurements are shown as differences
between the current location and the
reference location.
#

:level.time
This area shows either the time of the
measurements shown in the rest of the
window (if absolute mode is selected),
or the time interval from the reference
mark (if relative mode is selected).
#

:level.signame
The names of the signals appear in the
left column of the Level window.
#

:level.value
The levels of the signals at the chosen
time are indicated in the center column.
#

:level.units
The third column indicates the physical
units of each signal.  If an asterisk
(*) appears next to any units, this
indicates that the signal has not been
calibrated.
#

:level.dismiss
This button closes the Level window.
#

:scope_panel:%sec:scope-window%
This panel contains controls for the
Scope window, which displays the signal
indicated by the Signal control in the
Analyze window.
#

:scope_panel.speed
This slider controls the playback speed.
Click left on the slider and drag it
to the desired position -- lower to
reduce speed, higher to increase speed.
#

:scope_panel.dt
This field specifies the interval
from the left edge of the scope window
to the annotated sample, in seconds.
Negative values may be used to shift the
left edge of the scope window past the
annotated sample.

Drag the resize corners to change the
interval between the left and right
edges of the scope window.
#

:scope_panel.<<
This button displays frames
continuously in reverse order.
Use the Pause button to interrupt
the display.  The display stops when it
reaches the beginning of the record,
an index mark (`:'), or the `<' marker.
#

:scope_panel.<
This button displays the previous
frame.
#

:scope_panel.pause
This button freezes the scope display.
It also forces the signal window to be
redrawn, roughly centered on the time
shown at the bottom of the scope window.
#

:scope_panel.>
This button displays the next frame.
#

:scope_panel.>>
This button displays frames
continuously in normal order.
Use the Pause button to interrupt
the display.  The display stops when it
reaches the end of the record,
an index mark (`:'), or the `>' marker.
#

:scope_canvas:%sec:scope-window%
This is the scope window, which displays the
signal indicated on the Analyze panel.  The
scales match those in the signal window (use
the controls in the View panel to set them).
Annotations trigger the scope. If annotations
in the signal window are attached to signals,
only those attached to the selected signal
trigger the scope. Click left or right to
single-step, middle to interrupt, ctrl+left
or ctrl+right to resume continuous display.
Change dt by ctrl+middle while pointing to
the desired location of the trigger point
within the window.  The left, up, and right
arrows on the numeric keypad emulate the
mouse buttons.
#

:bogus_keyword_to_mark_end

