Subject: Free DSP tool and generic framework for scientific applications
From: [email-masked] (Paul Budnik)
Date: Mon, 26 Sep 1994 14:13:44 GMT
Newsgroups: comp.os.linux.announce

Mountain Math Software announces the release of ObjectProDSP(TM), an object
oriented tool for Digital Signal Processing (DSP) design, development
and implementation under version 2 of the GNU General Public License (GPL).

ObjectProDSP is both a tool for DSP and an object framework
for developing interactive scientific and engineering applications.
You may find it of interest even if you do not use DSP.

    o Define and edit a DSP network graphically.

    o Execute the network interactively with plots and listings
      at any point in the net. Tweak parameters, add or
      replace nodes and threads and execute again.

    o Create stand alone code for the network. 

    o Learn DSP by playing with DSP operations and seeing
      the results instantly. ObjectProDSP is a powerful tutorial
      aid and it is priced right for students. Its free!

    o Develop application using either 16 bit integer or
      single precision floating point or define your own arithmetic
      model. Work with both integer and floating point data streams
      in the same network.

    o Use feedback loops and processes that have different input
      and output sampling rates. ObjectProDSP computes the sample
      rates of all streams and keeps track of timing relationships
      between input and output data streams wherever practical. Change
      the sample  rate at any point in the network and all the plots
      from the network are updated.

        Documentation

You can learn and use ObjectProDSP with no printed documentation.
However there is a 30 page tutorial that new users may find helpful.
The tutorial includes 28 figures, most of them X-windows screen images.

There are over 400 pages of printed documentation in 4 manuals.
Most of this is intended as reference material and duplicates online
documentation in an indexed and cross referenced printed format.

The Developer's manual is an exception. It is essential for anyone
creating new interactive object classes. The material in this manual
is not available online.

        Beta version 0.1

ObjectProDSP has been developed over several years and used in consulting
projects. It has benefited greatly from feedback from this experience.
This release is version 0.1, the first public release and a Beta
version. Of course we expect problems, but we have tried to make this
first public release a tool that will be of practical value to a wide
range of users and to minimize the problems our first public users
will experience. We have an extensive suite of regression tests that
validate both the DSP processing nodes and the user interface.

        NO WARRANTY

BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
MOUNTAIN MATH SOFTWARE AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS"
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY
AND PERFORMANCE OF THE PROGRAM IS WITH THE USER. SHOULD THE PROGRAM PROVE
DEFECTIVE, THE USER ASSUMES THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

         Extending ObjectProDSP with your own interactive objects

DSP nodes or other classes of interactive objects are defined using an
extended C++ language ObjectPro++(TM). Creating these objects is little
more work than writing the kernel code. The result is an interactive
class of objects and their online and printed documentation. It can
be less work to write and debug interactive objects then to create
a stand alone program because of the extensive data generation and
display capabilities that aid in debugging. 

A menu data base provides access to all classes of objects and all
instances created interactively. Objects are persistent between sessions.
They are stored as C++ code that contains constructors for each object
instance. This code is interpreted when ObjectProDSP starts execution.

New object classes are automatically integrated into the existing
documentation. Just `make' the ObjectProDSP executables and documentation
for your new object classes is extracted from their description in
ObjectPro++ and integrated into the menu data base. After this you
can `make' the manuals and the same documentation is added to
the printed manuals.

ObectProDSP and ObjectPro++ are trademarks of Mountain Math Software.

        Underused scientific and engineering application code

Mountain Math Software believes there is a great quantity of valuable
scientific and engineering applications that are seriously underused
because of the effort required to learn them. ObjectPro++ and ObjectProDSP
makes it easier for developers to create documented interactive versions
of their programs. They provide a uniform framework for doing this that
will make those programs more accessible with significant less effort for
both developers and users. We feel that a combination of free
and commercial software is the best way to make such a tool a success.

        Combining the best of two worlds

We have been enormously impressed by the quality of the Linux operating
system, the tools developed by the Free Software Foundation, InterViews,
and XFree86. This is all free software that we have used extensively in
the development of ObjectProDSP. There is something in the creative
process when anyone in the world can look at the source code and make
improvements or suggestions that no private company can duplicate.

