Subject: Free DSP tool and generic framework for scientific applications 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). Subject: Free DSP tool and generic framework for scientific applications 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 split 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. 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 tsx-11.mit.edu 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-0.1 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/X11 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) 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 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 support@mtnmath.com P. O. Box 2124, Saratoga, CA 95070 (408) 353-3989