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.  The most recent changes occur in questions 5 
and 7.

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. 
It 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, 
the modem will do 14.4 Kbaud, not just 9600 baud.
	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  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.  This can be done 
using the ftp-available utility "snd-converter-pro-20.hqx" or 
"soundtrack.cpt.hqx". "movie2snd1.01.sit.hqx" is said to "extract 
soundtracks from QuickTime movies" but I have not personally tried it 
so I don't know to what format it extracts.
Matt Warner 
James Wang  , and
(No Name)   
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.  A utility 
called "Zounds" that comes with the ARTA toolkit (see below) does 
just this.


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

slansky_doug@macmail2.rtsg.mot.com (Doug Slansky) replies:
	The company OSC (800-343-3325, 415-252-0460) makes Deck II, 4-
track sound recording program that was originally written for 
Digidesign hardware but has now been ported to work on the 3210 in 
the AV's as well.  It features include QuickTime synchronization and 
SMPTE support.

Ben Denckla replies:
	Alaska Software (800-500-3320, 408-738-3320) makes DigiTrax, a 
6-track sound recording program written specifically (from the ground 
up) for use on the AV's.  The program will be released in the 3rd 
week of February '94.  It has a suggested retail price of $349 but is 
available during February for only $199.  Its features include 
realtime parametric EQ, QuickTime synchronization, and a live video 
window.


.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:
	Here are some of my comments on the ARTA toolkit.

I. Cost
	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.

II. Documentation
	The documentation 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).
	A large portion of the documentation is almost identical to 
that found it Apple Developer Notes #5.

III. Code Examples
	There are only 3 tiny examples of realtime DSP modules 
included, and only 1 timeshare example.  The examples are not 
extensively documented.

IV. Software
	Although BugLite crashes often, it does under consistent and 
non-critical circumstances. This is annoying, but does not seriously 
compromise its usefulness.  Although one cannot use the sound input 
and output (mike & speaker) icons at the same time, you can do 
realtime processing of sound by hooking up a sound input or output by 
itself and putting the Mac in Playthrough mode (this is done by 
clicking on "Options" on the "Sound In" part of the Sound Control 
Panel).  This Playthrough mode provides the "phantom" microphone or 
speaker icon, conceptually speaking.
	Zounds works, but will crash if you try to open a mono AIFF 
file with it.  This is no big deal, but this should be handled with 
an error message dialog, not a crash.
	There is a bug in the assembler. Statements of the form N*nop may 
cause errors inside do { } blocks due to incorrect counting of the 
number of instructions.  The way around this is to use the form of do 
which requires the user to count up the number of instructions in the 
loop or explicitly write "nop; nop; nop;" instead of "3*nop".  I assume 
that any instruction of the form N*instr could cause the miscounting 
error;  I have used the nop instruction as an example because this 
syntax is probably most often used in conjunction with nop.


.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 
Name:         ARTAbrot 1.1
Description:  Mandelbrot program
Source Code:  Mac (C) & DSP
Location:     sumex-aim.stanford.edu
              archive.umich.edu
              AmericaOnLine
              AppleLink (Developer Code Submissions area)

Author:       Malcolm Slaney :
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  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.