Stap 5: Softwareontwerp
De synth-code is geschreven in de Arduino, terwijl ik dit schrijf is in principe gewoon C-code. MIDI en SPI bibliotheken werden gebruikt als een gemak. De code is geschreven als een enkel bestand. Er zijn geen bevat andere dan de bibliotheken waarnaar wordt verwezen.
Een synth-codering is alles over lussen. Er is de hoofdlus, wiens taak het is om te draaien rond controleren als notities zijn aangekomen via MIDI of als it's time to service een van de enveloppen. Er zijn budgetten voor VCA en VCF, evenals een eenvoudige aan / uit-LFO voor de VCA. Er is ook een lus voor het onderhoud van de glide-functie. De SN76489 uitgangen een signaal op eigen eenmaal ingesteld, dus andere dan dat MIDI er is niets zeer timing-kritisch. Dus, alles wordt verwerkt door polling en interrupts niet gebruikt worden (met uitzondering van MIDI).
Als we terug monsters speelden en die nodig zijn om een bitrate te handhaven, dan zou ja, interrupts nodig.
De code kan hier worden gevonden:
https://github.com/quarterturn/squareinator
U kunt "git clone https://github.com/quarterturn/squareinator.git" om een kopie te krijgen, of gewoon gebruik maken van de web-interface op github.
De code is gelicenseerd onder de GPL v2.