D400 | Voice 1: Frequency Control - Low-Byte |
D401 | Voice 1: Frequency Control - High-Byte |
D402 | Voice 1: Pulse Waveform Width - Low-Byte |
D403 | 7-4 Unused 3-0 Voice 1: Pulse Waveform Width - High-Nybble |
D404 | Voice 1: Control Register 7 Select Random Noise Waveform, 1 = On 6 Select Pulse Waveform, 1 = On 5 Select Sawtooth Waveform, 1 = On 4 Select Triangle Waveform, 1 = On 3 Test Bit: 1 = Disable Oscillator 1 2 Ring Modulate Osc. 1 with Osc. 3 Output, 1 = On 1 Synchronize Osc. 1 with Osc. 3 Frequency, 1 = On 0 Gate Bit: 1 = Start Att/Dec/Sus, 0 = Start Release |
D405 | Envelope Generator 1: Attack / Decay Cycle Control 7-4 Select Attack Cycle Duration: O-15 3-0 Select Decay Cycle Duration: 0-15 |
D406 | Envelope Generator 1: Sustain / Release Cycle Control 7-4 Select Sustain Cycle Duration: O-15 3-0 Select Release Cycle Duration: O-15 |
D407 | Voice 2: Frequency Control - Low-Byte |
D408 | Voice 2: Frequency Control - High-Byte |
D409 | Voice 2: Pulse Waveform Width - Low-Byte |
D40A | 7-4 Unused 3-0 Voice 2: Pulse Waveform Width - High-Nybble |
D40B | Voice 2: Control Register 7 Select Random Noise Waveform, 1 = On 6 Select Pulse Waveform, 1 = On 5 Select Sawtooth Waveform, 1 = On 4 Select Triangle Waveform, 1 = On 3 Test Bit: 1 = Disable Oscillator 1 2 Ring Modulate Osc. 2 with Osc. 1 Output, 1 = On 1 Synchronize Osc. 2 with Osc. 1 Frequency, 1 = On 0 Gate Bit: 1 = Start Att/Dec/Sus, 0 = Start Release |
D40C | Envelope Generator 2: Attack / Decay Cycle Control 7-4 Select Attack Cycle Duration: O-15 3-0 Select Decay Cycle Duration: 0-15 |
D40D | Envelope Generator 2: Sustain / Release Cycle Control 7-4 Select Sustain Cycle Duration: O-15 3-0 Select Release Cycle Duration: O-15 |
D40E | Voice 3: Frequency Control - Low-Byte |
D40F | Voice 3: Frequency Control - High-Byte |
D410 | Voice 3: Pulse Waveform Width - Low-Byte |
D411 | 7-4 Unused 3-0 Voice 3: Pulse Waveform Width - High-Nybble |
D412 | Voice 3: Control Register 7 Select Random Noise Waveform, 1 = On 6 Select Pulse Waveform, 1 = On 5 Select Sawtooth Waveform, 1 = On 4 Select Triangle Waveform, 1 = On 3 Test Bit: 1 = Disable Oscillator 1 2 Ring Modulate Osc. 3 with Osc. 2 Output, 1 = On 1 Synchronize Osc. 3 with Osc. 2 Frequency, 1 = On 0 Gate Bit: 1 = Start Att/Dec/Sus, 0 = Start Release |
D413 | Envelope Generator 3: Attac/Decay Cycle Control 7-4 Select Attack Cycle Duration: O-15 3-0 Select Decay Cycle Duration: 0-15 |
D414 | Envelope Generator 3: Sustain / Release Cycle Control 7-4 Select Sustain Cycle Duration: O-15 3-0 Select Release Cycle Duration: O-15 |
D415 | Filter Cutoff Frequency: Low-Nybble (Bits 2-O) |
D416 | Filter Cutoff Frequency: High-Byte |
D417 | Filter Resonance Control / Voice Input Control 7 Select Filter Resonance: 0-15 6 Select Filter Resonance: 0-15 5 Select Filter Resonance: 0-15 4 Select Filter Resonance: 0-15 3 Filter External Input: 1 = Yes, 0 = No 2 Filter Voice 3 Output: 1 = Yes, 0 = No 1 Filter Voice 2 Output: 1 = Yes, 0 = No 0 Filter Voice 1 Output: 1 = Yes, 0 = No |
D418 | Select Filter Mode and Volume 7 Cut-Off Voice 3 Output: 1 = Off, O = On 6 Select Filter High-Pass Mode: 1 = On 5 Select Filter Band-Pass Mode: 1 = On 4 Select Filter Low-Pass Mode: 1 = On 3 Select Output Volume: 0-15 2 Select Output Volume: 0-15 1 Select Output Volume: 0-15 0 Select Output Volume: 0-15 |
D419 | Analog/Digital Converter: Game Paddle 1 (O-255) |
D41A | Analog/Digital Converter Game Paddle 2 (O-255) |
D41B | Oscillator 3 Random Number Generator |
Envelope Generator 3 Output |
|
Konzept
Funktionen
3 Ton-Oszillatoren | von 0 bis 4 KHz |
4 Wellenformen pro Oszillator | Dreieck, Sägezahn, Rechteck, Rauschen |
3 Amplituden Modulatoren | 48 dB |
3 Hüllkurven-Generatoren | Anschlag (Attack): 2 ms bis 8 s Abschwellen (Decay): 6 ms bis 24 s Halten (Substain): Lautstärke 0 bis Reg 24-Wert Ausklingen (Release): 6 ms bis 24 s |
Ring-Modulation | |
programmierbare Filter | Cutoff Bereich: 30 Hz bis 12 KHz 12 db/Oktav Rolloff Lowpaß- Bandpaß und Hochpaßfilter Notch Outputs variable Resonanz |
Master Volume Kontrolle | |
2 A/D-Wandler | für Paddles (Pot-Interfaces) |
Zufallszahlgenerator | |
externer Audio-Input |
Beschreibung
Der 6581 beinhaltet drei Synthesizer-Stimmen, welche entweder unabhängig von einander oder in Verbindung zueinander oder einer externen Tonquelle verwendet werden können. Jede Stimme besteht aus einem Ton-Oszillator, Wellenformgenerator, Hüllkurven-Generator und einen Amplitudenmodulator. Der Ton-Oszillator produziert vier Wellenformen bei der gewählten Frequenz. Die Volume-Dynamik des Oszillators wird über den Amplitudenmodulator in Zusemmenhang mit dem Hüllkurvengenerator kontrolliert. Zusätzlich gibt es einen programmierbaren Filter zum Erstellen komplexer dynamischer Tonfarben (subtractive synthesis).
Der SID erlaubt der CPU das Lesen aus dem dritten Oszillator und dem dritten Hüllkurvengenerator. Diese Informationen können zur Erstellung von fibrierenden Frequenzen, Filterwechsel und ähnlichen Effekten genutzt werden. Die zwei A/D-Wandler dienen dem Anschluß von Potentiometern (an den Control-Ports des C64 verfügbar, für z.B. Paddles). Weiters erlaubt der SID die Verarbeitung externer Tonquellen, bspw. über den Einsatz von Hoch-, Tief und Bandpassfilter.
SID Kontrollregister
Der SID verfügt über 29 Register zu jeweils 8 Bit welche für die Einstellungen der Tongenerierung sowie der Abfrage der Paddles zuständig sind. Ein Register kann entweder nur geschrieben oder nur gelesen werden.
Typ | ||||||||||
00 | F7 | F6 | F5 | F4 | F3 | F2 | F1 | F0 | Freq Lo | W |
01 | F15 | F14 | F13 | F12 | F11 | F10 | F9 | F8 | Freq Hi | W |
02 | PW7 | PW6 | PW5 | PW4 | PW3 | PW2 | PW1 | PW0 | PW Lo | W |
03 | | | | | PW11 | PW10 | PW9 | PW8 | PW Hi | W |
04 | Noise | Recht. | Säge. | Drei. | Test | Ring | Sync | Gate | Control | W |
05 | Atk 3 | ATK 2 | Atk 1 | Atk 0 | Dcy 3 | Dcy 2 | Dcy 1 | Dcy 0 | Atk/Dcy | W |
06 | Stn 3 | STN 2 | Stn 1 | Stn 0 | Rls 3 | Rls 2 | Rls 1 | Rls 0 | Stn/Rls | W |
Register für Stimme 2 (Voice 2):
Typ | ||||||||||
07 | F7 | F6 | F5 | F4 | F3 | F2 | F1 | F0 | Freq Lo | W |
08 | F15 | F14 | F13 | F12 | F11 | F10 | F9 | F8 | FREQ Hi | W |
09 | PW7 | PW6 | PW5 | PW4 | PW3 | PW2 | PW1 | PW0 | PW Lo | W |
0A | | | | | PW11 | PW10 | PW9 | PW8 | PW Hi | W |
0B | Noise | Recht. | Säge. | Drei. | Test | Ring | Sync | Gate | Control | W |
0C | Atk 3 | Atk 2 | Atk 1 | Atk 0 | Dcy 3 | Dcy 2 | Dcy 1 | Dcy 0 | Atk/Dcy | W |
0D | Stn 3 | Stn 2 | Stn 1 | Stn 0 | Rls 3 | Rls 2 | Rls 1 | Rls 0 | Stn/Rls | W |
Register für Stimme 3 (Voice 3):
Typ | ||||||||||
0E | F7 | F6 | F5 | F4 | F3 | F2 | F1 | F0 | Freq Lo | W |
0F | F15 | F14 | F13 | F12 | F11 | F10 | F9 | F8 | Freq Hi | W |
10 | PW7 | PW6 | PW5 | PW4 | PW3 | PW2 | PW1 | PW0 | PW Lo | W |
11 | | | | | PW11 | PW10 | PW9 | PW8 | PW Hi | W |
12 | Noise | Recht. | Säge. | Drei. | Test | Ring | Sync | Gate | Control | W |
13 | Atk 3 | Atk 2 | Atk 1 | Atk 0 | Dcy 3 | Dcy 2 | Dcy 1 | Dcy 0 | Atk/Dcy | W |
14 | Stn 3 | Stn 2 | Stn 1 | Stn 0 | Rls 3 | Rls 2 | Rls 1 | Rls 0 | Stn/Rls | W |
Filter Register:
Typ | ||||||||||
15 | | | | | | FC2 | FC1 | FC0 | FC Lo | W |
16 | FC10 | FC9 | FC8 | FC7 | FC6 | FC5 | FC4 | FC3 | FC Hi | W |
17 | Res3 | Res2 | Res1 | Res0 | Filt X | Filt 3 | Filt 2 | Filt 1 | Res/Filt | W |
18 | 3 off | HP | BP | LP | Vol 3 | Vol 2 | Vol 1 | Vol 0 | Mode/Vol | W |
Sonstige Register (Misc.):
Typ | ||||||||||
19 | PX7 | PX6 | PX5 | PX4 | PX3 | PX2 | PX1 | PX0 | Pot X | R |
1A | PY7 | PY6 | PY5 | PY4 | PY3 | PY2 | PY1 | PY0 | Pot Y | R |
1B | O7 | O6 | O5 | O4 | O3 | O2 | O1 | O0 | Osc3/Rnd | R |
1C | E7 | E6 | E5 | E4 | E3 | E2 | E1 | E0 | Env3 | R |
Beschreibung der Register für Stimme 1 (Voice 1):
Register 00: Freq Lo
Register 01: Freq Hi
Diese beiden Register enthalten einen 16 Bitwert für die Frequenz des Oszillators 1. Die Frequenz errechnet sich wie folgt:
Fout = (16-Bitwert * Taktfrequenz / 16.777.216) [Hz]
Register 02: PW Lo
Register 03: PW Hi
Diese beiden Register enthalten einen 12 Bitwert (Bit 4 bis Bit 7 von Register 3 ist ohne Bedeutung) für die Pulsweite für Oszillator 1. Die Pulsweite errechnet sich wie folgt:
PWout = (12-Bitwert / 40,95) [%]
Register 04: Control
Dieses Register enthält 8 verschiedene Kontrollbits für Oszillator 1. Diese sind:
Bit 0: Das Gate-Bit kontrolliert den Hüllkurvengenerator von Oszillator 1. Wird es gesetzt, so wird Anschlag, Abschwellen und Halten (A/D/S) intialisiert, wird es gelöscht, so wird die Ausklingphase (R) gestartet. Damit der Oszillator 1 einen Ton von sich gibt muss dieses Bit also gesetzt werden. Der Hüllkurvengenerator beeinflusst die Aplitudenmodulation (siehe Blockdiagramm).
Bit 1: Das Sync-Bit synchronisiert die Frequenz von Oszillator 1 mit der Frequenz von Oszillator 3. Die Frequenz von Oszillator 3 muss dabei größer als 0 und kleiner als die von Oszillator 1 sein.
Bit 2: Das Ring-Bit ersetzt eine Dreieckswellenform durch eine Ringmodulation von Oszillator 1 mit Oszillator 3. Die Frequenz von Oszillator 3 muss dabei größer als 0 sein.
Bit 3: Wird das Test-Bit gesetzt, wir ein Reset für Oszillator 1 ausgeführt und dieser gesperrt bis das Test-Bit wieder gelöscht wird.
Bit 4: Diese Bit aktiviert die Dreieckswellenform
Bit 5: Diese Bit aktiviert die Sägezahnwellenform
Bit 6: Diese Bit aktiviert die Rechteckswellenform
Bit 7: Diese Bit aktiviert die Noise-Wellenform
Zum Erzeugen eines Tons muss mindestens eine Wellenform gesetzt sein. Werden mehrere gesetzt wird jene Wellenform des am niedirgsten gesezten Bits verwendet.
Register 05: Anschlag und Abschwellen (Attack/Decay)
Die Bits 4 bis 7 sind für die 16 verschiedenen Anschlagwerte des Hüllkurvengenerators von Oszillators 1 zuständig. Sie legen fest, wie schnell die festgelegte maximale Lautstärke erreicht wird (siehe Tabelle). Die Bits 0 bis 3 sind für die 16 verschiedenen Abschwellwerte zuständig und legen fest, wie schnell die Lautstärke auf den Abschwellwert sinken (siehe Tabelle).
Register 06: Halten und Ausklingen (Sustain/Release)
Die Bits 4 bis 7 sind für den Haltewert des Hüllkurvengenerators von Oszillator 1 zuständig. Sie legen fest, wie hoch der zu haltende Abschwellwert ist. Die Höhe der Amplitude errechnet sich aus dem Vielfachen vom Sechzehntel der Anschlagamplitude. Ein Wert von 8 bspw. hält auf halber Lautstärke des Anschlagmaximums. Die Haltephase dauert bis zum Löschen des Gate-Bits (siehe Register 4) an. Die Bits 0 bis 3 sind für die 16 verschiedenen Ausklingwerte zuständig und legen fest, wie schnell die Lautstärke von der Haltephase auf 0 ausklingen (siehe Tabelle).
Tabelle: Hüllkurvenraten
Wert | Anschlagrate (Zeit pro Takt) | Abschwell- und Ausklingrate |
0 | 2 ms | 6 ms |
1 | 8 ms | 24 ms |
2 | 16 ms | 48 ms |
3 | 24 ms | 72 ms |
4 | 38 ms | 114 ms |
5 | 56 ms | 168 ms |
6 | 68 ms | 204 ms |
7 | 80 ms | 240 ms |
8 | 100 ms | 300 ms |
9 | 240 ms | 750 ms |
A | 500 ms | 1.5 s |
B | 800 ms | 2.4 s |
C | 1 s | 3 s |
D | 3 s | 9 s |
E | 5 s | 15 s |
F | 8 s | 24 s |
Beschreibung der Register für Stimme 2 (Voice 2):
Für die Register 7 bis D gilt das Selbe wie für die Register 0 bis 6 mit der Maßgabe, dass statt Oszillator 1 der Oszillator 2 kontrolliert wird und dass bei den Modulationen eine Kombination von Oszillator 2 mit Oszillator 1 eintritt.
Beschreibung der Register für Stimme 3 (Voice 3):
Für die Register E bis 14 gilt das Selbe wie für die Register 0 bis 6 mit der Maßgabe, dass statt Oszillator 1 der Oszillator 3 kontrolliert wird und dass bei den Modulationen eine Kombination von Oszillator 3 mit Oszillator 2 eintritt.
Beschreibung der Filterregister:
Register 15: Cut-off Frequenz (FC Lo)
Register 16: Cut-off Frequenz (FC Hi)
Diese beiden Register enthalten einen 11 Bitwert (Bit 3 bis Bit 7 von Register 15 ist ohne Bedeutung) für
eine Cut-off Frequenz zwischen 30 Hz und 12 KHz.
Register 17: Resonanz und Filteranwendung (Res/Filt)
Bits 4 bis 7 legen die Resananz bei der Cut-off-Frequenz fest. Ein Wert von 0 bedeutet keine Resonanz. Die Bits 0 bis 3 legen die Verwendung der Filter für die Stimmen und das externe Audiosignal fest und zwar:
Bit 0: Ist dieses Bit gesetzt werden für Stimme 1 die Filtereinstellungen verwendet. Ist dieses Bit gelöscht, so wird Stimme 1 ungefiltert ausgegeben.
Bit 1: gleiche Bedeutung für Stimme 2
Bit 2: gleiche Bedeutung für Stimme 3
Bit 3: gleiche Bedeutung für externes Audiosignal
Register 18: Begrenzungsfilter, 3 off und Lautstärke (Mode/Vol)
Die Bits 0 bis 3 sind für die 16 Gesamtlautstärkewerte zuständig. Ein Wert von 0 bedeutet keine Ausgabe. Damit der SID einen Ton von sich gibt muss ein Wert ungleich 0 gewählt werden.
Bit 4: Wird dieses Bit gesetzt wird der Tiefpassfilter aktiviert
Bit 5: Wird dieses Bit gesetzt wird der Bandpassfilter aktiviert
Bit 6: Wird dieses Bit gesetzt wird der Hochpassfilter aktiviert
Bit 7: Wird dieses Bit gesetzt wird der Ausgang von Oszillator 3 von der dirkten Ausgabe getrennt
Beschreibung der sonstigen Register (Misc):
Register 19: A/D-Wandler (Pot X)
8-Bit Analog/Digital-Wandler für den Wert eines Potentiometers. (Bit 9 der Control-Ports)
Register 1A: A/D-Wandler (Pot Y)
8-Bit Analog/Digital-Wandler für den Wert eines Potentiometers. (Bit 5 der Control-Ports)
Register 1B: Oszillator 3 / Zufallszahl (Osc3/Rnd)
Über dieses Register können die höchsten 8 Ausgabebits von Oszillator 3 gelesen werden. Da der Oszillator 3 über 3 off für den Lautsprecher stumm geschalten werden kann, die Wert jedoch weiter generiert werden, kann dieses Register auch als Zufallszahlgenerator verwendet werden.
Register 1C: Hüllkurvenwert von Oszillator 3 (Env 3)
Über dieses Register können die höchsten 8 Ausgabebits des Hüllkurvengenerators von Oszillator 3 gelesen werden.
SID Charakteristik
maximale Belastung
Symbol | Wert | |
Betriebsspannung | Vdd | -0.3 bis +17 V |
Betriebsspannung | Vcc | -0.3 bis +7 V |
Eingangsspannung (analog) | Vina | -0.3 bis +17 V |
Eingangsspannung (digital) | Vind | -0.3 bis +7 V |
Betriebstemperatur | Ta | 0 bis +70 °C |
Lagertemperatur | Tstg | -55 bis +150 °C |
Elektrik
Vdd = 12 V ±5%
Vcc = 5 V ±5%
Ta = 0 bis 70 °C
Symbol | Min | Typ | Max | |
Input High Voltage | Vih | 2 V | - | Vcc |
Input Low Voltage | Vil | -0.3 V | - | 0.8 V |
Input Leakage Current | Iin | - | - | 2.5 μA |
Three-State (Off) | Itsi | - | - | 10 μA |
Input Leakage Current | Vin | 0.4 V | - | 2.4 V |
Output High Voltage | Voh | 2.4 V | - | -0.7 V |
Output Low Voltage | Vol | GND | - | 0.4 V |
Output High Current | Ioh | 200 μA | - | - |
Output Low Current | Iol | 3.2 mA | - | - |
Input Capacitance | Cin | - | - | 10 pF |
Pot Trigger Voltage | Vpot | - | Vcc/2 | - |
Pot Sink Current | Ipot | 500 μA | - | - |
Input Impedance | Rin | 100 kΩ | 150 kΩ | - |
Audio Input Voltage | Vin | 5.7 V | 6 V | 6.3 V |
- | 0.5 V | 3 V | ||
Audio Output Voltage | Vout | 5.7 V | 6 V | 6.3 V |
One Voice On: | 0.4 V | 0.5 V | 0.6 V | |
All Voices On: | 1.0 V | 1.5 V | 2.0 V | |
Power Supply Current | Idd | - | 20 mA | 25 mA |
Power Supply Current | Icc | - | 70 mA | 100 mA |
Power Dissipation | Pd | - | 600 mW | 1000 mW |
SID Timing
Name | min | Typ | max | |
Tcyc | Clock Cycle Time | 1 μs | - | 20 μs |
Tc | Clock High Pulse Widtch | 450 ns | 500 ns | 10000 ns |
Tr, Tf | Clock Rise/Fall Time | - | - | 25 ns |
Trs | Read Set-Up Time | 0 ns | - | - |
Trh | Read Hold Time | 0 ns | - | - |
Tacc | Access Time | - | - | 300 ns |
Tah | Address Hold Time | 10 ns | - | - |
Tch | Chip Select Hold Time | 0 ns | - | - |
Tdh | Data Hold Time | 20 ns | - | - |
Name | min | Typ | max | |
Tw | Write Pulse Width | 300 ns | - | - |
Twh | Write Hold Time | 0 ns | - | - |
Taws | Address Set-up Time | 0 ns | - | - |
Tah | Address Hold Time | 10 ns | - | - |
Tch | Chip Select Hold Time | 0 ns | - | - |
Tvd | Valid Data | 80 ns | - | - |
Tdh | Data Hold Time | 10 ns | - | - |
Typische SID-Schaltung
Frequenzwerte für Musik-Noten
Damit nicht wertvolle Rechenzeit für das Ermitteln eines Wertes für eine Musiknote benötigt wird, wird üblicher Weise auf eine Tabelle zurückgegriffen. Hierfür sind nur die 12 Noten einer Oktav nötig, da der selbe Ton eine Oktav höher genau den doppelten Wert hat. Untenstehend sind die ersten zwei Oktaven abgebildet. Zu beachten sind Abweichen auf Grund von Rundungen. Da der Wert von der Taktfrequenz des Chips (Eingang Phi 0) abhängig ist werden untenstehend sowohl die Werte für die PAL-Version des C64 (0,98 MHz) als auch für den 1 MHz Referenzwert von MOS angegeben. Der 16-Bit Zahlenwert ist hier im Hex-Format aufgelistet.
Note | Frequenz | Werte für die Taktfrequenzen | ||
(C64 PAL) | (1 MHz) | |||
C-0 | 16,35 Hz | 0116 | 0112 | |
C#-0 | 17,32 Hz | 0127 | 0123 | |
D-0 | 18,35 Hz | 0139 | 0134 | |
D#-0 | 19,44 Hz | 014B | 0146 | |
E-0 | 20,60 Hz | 015F | 015A | |
F-0 | 21,83 Hz | 0174 | 016E | |
F#-0 | 23,12 Hz | 018A | 0184 | |
G-0 | 24,50 Hz | 01A1 | 018B | |
G#-0 | 25,96 Hz | 01BA | 01B3 | |
A-0 | 27,50 Hz | 01D4 | 01CD | |
A#-0 | 29,14 Hz | 01F0 | 01E9 | |
H-0 | 30,87 Hz | 020E | 0206 | |
C-1 | 32,70 Hz | 022D | 0225 | |
C#-1 | 34,65 Hz | 024E | 0245 | |
D-1 | 36,71 Hz | 0271 | 0268 | |
D#-1 | 38,89 Hz | 0296 | 028C | |
E-1 | 41,20 Hz | 02BE | 02B3 | |
F-1 | 43,65 Hz | 02E7 | 02DC | |
F#-1 | 46,25 Hz | 0314 | 0308 | |
G-1 | 49,00 Hz | 0342 | 0336 | |
G#-1 | 51,91 Hz | 0374 | 0367 | |
A-1 | 55,00 Hz | 03A9 | 039B | |
A#-1 | 58,27 Hz | 03E0 | 03D2 | |
H-1 | 61,74 Hz | 041B | 040C |
Logische Realisierung der Hüllkurven
Dreieck:
Der Eingang ist ein steigender 12 Bit-Zähler, wovon das höchste Bit mittels einer Exlusiv-Oder-Funktion mit den anderen Bits verknüpft wird. Dadurch wird am Ausgang der Verknüpfung zuerst von 0 auf 2047 hochgezählt und anschließend von 2047 auf 0 wieder herunter. Durch diese sehr einfache Realisierung kann kein exaktes Dreiecksignal erreicht werden, da sowohl der Wert 0 als auch der Wert 2047 hinter einander doppelt vorkommt. Es liegt also richtigerweise das kleinste Trapetzsignal vor, was allerdings dem Dreieck derart nahe kommt, dass diese Ungenauigkeit vernachlässigt werden kann. Um wieder auf einen 12-Bitwert zu kommen, wird eine Stelle nach links geshiftet.
Sägezahn:
Der 12 Bit-Zähler wird einfach übernommen.
Rechteck:
Ist das höchste Bit des Zählers gesetzt werden am Ausgang der Verknüpfung alle Bits ebenfalls gesetzt, ansonsten alle gelöscht.
Noise:
Die höchsten 12 Bit eines 23-Bit Pseudozufallsgenerators werden übernommen. Gleichzeitig dienen diese für die Generierung der nächsten Zufallszahl (untere 11 Bit der Zufallszahl). Es wird jeweils um 11 Stellen geschiftet, so dass das niedrigste Bit am Ausgang bei der nächsten Zahl das höchste Bit ist.
ADSR-Verlauf
Die angegebenen Poke-Adressen (54277/54278) gelten für Stimme 1. Stimme 2 wird über 54284/54285 und Stimme 3 über 52291/52292 angesteuert.