At the same time software that is completely free is inevitably
handicapped relative to commercial products in the resources available
to support and improve it. This release is an experiment in combining the
best of both worlds. As long as you only use ObjectProDSP for personal
purposes (without publicly distributing or marketing the code generated)
or to create other free software released under version 2 of the
GPL you are free to do so at no financial cost. Please read the full text
of the GPL to understand your rights and obligations under this license.
By including an appropriate copyright notice in your name for any
improvements you make and release you insure that no one (including
Mountain Math Software) can distribute your code under any terms other
then the GPL without your permission.

We plan to also make available for a fee a version of ObjectProDSP
with a standard commercial license. If you use ObjectProDSP licensed
only under the GPL to develop a commercial application you cannot release
a product containing code generated by ObjectProDSP unless you release
ALL the SOURCE code for that application under version 2 of the GPL.
None of the ObjectProDSP system is licensed under the GNU General Public
LIBRARY License. The code generated by ObjectProDSP is heavily dependent on
librarys and class definitions in header files. It is not like the output
from a compiler. In this respect it is more like the output from Bison
which includes a copyright notice and is licensed for use only
under the GPL.

Because of the restrictions on commercial use of ObjectProDSP licensed
under the GPL we see a potential market for a commercial version.
If this is a successful product, those that offer improvements
to ObjectProDSP may share in this financially. They can offer commercial
licensing for their upgrades or negotiate with others to make such licensing
available.

        Hardware Support

A previous version of ObjectPrDSP supported the TMS320C30 on a
customer's proprietary development board. We can support any DSP
processor that supports an ANSI C compiler. For the TMS32C30 we used 
Cfront to translate C++ to C and TI's optimizing C compiler to
generate assembly code.

There is no direct support for DSP boards or processors in this
release. We would like to add such support in future releases.
If you are affiliated with a DSP processor or board company you may want
to consider contracting with us to provide such support. You will obtain
a powerful high level object oriented development environment tailored
to your processor and board. We can probably provide a C compiler for
your processor if you do not currently have one. We have previously ported
GNU `gcc' to support the Pine DSP processor from DSP Semiconductors.

        Distribution of version 0.1

This distribution includes four components: Linux binary, documentation,
source and test data. The documentation is gzip compressed postscript
files. All the other components are gzip compressed tar files.

        Linux binary distribution component

The Linux binary distribution contains everything you need to
run ObjectProDSP under Linux and to create your own stand alone networks.
It is ready to run `out of the box'. You do not need to have `g++'
installed unless you want to create stand alone networks. 

You cannot create new interactive classes with this distribution component.
That requires the source component. There is also no printed documentation.
You need the source or documentation distribution components to obtain
printed manuals as LaTeX or postscript files. There is however
extensive online documentation in the binary distribution.

Currently binarys are only available for Linux. ObjectProDSP should be
portable with some effort to any standard Unix system that has a port of
InterViews 3.1.

        Documentation distribution component

This includes 5 gzip compressed postscript files for four manuals.
    1. Overview and tutorial.
    2. Overview appendixes.
    3. User's reference.
    4. Node library reference.
    5. Developer's reference.

        Source code distribution component

The source code distribution includes everything you need to create a
full system. However you need to compile and link all the software and must
have both `groff' and `LaTeX' installed to create the documentation. You
cannot build the manuals until you have built the software because
much of the documentation is automatically generated by the software.
You can create the full suite of regression tests but you cannot validate
your installation against the reference base line test data without the
test data distribution. You can however validate any subsequent changes
you make against the base line validation data you can create.

        Test data distribution component

The test data distribution allows you to compare an installation of
either the source or binary distribution against base line test outputs.
It is too large to be practical as an installation test. Both the source
and binary distributions contain the scripts and executable to create
all the base line test data. Running a few of these scripts (or if you
have the disk space all of them) is adequate as an installation test.
Because of this and because of the size of this component (the compressed
files are over 10 megabytes) we are not uploading it at this time. If
there is sufficient demand we will do so later. 

        Support, contracts, printed manuals, floppy disks and tapes

Support contracts, printed manuals and ObjectProDSP on floppy disks and
8mm Exabyte format tapes can be purchased direct from Mountain Math Software.
Please contact us for pricing.

        Sites where you can retrieve ObjectProDSP

