Re: 6581 phase-accumulating oscillators

From: Nate / DAC (natedac_at_kscable.com)
Date: 2000-11-19 11:13:57

> Nate: Doesnt modplay64 use PWM in one of its sid modes?

Yes, it does.  It achieves something like 33 kHz 8-bit stereo (with two
SIDS) and I think somewhere close to 60 kHz in mono.  Since the SID can
only produce waves of around 4 kHz in 8 bits, I use two voices (on each
SID).  Any more than 4 kHz and the SID starts dropping the lower
bits (because in an NTSC C64 the SID has a fixed "sample rate" of 1022727
Hz) at one bit per double in sample rate (e.g. 8kHz=7 bits).

One voice produces the lower four bits of the sample data, with a Sustain
setting that's roughly 1/16th the Sustain (in terms of amplitude) of the
other voice, which produces the upper four bits.  I get away with this
Sustain business because the TEST bit, which is used to produce arbitrary
pulse widths, does not reset the ADSR settings at all, only the Gate does,
and I don't use that.

The SID can maintain 4 bits of resolution using PWM, up to 64 kHz. Since I
use two voices, and since each is good to 64 kHz, I affectively trick the
SID into giving me a full 8 bits.  12 Bits might also be possible at very
high sample rates, if you use all three voices and set the sustain levels
accordingly.

In theory, you could get 12 bits at 64 kHz with this method, if you can
set the Sustain values correctly (I've never tried).

Add in the low pass filter and quality improves beyond your existing
settings, at the expense of overall volume and frequency response (which
is why I chose to leave the filter disabled).

> On Sat, 18 Nov 2000, Richard Atkinson wrote:
> 
> > Has anyone ever used the SID's phase-accumulating oscillators together
> > with a fast frequency register routine to generate phase-modulated sounds?

I'd like to hear the results of using this method.

-- 
 _________________________________________ ___ _____
|         .        .        :             /XXZ| ___ |
|   _  _ _|_  _   _| _   _  : C64/C128-  /X/   |ZZ/ |
| |/ \ _| |  / \ / | _| / ` :  What's    LH     __  |
| |  |/ | |  L-'|  |/ ||    :  *YOUR*    \`\__ |__\ |
| |  |\_| |_.\_. \_|\_| \_. :  hobby?     \___|     |
`---------------------------------------------------'

-
This message was sent through the cbm-hackers mailing list.
To unsubscribe: echo unsubscribe | mail cbm-hackers-request@dot.tml.hut.fi.

Archive generated by hypermail 2.1.1.