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 Turpinconfirms 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.