ObjectProDSP has been uploaded to the three major Linux sites and is currently
availible at two of these sites and their mirrors.

                           tsx-11.mit.edu

		Files are not yet in a public area at this site. This
		is my best guess. They may wind up in a completely different
		place.

        1.57 MB /pub/linux/binaries/usr.bin.X11/opd-0.1-src.tar.gz 
        2.25 MB /pub/linux/sources/usr.bin.X11/opd-0.1-binary.tar.gz
        1.08 MB /pub/linux/docs/opd-0.1-doc.tar (All doumentation and LSM file)
        5.8 KB  /pub/linux/docs/opd-0.1-announce.gz (Package description)

                           SunSITE.unc.edu

        All files are in directory: /pub/Linux/devel/opd
        1.57 MB opd-0.1-src.tar.gz (Source code)
        2.25 MB opd-0.1-bin.tar.gz (Linux binaries)
        527 kB ovr_front.ps.gz (Overview and tutorial, 16 MB uncompressed)
        53 kB ovr_app.ps.gz (Overview appendixes)
        130 kB nodeman.ps.gz (Library reference)
        208 kB userman.ps.gz (User reference)
        130 kB devman.ps.gz (Developer's manual)
        8 kB opd-0.1-announce.gz (Package description)
        0.7 kB opd-0.1.lsm.gz (LSM description)
        0.4 kB bytes IAFA-opd-0.1.gz (IAFA description)

                           ftp.funet.fi

        All files are in directory: /pub/OS/Linux/util/electronics/opd
        4.9 MB opd-0.1.tar.gz (Binary, source and documentation)
        1.6 kB opd-0.1.lsm (LSM description)
        0.7 kB bytes IAFA-opd-0.1 (IAFA description)

        System requiremnts

        Memory

ObjectProDSP runs well with 16 megabytes of physical memory and
30 megabytes of swap space. We have also run it with 20 megabytes
of physical memory and no swap space but we needed to be careful
about what else is running. We suggest 16 megabytes of physical
memory and a 16 megabyte swap partition.  The program cannot recover
if it runs out of memory but you can automatically and frequently
save the state.

        Disk space

Binary installation: 8 megabytes

Source float installation: 31 megabytes

Source float and int16 installation: 37 megabytes

There is only one source distribution that includes the
documentation. The above sizes are total requirements
after you have dearchived the distributions and built
the executables.

The following are the additional disk space needed to
run the validation tests or build the documentation.

Float only validation: 34 megabytes

Total space for both float and int16 validation: 38 megabytes

Documentation: 20 megabytes

This is the additional space to build `.dvi' but not postscript
files from the source distribution. However it does include the
postscript format files of the X-windows images. They are converted
from the more compact `xwud' format when the manuals are created.
These are needed to build the `.dvi' files and they require
15 of the 20 megabytes of space.

The documentation component of the distribution contains only
the postscript files. These require an additional 20 megabytes
if you decompress them. Most of this space is from the X-windows images.
You may be able to pipe them directly to your printer with `gzip'
without creating the uncompressed files.

        Other hardware

ObjectProDSP can be used (awkwardly) with standard VGA resolution.
The higher the resolution and the larger the monitor the
better. A resolution of at least 1024 x 768 is recommended. A color
monitor and display card is required. The InterViews `monochrome' mode
is not supported and does not work. Although a high performance graphics
card is desirable graphics performance should be reasonable with almost
any card.

Hardware floating point is recommended.

        Software requirements

The binary distribution requires XFree86 2.0 and a version of
Linux that supports XFree86 2.0. If you want to create stand alone
executables you also need g++ from gcc 2.5.8 and libc 4.4.24.
Other versions may work but this has not been tested.

The binary release for version 0.1 is currently available only
for Linux. It should be possible to port ObjectProDSP to any system on
which InterViews version 3.1 is available.

Paul Budnik
Mountain Math Software
[email-masked]
P. O. Box 2124, Saratoga, CA 95070
(408) 353-3989

--
Send submissions for comp.os.linux.announce to: [email-masked]
Be sure to include Keywords: and a short description of your software.