ArSid - Arduino Sid Synthesizer

Sat 23-Mar-19
22:29:27




Sid Synthesizer Chip

Datum: Thu 31 December 2015
Samenvatting: De Sid - een introductie naar deze Commodore 64 geluidschip (Update: met Smartscope plaatjes van harmonischen van golfvormen).
 Soort Artikel: Theorie
Status: Afgerond



[Tekst] [Afbeeldingen] [Aansluitingen] [Broncodes]
sidintro_1.jpg
1/8: sidintro_1.jpg.
sidintro_2.jpg
2/8: sidintro_2.jpg.
sidintro_3.jpg
3/8: sidintro_3.jpg.
sidintro_4.jpg
4/8: sidintro_4.jpg.
sidintro_5.jpg
5/8: sidintro_5.jpg.
sidintro_6driehoek.jpg
6/8: sidintro_6driehoek.jpg.
Meer
[Tekst] [Afbeeldingen] [Aansluitingen] [Broncodes]

Wat maakt het dat de Sid nog steeds veel interesse heeft om gebruikt te worden? Is het nostalgie? Is het het typische geluid? Is het de relatieve eenvoud ten opzichte van PC-muziek? Zelfs tegenwoordig worden in diverse projekten de Sid gebruikt.

Geschiedenis van de Sid.

In 1982 werd aan Bob Yannes {een Amerikaanse electronica ingenieur, tevens electronische muziek hobbyïst}, degene die later medeoprichter werd van Ensoniq {in 1982}, de taak gegeven om een geluidschip voor de Commodore 64 te ontwikkelen, in de kortst mogelijke tijd. in die periode werkte hij bij MOS Technology, één van Commodore's hoofd fabrikanten. de "MOS 6581 Sound Interface Device", de SID-Chip, was een zeer solide gebouwde geluidschip voor zijn tijd. {In die tijd hadden home-computers alleen eenvoudige piepjes als geluid. Aan en uit, maar de frequentie was wel in te stellen. De Vic 20 (ook van Commodore) had toen de uitgebreidste met 3 verschillende geluidsoscilatoren.} Sequential Circuits {een synthesizer-producent in San Jose, Californie} werd toen ook geinteresseerd in het kopen ervan in grote hoeveelheden.

Vanwege de toen hectische fase van de ontwikkeling, was de volledige documentatie van de mogelijkheden nooit afgerond: het eerste document was geschreven voor het prototype en het veranderde zo vaak dat, zoals Bob Yannes in een interview met Andreas Varga vertelde, het gewoonweg totaal geen zin meer had. Desalniettemin, de Sid's mogelijkheden werden spoedig herkend, hoofdzakelijk door de spel-producers, die het grote succes van de Commodore 64 zeker stelden. Tot dan was er geen geluidschip van dat kaliber in een home-computer geweest. De Sid bleef één van de belangrijkste chips in het gebruikt voor een good aantal jaren.

Deze chip was Bob Yannes eerste poging geweest in de ontwikkeling van een fase-optellende oscillator, de fundering van alle wave-tabel syhtese basis systemen. In het begin had hij gepland om de Sid hoofdzakelijk aan de synthesizer industrie te verkopen, maar de productie capaciteit kon het moeilijk bijhouden met de groeiende vraag voor de Commodore 64. En toen er uiteindelijk genoeg chips waren, werkte Yannes niet meer voor Commodore.

Eigenschappen van de Sid.

