\"  intro.roff from ObjectProDSP 0.2
\"  Copyright (C) 1994 1995, Mountain Math Software. All rights reserved.
\"  
\"  This file is part of ObjectProDSP, a tool for Digital Signal
\"  Processing design, development and implementation. It is free
\"  software provided you use and distribute it under the terms of
\"  version 2 of the GNU General Public License as published
\"  by the Free Software Foundation. You may NOT distribute it or
\"  works derived from it or code that it generates under ANY
\"  OTHER terms.  In particular NONE of the ObjectProDSP system is
\"  licensed for use under the GNU General Public LIBRARY License.
\"  Mountain Math Software plans to offer a commercial version of
\"  ObjectProDSP for a fee. That version will allow redistribution
\"  of generated code under standard commercial terms.
\"  
\"  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 version 2 of the GNU General
\"  Public License along with this program. See file COPYING. If not
\"  or if you wish information on commercial versions and licensing
\"  write Mountain Math Software, P. O. Box 2124, Saratoga, CA 95070,
\"  USA, or send us e-mail at: support@mtnmath.com.
\"  
\"  You may also obtain the GNU General Public License by writing the
\"  Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
\"  USA.  However if you received a copy of this program without the
\"  file COPYING or without a copyright notice attached to all text
\"  files, libraries and executables please inform Mountain Math Software.
\"  
\"  ObjectProDSP is a trademark of Mountain Math Software.
\"  
.H 1 "Introduction to ObjectProDSP"
\".LINE \label{Sec:Introduction}

ObjectProDSP is an object oriented
tool for Digital Signal Processing (DSP) design analysis and implementation.
You can graphically define
a DSP network, provide test signals and view the output.

You can generate a stand alone C++ program
that performs the functions of this network and link this program
into your DSP application. 

With the source code distribution you can define
your own DSP nodes or other interactive objects.

The interface is designed to be self teaching.
Access to most functions is through a menu data base.
Instructions for each window and the most
important functions in a window are available in pull down menus.

ObjectProDSP runs as two Unix processes: user interface and
DSP execution. You can interrogate
the menu data base, manipulate data plots and perform other operations
in parallel with DSP execution.

.H 2 "It is easy to create and edit a DSP network"

To get a quick idea of what you can do with ObjectProDSP select
`help' (this is already selected when ObjectProDSP starts execution)
`examples', `fft' and `execute' by clicking the left mouse
button over the push buttons in the menu data base. A window
with a DSP network and three windows of plotted output will
appear.  Select the plot labeled `FFT_Plt_plot_of_FFT_FFT' and type
`ctrl-b' (hold the `ctrl' key down and type `b').
A new window will appear with the same data on a decibel power scale.

To add a fourth plot of the input data to the FFT do the following.
Select `objects' and `plot' from the menu data base.
Then hold the shift key down and click the left mouse button with the
cursor over the `Plot' button.
An unlinked plot node will appear in
the network window. Hold the shift key down while clicking the
right mouse button over the node labeled `FFT_Sum' in the network
window. The selected node will
be highlighted and a message will appear in the information window
saying: Linking output buffer on output channel 0 in node `FFT_Sum'.
Hold the shift key down and click the left mouse button over the
unlinked plot node in the network. The plot node will be linked
into the network at the point you selected.

To execute the edited network select `database' and `network' from the
menu bar in the network window.
A separate window with commands for controlling the network
will appear. Select `exec' and `Execute'. You will be prompted for the
number of input samples to generate. Type RETURN to select the default.
A new window will appear with the plot of the FFT input data and
the other plots will be updated with the new data you generated.

.H 2 "The main window"

ObjectProDSP starts with two windows. The `information' window
displays help for most operations. It is frequently updated.

The main window contains four
parts. At the top are pull down menus that control and document the
window. Next is a section for entry of DSP++ language
statements. ObjectProDSP signal processing operations are defined in
C++ using classes and member functions. This internal
DSP extension of C++ is called DSP++.
Most often DSP++ statements are generated by menu
selections or by graphically editing a network. You can enter statements
directly by selecting the highlighted line at the bottom of this section
and typing language statements. For example you can enter
\".LINE \verb"double A = (Pi+3.5)/4;"
`double A = (Pi+3.5)/4;'.
Statements are scrolled
up in this section as are messages related to execution of these
statements. The history of all text in this window
is available through the `create DSP++ history window' option under the
`Data base' pull down menu.

The next section in the main window
contains a record of up to the last three commands executed
from the menu data base and messages related to command execution.
The history of all text in this window
is available through the `create command history window' option under the
`Data base' pull down menu.
You can enter commands
directly in the highlighted line in this section. Commands will first
be searched for in the visible menu data base buttons and then
the full data base
will be searched. If you enter a valid unique command the corresponding
command will be
executed. A command that selects a menu and is not on
the visible data base buttons
will cause the selected menu to appear in
a separate window. For example
if you type `CxFFT' the menu for that class will appear in a window.

To directly enter DSP++ statements or menu commands
use the pull down menu
`select' or click the left mouse in the text entry area. To return
keyboard input to menu shortcut keys type the `escape' key.

The last section of the main window 
provide push button access to the menu data base.
From this data base you can control most
ObjectProDSP functions. 

.H 2 "Windows management"

It is easy to create many windows. There are some facilities
for managing windows.
You can delete some windows (type `ctrl-shift delete'),
but not any windows containing network output.
You can `raise' windows (make them appear above any overlapping windows)
with options in the network window pull down menus and the menu data base.
This can be helpful in locating the window output form a particular node.
For example to raise a plot or listing node position the mouse over the
plot node in the network window and type upper case `W' (shift-W).


