From: hyc@hanauma.jpl.nasa.gov (Howard Chu)
Subject: Re: DSP not as good as we thought?
Organization: SAR Systems Development & Processing, JPL
Date: Tue, 24 Nov 1992 02:00:31 GMT

In article <37211@cbmvax.commodore.com> grr@cbmvax.commodore.com (George Robbins) writes:
>In article <1992Nov20.184901.15161@dcs.warwick.ac.uk> mashton@dcs.warwick.ac.uk (M.S. Ashton) writes:
>> Am I to understand (from reading a review of the Falcon) that the DSP chip
>> is not capable of reproducing digital sound at variable frequency (like Paula 
>> can) and is, in fact, limited to fixed rates such as 12.5,25,50KHz.
>> If this is the case then all the nice DMA sound is completely unusable for
>> computer generated music (soundtracker/Med etc.) and only useful from replaying
>> a sample at the frequency it was sampled at.
>> Am I to understand that to get round this, one needs to use masses of 
>
>The DSP *should* have to computational capabilites to do real-time
>sample rate conversion and filtering as it "plays" the sounds.
>
>The variable sample rate in the Amiga is one of those things that
>is intended to minimize memory/computational requirements when
>used with a simple DAC scheme, but given a farily powerful DSP,
>there are other ways of getting the same job done.

The sound hardware in the Falcon can use one of three different clocks - 32MHz,
25 MHz, or external clock input. Additionally, the clock can be divided down
by one of about 16 different standard prescale values. This is what's given in
the standard sound system calls. However, it seems that the built-in codec is
only allowed to be used with the 25 MHz clock. I don't know why that is...
It's not a problem for the DSP, though. Regardless, the codec supports more
speeds than just 12.5, 25 and 50 khz, those are just the common speeds that
were also supported on the STe.

As long as this is going to be a topic of discussion, please remember that
there are several independent elements of the Falcon audio system that can
be interconnected in a variety of ways. You can use all, some, or none of them
as you see fit. In fact there are so many different elements available it's
difficult to choose where to start, in a system description.

You have the codec with stereo 16-bit ADC and DAC, DMA record channels, DMA
playback channels, external inputs and outputs, etc. The codec's ADC can be
connected to the mic input or to the Yamaha PSG output. (Independent left and
right channel control there.) You can independently activate any of the 4
stereo audio tracks, and select any one of those tracks to be monitored by
the internal speaker/DAC/stereo headphone jack. You can record or playback
in any of 8-bit mono, 8-bit stereo, or 16-bit stereo. At system bootup I
believe the ADC gets both channels from the PSG, and everything else is
bypassed. For the voicemail software that I wrote (that was running all week
at Comdex) on the Falcon, I had the audio matrix connecting the ADC to the
DMA record channels, using only a single track. For the next version I'll have
the ADC feeding the DSP, do some compression in the DSP, and feed the DSP
output to the DMA record channel instead. The Falcon audio system is
incredibly flexible, I only need to add two system calls to my existing code
to add this functionality. (Oh, and load my compression routine into the DSP,
but that's really a separate issue. That's the total impact on my code, tho.)

One of the quirks I've noted is that the PSG doesn't have a hardwired
connection to the speaker, and the system bell and keyclick are still
generated there. If you have sound software that wants to record thru the
microphone input, those system sounds disappear (unless you only set one
channel to the mic, and leave one channel for the PSG...).
-- 
  -- Howard Chu @ Jet Propulsion Laboratory, Pasadena, CA

All true wisdom is conveyed in one-line witticisms.
Newsgroups: comp.sys.amiga.advocacy