Subject: AV DSP Mini-FAQ v 1.01
From: bdenckla@husc7.harvard.edu (Benjamin Denckla)
Date: 7 Dec 1993 17:43:17 GMT

	This document contains information relevant to the AV Macs, 
especially in relation to the use and programming of their DSP chip.  It 
is the product of my own experience and many helpful responses I 
have received to posts I have made.  I have taken slight liberties in 
editing responses, so what you see below are not always the exact words 
of the contributors to the FAQ.  It is structured in the typical FAQ 
format of question and answer with the questions listed at the 
beginning.  Please write me with any additions to or comments about this 
document.

Ben Denckla
Manager
Harvard University Electronic Music Studio


1. Are modem/fax software and the GeoPort telecom adapter included?
2. Does audio output from the CD have an extra stage of A/D & D/A?
3. Is there an included utility which allows digital recording of part 
of an audio CD to an AIFF file?
4. Is there an included utility which will allow me to play/record 16-
bit, 44.1KHz stereo AIFF files?
5. Is there any digital audio software available for the 660AV?
6. Is there any digital audio interfacing hardware available? (AES/EBU 
<--> DAV  or  AES/EBU <--> GeoPort)
7. What is needed to do DSP programming?
8. Where can I get example code for programs that use the AV's DSP?
9. Where can I get information about the DSP chip?
10. BugLite only supports 32-bit floating point data.  Do I really want 
to use this data type?
11. Can I use Think C to write the Macintosh part of DSP applications?
12. What happens to DSP modules I have written when the hardware 
platform changes (to PowerPC, for instance)?



.c.1. Are modem/fax software and the GeoPort telecom adapter included? 

	The Geoport adapter must be bought separately for about $125. The 
adapter comes with the modem driver software and a complete, user-level 
fax software package.  So you still need to own a separate modem 
communications program.  Contrary to what some documentation says, you 
can do 14.4Kbaud, not just 9600 baud, with the modem.
	As an aside, I would like to point out that though the AV does 
speech generation and recognition right out of the box, it can't do 
modem/fax out of the box.  Frankly I cannot believe that the number of 
users needing speech functions even approaches the number who need 
modem/fax.  A clear case of "Gee-whiz! Bells & whistles! Screw the 
user!" marketing.  Not that the $125 for the GeoPort even compares the 
the $995 for the ARTA toolkit (see below).


.c.2. Does audio output from the CD have an extra stage of A/D & D/A?

	Yes.  Evidence of this appears on p. 39 of Apple Developer Note 
#5, where the L & R outputs of the CD enter a block labelled "analog 
front end" before entering the Singer block.
	John Turpin <turpin@apple.com> confirms this and notes that the 
digital audio output from the CD is not compatible with the singer 
serial data bus.


.c.3. Is there an included utility which allows digital recording of 
part of an audio CD to an AIFF file?

	No.  In order to to this, you need to open a QuickTime-
aware application and select the audio "file" from the mounted 
CD using the File Open menu item.  You'll then get a dialog 
asking for conversion confirmation.  Then you will have a 
QuickTime movie with 16-bit audio which still needs to be 
converted to an AIFF file.  I am not sure if such a utility 
exists, but it seems probable that it does.

James Wang <jwang@soda.berkeley.edu> and <d88-jwa@nada.kth.se> 
contributed to the answer of this question.


.c.4. Is there an included utility which will allow me to play/record 
16-bit, 44.1KHz stereo AIFF files?

	No.  The bundled version of FusionRecorder does allow you to 
record this kind of audio into QuickTime movies, though.


.c.5. Is there any digital audio software available for the 660AV?

slansky_doug@macmail2.rtsg.mot.com (Doug Slansky) replies:
	Contact OSC (800-343-3325) regarding Deck II, a sound editing 
program being upgraded specifically to use the 3210 in the AVs.  See 
MacWeek (10/4/93), page 24 for details.

.c.6. Is there any digital audio interfacing hardware available? 
(AES/EBU <--> DAV  or  AES/EBU <--> GeoPort)

	Open question.


.c.7. What is needed to do DSP programming?

warnergt@cbnewsi.cb.att.com (george.t.warner) replies:
	Tools for DSP development under the Apple Real Time Architecture  
(ARTA) on AV Macs are available for $995 from:

Spectral Innovations
1885 Lundy Avenue, Suite 208
San Jose, CA  95131
408/955-0366
macdsp@applelink.apple.com

	You will need MPW to use these tools. The tools include the AT&T 
DSP3210 assembler, linker/loader, simulator, Macsbug D Commands, Apple 
Snoopy browser/debugger, and Apple BugLite graphical DSP module 
installer. It does not include the C Compiler but as you may have 
already read, the compiler is not very good.  Fortunately, DSP3210 
assembly programming (unlike other DSPs) is very C-like, so getting up 
to speed is not too difficult.  The main part is getting used to the 
latencies involved with the pipelined architecture. 
	Additionally, the AT&T Application Library includes many (about 
100?) useful DSP algorithms (FFTs, FIR and IIR filters) with complete 
source code.  It should sell for about $100.

