SID 6581 / 8580

Beim SID (Sound Interface Device) handelt es sich um einen elektronischen Musiksynthesizer mit 3 Stimmen, der verglichen mit den "üblichen" Soundchips seiner Zeit einige bemerkenswerte Eigenschaften besitzt. Er wurde erstmals im Commodore 64 eingesetzt, und wird von vielen Fans dieses Rechners als "wichtigster Baustein" bezeichnet.

Als das Projekt "Commodore 64" bei Commodore im Januar 1981 das erste Mal angesprochen wurde, war eigentlich geplant, einen Spielecomputer auf den Markt zu bringen. Ein guter Spielecomputer muß in der Lage sein, guten Sound zu erzeugen. Und der C64 Soundchip kann 3 Stimmen mit einer ungewöhnlich hohen Frequenzbandbreite erzeugen. Während dem Projekt wurde diese Absicht geändert und stattdessen baute Commodore einen richtigen Heimcomputer.

Beide Varianten des SID-Chips

Beide Varianten des SID-Chips

Die Arbeit am C64 wurde auf zwei Gruppen aufgeteilt ,eine kümmerte sich um den Grafikchip VIC, die andere um den Soundchip SID (kurz für : Sound Interface Device). Die Arbeit am SID begann im Frühling 1981. Verantwortlich dafür war Robert Yannes, ein junger Ingenieur, der auch für den VC-20 verantwortlich war. Sein Team bestand aus ihm selbst, zwei Technikern und einem CAD-Operator.

Yannes' hohe Erwartungen an den SID waren der Grund, warum der Chip einen so ungewöhnlich guten Sound produzieren konnte, gerade im Vergleich mit einfachen Videospielen. Der SID hat eine präzisere Frequenzkontrolle, und der unabhängige Hüllkurvengenerator schafft einen besseren Klang. Yannes gründete übrigens später die Synthesizerschmiede Ensoniq.

Die Technik

Die wahren Fähigkeiten des SID sind bis heute nicht einmal den Konstrukteuren bekannt. Dies kommt daher, dass die technische Dokumentation während der Entwicklung aus Versehen falsch geschrieben wurde. Ein Beispiel ist, daß die Doku sagt, dass der Chip eine logische UND-Funktion auf verschiedene Wellenformen anwenden kann. Diese Fehler in der Dokumentation machten es vielen Programmierern schwer, ohne viel Experimentierwillen alle Möglichkeiten des Chips auszunutzen.

Die Funktionen des SID werden über 27 direkt adressierbare Register gesteuert. Die Basisadresse ist im C64 $D400. Im SID sind drei verschiedene Oszillatoren untergebracht, die vollkommen unabhängig voneinander funktionieren. Für jeden Oszillator kann als Wellenform zwischen Dreieck, Sägezahn, Rechteck mit variablem Pulsverhältnis und weißen Rauschen gewählt werden. Das überstreichbare Frequenzspektrum reicht von 0 bis 8,2 Khz, mit einer Auflösung von 65536 Schritten. Für jeden Oszillator gibt es zwei 8-Bit breite Register zur Frequenzwahl. Der in diese Register einzuschreibende Wert entspricht allerdings nicht der Frequenz, sondern ist nur proportional. Ursprünglich war auch eine Tabelle im SID vorgesehen, die Musiknoten in Frequenzdaten auflösen konnte, aber da dieses Feature zu teuer werden würde, wurde es wieder gestrichen.

ADSR-Beschreibung Die sogenannte ADSR-Funktion steht für Attack, Decay, Sustain und Release, was soviel bedeutet wie Anschwellen, Abfallen, Halten und Ausklingen. Diese Funktion bestimmt die Lautstärke und Dauer der Vorgänge. Jeder einzelne Parameter kann einen Wert von 0 bis 15 annehmen und ergibt für die Attack-Spanne Zeiten von 0,002 bis 8 Sekunden. Die Decay/Release- Dauer beträgt zwischen 0,006 und 24 Sekunden. Mittels dieser Funktion lassen sich die Lautstärkeverläufe echter Instrumente sehr originalgetreu nachbilden.

Den Oszillatoren ist ein analoger Filter mit wählbarer Hoch-, Tief- und Bandpass-Eigenschaft nachgeschaltet. Die Grenzfrequenzen sind wählbar. Mittels zweier Analog/Digitalkonverter kann der SID Potentiometer abfragen, leider sind diese Konverter zu ungenau als daß man sie zum Samplen einsetzen könnte. Der SID kann außerdem externe Audiosignale in seine Ausgabe einmischen und mittels seines Filters verändern, was es ermöglicht, mehrere SIDs aneinanderzuhängen oder in komplexen mehrstimmigen Systemen einzusetzen.

Variationen

Der im C-64C eingesetzte 8580 unterschied sich zum Original hauptsächlich durch etwas abgeänderte Wellenformen und erheblich leisere Samplelautstärke. Zur Erläuterung:

