Re: d418

From: Hársfalvi, Levente (levente_at_terrasoft.hu)
Date: 2001-04-12 11:30:48

Hi!

Steve Judd írta:
> 
> Hola,
> 
> Could someone give me an accurate technical explanation of how d418 works,
> and why that makes digis softer on later-model SIDs?

Accurate?! ,-)

Well, I've been playing with the SID inners last year. Later I abandoned
doing most of the 'harder', analogic experiment work (I still own those
to Dag Lem and Simon White; and will be owning them probably forever :-(
). Nevertheless, I have some results that I can share with you.

Some snippets from those letters (sent to Dag and Simon)...

----
- The DC offset thing. This is strange... As I see, even just turning on
the filter (in any mode, without feeding any voice through the filter)
causes a small click, e.g. changes DC offset. ...I can understand it: it
just turns on a route to the mixer, and the filter seems to have a small
DC offset 'by default'. Another quirk seems to be in the ADSR
multiplying D/A: if you just init a voice to sustain level $0f and start
attack (without setting waveform, e.g. 01), the DC offset on the output
decreases ;-). Setting all voices to sustain level 0f as above
eliminates the output DC-offset level on the mixer almost completely.
---

...Well, I can sum things as follows:

You can play digis on the SID (with the $d418 reg), since:

1: the $d418 register controls the amplitude modulator, that is put
after the analog mixer (that sums together the 3 voice signals + the
extin signal) inside the SID and
2: since there's a constant DC offset on this amplitude modulator "by
default".

When you change amplification, it will act as multiplying this constant
DC level and so you'll get some D/A effect on the output.

As to where this DC comes from, no, it doesn't come from the wave D/A
converter - it comes from the ADSR envelope multiplying D/A. As the
above shows, there's something strange with the ADSR multiplying D/A
(the higher the amplification, the less the given DC offset).

The 8580 doesn't have this DC offset. Well, it was also mostly
re-designed, like most other similar range CSG chips, probably for their
new manufacturing tech. BTW, the 8580 is much 'better' in its common
meaning. While you probably won't find two identical 6581s, the 8580s
pretty much match each other. ...There are some rumours on the 6581
around the net. When it was produced, Bob Yannes had some few months to
present the chip, and MOS back then had no suitable tech for analog
stuff ;-). And well, it shows. The chip was designed in pure NMOS. It
works pretty O.K., but nevertheless, it has high background noise and
each chips are 'unique'. The fuzziest part is the resonant filter, since
it is anyway the most critical part of such analog subtractive synths.
Bob used simple linearized (loopbacked) NMOS inverters as op-amps in the
design :-O. ...Take a look, and see how many SID emulators do simulate
the SID filters correctly ;-).

Well, back to the DC offset... as some people know, the filter is an
inverting phase filter, and carries out DC levels (as long as you select
LP 'mode'). I did a try: I routed voice2 through the filter, while
turning off voice3 by the appropriate bit (was it somewhere in $d417 or
$d418?). Then, tried to wiggle the volume register. The digi output has
disappeared! ;-). It shows: all DC offset comes from the voice routes,
and they're of the same value. (Why? voice3 was turned off - this
setting means an NMOS analog switch in the SID, so this route is cut off
directly. Now, DC offset of voice 1 was summed with -1*DC offset of
voice 2 (filter...), and the result was 0, since there was then no DC on
the final amplitude modulator ;-) ).

There must be some other quirks in the multiplying D/As (both in the
waveform, the ADSR and the filter part), but I guess this is another
subject.

Machines with 8580s used to be hacked with a simple trick to achieve
digi-replay. It is easy: take the EXTIN pin and tie it to GND (or +9v)
through a resistor. This will cause the same: since EXTIN goes to the
mixer, you'll get a similar DC offset on the final amplitude modulator
as in the old 6581. ...But don't forget: it's not the same, since the DC
changes in the original chip with different ADSR levels and filter
settings, while this one won't and putting DC offset here sometimes
causes strange distortion (personal experience). The 'op-amps' probably
don't like that they're thrown out of their operating point, and maybe
they do even less if some programs route this DC offset through the
filter.

> I realize this has been explained zillions of times, but I couldn't find
> the info via a web search or on the usual sites.

Take the sources of ReSID (Dag Lem) and check them (especially the
comments) - you'll probably find answers for a couple of other issues,
including ADSR bugs too.

Best regards,


Levente

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