De Sid heeft de volgende eigenschappen:

  1. Een digitale geluidssterkte (4 bits resolutie, 16 niveaux).
  2. 3 onafhankelijke toon generatoren (oscilatoren, stemmen) met elk de volgende eigenschappen:
    1. [0-1] een frequentie bereik van 0Hz tot zo'n 4kHz (16 bits resolutie) (zie volgende opsomming).
    2. [2-3] & [4] 4 verschillende golfvormen: zaagtand, driehoek, blokgolf (met in te stellen duty-cycle) en witte ruis.
    3. [5-6] Envelope generator met in te stellen ADSR (elk van deze 4 parameters heeft een 4 bits resolutie (A:2ms-8s) (D:6ms-24s) (S:0-15) (R:6ms-24s).
    4. [4] Amplitude modulatie (tot 48dB).
    5. [4] Mogelijkheid tot synchronisatie, of ring-modulatie, met een andere oscilator.
  3. Een programmeerbaar filter (laag-, midden-, hoog-doorlaat en bandsper), met instelbaar frequentie van 30Hz tot zo'n 12kHz (12 bits resolutie) en 12dB/oktaaf. Tevens is de resonantie van het filter in te stellen.
  4. 2 A/D converters (8 bits resolutie, laag frequent voor game paddles).
  5. Audio input kan door de filters van de Sid worden geleid.

Harmonische boventonen.

Een eenvoudige basis muziektoon bestaat primair uit een sinus-vormig signaal. Dit is 1 frequentie (toonhoogte), zonder boventonen met een vaste luidheid. Wie wiskunde gehad heeft (en wel het vak goniometrie) heeft een idee hoe een sinusvorm eruit ziet. Nu is een enkele sinusvorm een saaie toon om te horen, maar het is de basistoon. De frequentie van deze sinusvorm wordt de grondtoon genoemd (de eerste harmonische, de laagste frequentie die een noot maakt).

Muziek instrumenten maken geluid met harmonischen (ook wel boventonen genoemd) er in. Een piano klinkt anders dan een trommel en anders dan een bekken. Sommigen hebben veel boventonen en anderen hebben er weinig. Deze boventonen zijn ook rechtstreeks afhankelijk van de grondtoon, het zijn veelvouden van de grondtoon. Een boventoon met een twee keer zo hoge frequentie als de grondtoon, wordt de eerste boventoon genoemd (de tweede harmonische). Een boventoon met een 3 x zo hoge frequentie is de tweede boventoon (de derde harmonische), 4 x zo hoog is de derde boventoon (de vierde harmonische) en zo voort.

Dit moet niet worden verward met oktaven, omdat een oktaaf per definitie twee keer zo hoog, of de helft zo laag klinkt. Een tweede boventoon klinkt 3 keer zo hoog en ligt tussen 1 oktaaf en 2 oktaven in.

De Sid heeft geen Hammond-orgel systeem (bekend van de diverse schuiven om boventonen mee te regelen) om boventonen te genereren. De Sid heeft zelfs geen sinus als golfvorm, maar wel een driehoek, zaagtand en een blokgolf. Deze drie simpele golfvormen hebben fantastische boventonen reeksen.

  • Driehoek golfvorm: Behalve de grondtoon, geeft een driehoek ook oneven harmonischen die met elke harmonische kwadratisch zachter klinken. plus de harmonischen worden beurtelings opgeteld en afgetrokken van de grondtoon.

    In wiskundevorm:

    driehoek(t) = 8/pi^2 * { cos(t) + 1/3^2 * cos(3t) + 1/5^2 * cos(5t) + 1/7^2 * cos(7t) + .. }


    Driehoek-vorm op 100Hz (dB-schaal). De derde harmonische is nog te zien, daarna verzwakken de harmonischen erg snel.

  • Zaagtand golfvorm: Behalve de grondtoon, geeft een zaagtand zowel de even als de oneven harmonischen. Het verschil met de driehoek is dat de harmonischen niet zo snel zachter klinken. Alle harmonischen worden ook bij elkaar opgeteld.

    In wiskundevorm:

    zaagtand(t) = 2/pi * { sin(t) - 1/2 * sin(2t) + 1/3 * sin(3t) - 1/4 * sin(4t) + .. }


    Zaagtand-vorm op 100Hz (dB-schaal). De harmonischen zijn duidelijk te zien, maar zwakken geleidelijk toch af.

  • Blokgolf golfvorm (met 50% duty cycle): Ook deze blokgolf geeft de grondtoon en net als de driehoek geeft een blokgolf alleen de oneven harmonischen. En net als de zaagtand klinken de harmonischen niet zo snel zachter en worden ze bij elkaar opgeteld.

    In wiskundevorm:

    blokgolf(t) = 4/pi * { sin(t) + 1/3 * sin(3t) + 1/5 * sin(5t) + 1/7 * sin(7t) + .. }


    Blokgolf-vorm op 100Hz (dB-schaal). De oneven harmonischen zijn duidelijk te zien, maar ook deze zwakken geleidelijk af.

  • Puls golfvorm (varierende duty-cycle): Deze geeft weer andere verhoudingen in de grondtoon en de boventonen, al naar gelang de duty-cycle is ingesteld.

    Hier is wel een formule voor, afhankelijk van de duty-cycle, maar deze heb ik niet zo gauw kunnen vinden. Deze formules zijn te zoeken bij het onderwerp "Fourier Transformatie".

  • Witte Ruis: Ruis bevat willekeurige frequenties met willekeurige amplitudes. Ruis wordt meestal gebruikt bij explosie-geluiden, handklappen, cymbals, zeegeluiden en zo voort.

De Sid heeft een uitgebreid programmeerbaar filter in zich. Ook hiermee zijn harmonischen uit de toon te filteren, waardoor weer andere instrumenten na te bootsen zijn. Nabootsen, omdat een synthesizer ook gebruikt wordt voor het nabootsen van bestaande instrumenten.

De envelope generator, ADSR.

Een tweede eigenschap van muziekinstrument tonen is de hardheid van de noten op zich, het volume, de amplitude. Een piano klinkt anders dan een orgel. Het verschil hierbij is hoe de noot zich opbouwd. Een orgel klinkt zodra de toets wordt ingedrukt en blijft net zo lang doorklinken. Een piano klinkt ook meteen, maar hoe lang de toets ook wordt ingedrukt, de toon zal langzaam wegsterven. Het verloop van dit klinken en uitsterven wordt envelope genoemd (of in het nederlands: "de omhullende").

De envelope kent vier fasen, waarvan de eerste begint zodra een "toets" wordt ingedrukt en de laatste fase begint zodra de toets weer wordt losgelaten. De fasen worden Attack, Decay, Sustain en Release genoemd, afgekort tot ADSR.

  1. Attack: Deze fase is met een tijd in te stellen en begint zodra de noot moet beginnen. De noot zal bij NUL beginnen en gedurende een tijd luider worden tot het maximum.
  2. Decay: Ook deze fase is met een tijd in te stellen en begint zodra de Attack-fase is afgerond. De noot zal van maximum zachter worden tot een bepaald niveau (de Sustain).
  3. Sustain: Deze fase geeft een volume (hardheid, amplitude) van de noot aan en begint zodra de Decay-fase voorbij is. De noot blijft dit volume behouden, tot het moment dat de noot moet stoppen.
  4. Release: Deze fase is weer een tijdsduur en begint zodra de noot moet stoppen. De noot zal vanaf het Sustain-niveau steeds zachter gaan klinken tot het niveau NUL is.

De ADSR is een belangrijke eigenschap die veel instrumenten eigenschappen kan nabootsen. Een orgel is meer van Aan en uit. Een piano begint hard en met een Sustain van NUL, zal de Decay de noot van Maximum tot NUL laten klinken. Een Viool doorloopt een Attack en Decay tot een bepaald Sustain-niveau, waarna een snelle Release de noot snel laat uitsterven. Met een ADSR is in zekere maten ook omgekeerd (reverse) in te stellen.

Elektrische 65xx eigenschappen.

De Sid is ontworpen voor de Commodore 64. Deze home-computer heeft als processor (CPU) een 6510, familie van de 6502-processor (en verre familie-lid van de 6800 processor). Het is deze processor die een aantal aansluitingen van de Sid bepaalt. Degenen die meer bekend zijn met de andere tak van processoren, zoals de Z80 of de 8088 (en verder - want PC procesoor) zal een aantal aansluitingen niet bekend voorkomen.

Zo is er een Φ2. Deze phi2 klok-puls wordt door de processor gegenereerd en synchroniseert het schrijven en lezen van de chip (op de neergaande flank). De frequentie van de phi2 is tevens een maat voor de frequentie van alle toon generatoren van de SID. Voor de juiste toon-frequenties zal deze phi2 op 1MHz moeten staan.

Er is een gecombineerde R/~W. Deze bepaalt of een chip gegevens van de processor moet inlezen (Laag = Write), of dat deze ze juist moet aangeven (Hoog = Read).

Er is één ~CS. Deze ChipSelect bepaalt of het juist deze chip is, waar de processor gegevens mee uitwisselt (dit lijntje moet dan Laag zijn).

De foto geeft de basis aan hoe de Sid aangesloten moet worden op de 65xx processor systeem. Signalen zullen door de Arduino moeten worden gesimuleerd. Uiteraard ben ik niet de enige die zo'n Sid Synthesizer projekt begonnen is. Dus zal ik dit hier ook met succes af kunnen ronden. 


[Tekst] [Afbeeldingen] [Aansluitingen] [Broncodes]

Afbeeldingen

sidintro_1.jpg
1/8: sidintro_1.jpg.
sidintro_2.jpg
2/8: sidintro_2.jpg.
sidintro_3.jpg
3/8: sidintro_3.jpg.
sidintro_4.jpg
4/8: sidintro_4.jpg.
sidintro_5.jpg
5/8: sidintro_5.jpg.
sidintro_6driehoek.jpg
6/8: sidintro_6driehoek.jpg.
sidintro_7zaagtand.jpg
7/8: sidintro_7zaagtand.jpg.
sidintro_8blokgolf.jpg
8/8: sidintro_8blokgolf.jpg.
[Tekst] [Afbeeldingen] [Aansluitingen] [Broncodes]