Gesampelte Stücke werden abgespielt, in dem die Software einen Ton in rascher Folge aus und wieder einschaltet. Die dabei entstehenden "Knackser" ergeben dann den Klangeindruck eines Samples. Da der C64 nur bis ca. 6 KHz "knacksen" kann, ist die Tonqualität eher bescheiden und erinnert an eine schlechte Telefonverbindung. Im C64-II funktioniert der Trick mit dem "Knacksen" nicht so richtig, weil die Ingenieure beim neuen Soundchip diesen "Knackser-Fehler", der ja eigentlich eine Tonverschlechterung bei normalen Tönen darstellt, beseitigt haben. Folge: Das "Knacksen" ist erheblich leiser, Digi-Sounds sind kaum hörbar.

Die meisten Leute bevorzugen den 6581, da er "wärmere" Klänge hervorbringt. Er ist besser geeignet für weichere Melodien und starke Bässe. Der 8580 hat eine viel klarere "Stimme", und ist der beste für scharfe Töne und Tiefe Bass-Drums, wie in Techno-Stücken.

Register Register / $0: Informationen
Register 0 Oszillatorfrequenz niederwertiges Byte für Stimme 1
Zugriff : Lesen/Schreiben
Bit 0-7 :
Register 1 Oszillatorfrequenz höherwertiges Byte für Stimme 1
Zugriff : Lesen/Schreiben
Bit 0-7 :
Register 2 Pulsbreite niederwertiges Byte für Stimme 1
Zugriff : Lesen/Schreiben
Bit 0-7 :
Register 3 Pulsbreite höherwertiges Byte für Stimme 1
Zugriff : Lesen/Schreiben
Bit 0-3 : Die Register 2 und 3 bestimmen das Puls-Pauseverhältnis des Rechteckausgangs von Stimme 1.
Bit 4-7 : Unbenutzt
Register 4 Steueregister der Stimme 1
Zugriff Schreiben
Bit 0 : Steuerbit für den Ablauf des Hüllkurvengenerators. Beim Übergang von 0 nach 1 steigt dieLautstärke von Stimme 1 innerhalb der in Register 5 programmierten ATTACK-Zeit von Null auf den Maximalpegel. Beim Übergang von 1 auf 0 geht die Lautstärke innerhalb der in Register 6 programmierten RELEASE-Zeit auf Null zurück.
Bit 1 : gesetzt = Oszillator 1 wird mit Oszillator 3 syncronisiert. Dieses Bit hat auch Wirkung, wenn die Stimme 3 stummgeschaltet wird.
Bit 2 : gesetzt = Dreieckschwingungsausgang von Oszillator 1 wird durch ein Frequenzgemisch (Summe und Differenz) der Frequenzen von Oszillator 1 und 3 ersetzt. Dieser Effekt tritt auch dann ein, wenn Stimme 3 Stummgeschaltet ist.
Bit 3 : Wenn zusammen mit dem Rauschgenerator noch eine weitere Schwingungsform desselben Oszillators ausgewählt wurde, kann es vorkommen, daß der Rauschgenerator blockiert. Die Blockade kann durch Setzen dieses Bits wieder aufgehoben werden.
Bit 4 : gesetzt = Dreieckschwingung ausgewählt
Bit 5 : gesetzt = Sägezahnschwingung ausgewählt
Bit 6 : gesetzt = Rechteckschwingung ausgewählt. Das Puls-Pause-verhältnis wird in den Pulsbreitenregistern für diese Stimme eingestellt
Bit 7 : gesetzt = Rauschgenerator ausgewählt.
Anmerkung zu Bits 4-7 : Es ist praktisch möglich, mehrere Schwingungsformen gleichzeitig auszuwählen. Zu beachten ist jedoch, außer dem zu Bit 3 gesagten, dass das Ergebnis nicht etwa die Summe aller Formen darstellt, sondern vielmehr eine logische UND-Verknüpfung der Komponenten ist.
Register 5 ATTACK/DECAY
Zugriff Schreiben
Bit 0-3 : Diese Bits bestimmen die Zeit, in der die Lautstärke vom maximum auf den Sustainpegel abfällt. Der Einstellbare Bereich beträgt 6 Millisekunden bis 24 Sekunden.
Bit 4-7 : Hiermit wird die Zeit festgelegt, in der die Lautstärke nach setzen des Steuerbits von Null auf das Maximum ansteigt. Der einstellbare Bereich beträgt 2 Millisekunden bis 8 Sekunden
Register 6: SUSTAIN/RELEASE
Zugriff Schreiben
Bit 0-3 : Mit diesen Bits wird dieZeit eingestellt, innerhalb der die Lautstärke nach Rücksetzen des Steuerbits vom Sustainpegel auf Null abfällt. Der einstellbare Bereich beträgt 6 Millisekunden bis 24 Sekunden.
Bit 4-7 : Diese Bits geben den Sustainpegel an, d.h. die Lautstärke, mit der der Ton nach Ablauf der Decayzeit andauert.