Squareinator - en SN76489 Monosynth (5 / 8 steg)
Steg 5: Software Design
Synth koden skrevs Arduino, som när jag skriver är i princip vanlig C-kod. MIDI och SPI bibliotek användes som en bekvämlighet. Koden är skriven som en enda fil. Det finns ingen innehåller annat än de refererade bibliotek.
Kodning en synth handlar om loopar. Det finns de viktigaste loop, vars jobb det är att snurra runt kontroll om anteckningar har anlänt via MIDI eller om det är dags att tjänsten ett av kuverten. Det finns kuvert för VCA och VCF, samt en enkel på / av-LFO för VCA. Det finns också en slinga för att betjäna funktionen glide. SN76489 utgångar en signal på egen hand när set, så annat än MIDI där är ingenting mycket timing-kritisk. Så, allt hanteras av röstningen och avbryter inte används (förutom MIDI).
Om vi spelar tillbaka prover och behövs för att upprätthålla en bitrate, skulle då ja, avbryter vara nödvändigt.
Koden kan hittas här:
https://github.com/quarterturn/squareinator
Du kan använda "git clone https://github.com/quarterturn/squareinator.git" att få en kopia, eller bara använda webbgränssnittet på github.
Koden är licensierad under GPL v2.