walter_horat@rasterops.com (Walter Horat) replies:
	Apple got the 3210 tools from AT&T, which were written to use VCOS 
(AT&Ts 3210 realtime O/S).  Apple modified the tools somewhat for use on 
the Mac, and began shipping them to developers.  When Apple realized 
that it might cost money to actually *support* the tools, they foisted 
the tools off on a company called Spectral Innovations (actually not a 
bad choice since Spectral has been doing programming for AT&T DSPs for 
over five years). 
	BTW, the 'C' compiler is a complete piece of shit.  It produces 
some of the worst code I have ever seen (trying to do a matrix multiply 
in 3210 'C' ran 5 times slower than the host 68k on a Quadra 700 - 
rewriting the same in assembler ran 7-8 times *faster*).  If you do any 
serious 3210 programming, you will need to learn 3210 assembler.

Ben Denckla replies:
	I now own the ARTA toolkit and have a few comments about it.  
First of all, a few picky remarks about the documentation.  It comes in 
two parts: 
	A. A big stack of 3-hole punched looseleaf paper, containing about 
10 different sections, only two of which are separated from each other 
in any manner (you have to hunt through and separate out the documents).  
No overall table of contents, not even an overall list of contents.
	B. A spiral bound, bad photocopy of the AT&T DSP3210 manual.  The 
photocopy is blurry and has at least one page out of order (the first 
page of the table of contents, actually).  It's unclear why they don't 
just get some from AT&T since AT&T is willing to send out the real thing 
for free (see below).
	There are only 3 tiny examples of realtime DSP modules included, 
and I believe only 1 timeshare task example exists.  The examples are 
not well-documented.
	The cost is amazingly prohibitive.  If you look at the price of 
APDA developer's toolkits for things like Telephone Manager, Sound 
Manager, or MIDI Manager, they are less than one tenth the price ($75, 
$50, and $35 respectively).  I thought my 660AV was going to be a real 
steal for $1820 + whatever development tools were needed.  Well I had no 
clue that that "whatever" would be $995, more than half of the price of 
the computer itself.  So the 660AV makes a lot of sense: it does speech 
generation and recognition (two capabilites that are really only needed 
for people with disabilities) right out of the box, but you have to pay 
$995 to actually be able to program the thing.  Does the price of such 
DSP development software reflect the fact that DSP programming is an 
esoteric activity, or does it _cause_ DSP programming to remain 
esoteric?  I thought the 660AV was a revolution in bringing DSP 
programming onto the personal desktop.  I was wrong, because the cost of 
the development software shattered the illusion of the bargain.


.c.8. Where can I get example code for programs that use the AV's DSP?

	See question #7 for description of DSP module examples that come 
with the ARTA toolkit.

Author:       George Warner <warnergt@aloft.att.com>
Name:         ARTAbrot 1.1
Description:  Mandelbrot program
Source Code:  Mac & DSP
Location:     sumex-aim.stanford.edu
              archive.umich.edu
              AmericaOnLine
              AppleLink (Developer Code Submissions area)

Author:       Malcolm Slaney <malcolm@apple.com>:
Name:         VUMeters
Description:  simulates analog VU meters
Source Code:  Mac (Think C) & DSP
Location:     ears.atg.apple.com


.c.9. Where can I get information about the DSP chip?

	Call AT&T Microelectronics (1-800-372-2447) and ask for the "AT&T 
DSP3210 Digital Signal Processor Information Manual".  They sent it out 
to me quickly & for free.


.c.10. BugLite only supports 32-bit floating point data.  Do I really 
want to use this data type?

walter_horat@rasterops.com (Walter Horat) replies:
	I used to think the same way before programming on the 3210 (I 
don't need floats, so I'll just program in integer arithmetic).  Once 
you get into the architecture of the chip and the instruction set, you 
realize that it really was designed *only* to manipulate floating point 
data types.  The integer operations which the chip supports are not very 
robust, for instance there is no integer multiply.  But, you can 
effectively convert a 8 or 16 bit integer (in signed, unsigned, u-law or 
a-law format) to a dsp-floating point number in a single instruction 
cycle.  The reverse conversion is just as fast.  And you can convert 
from dsp/ieee and ieee/dsp format in a single instruction (an 
instruction takes four cycles to process, but the 3210 has a four-stage 
pipeline, so instructions effectively complete in 1 cycle)


.c.11. Can I use Think C to write the Macintosh part of DSP 
applications?

Malcolm Slaney <malcolm@apple.com> replies:
	YES!  The VUMeters application [see question #8] was done this 
way. Only the DSP code needs to be compiled under MPW.  The ARTA Toolkit 
does include a good  DSP simulator which definitely makes code 
development easier.


.c.12. What happens to DSP modules I have written when the hardware 
platform changes (to PowerPC, for instance)?

warnergt@cbnewsi.cb.att.com (george.t.warner) replies:
	The DSP3210 will not go away when the PowerPCs come out.  While 
Apple has not yet announced what their plans are, I can say that it is 
very likely that third parties will make plug-in DSP3210 boards for 
PowerPCs not equipped with a DSP.