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.