Table of Contents

SIDaster Synth

Disclaimer

SIDaster is under development. The description here contains both already implemented and intended features of the Synth. See the Changelog section for current status, and ToDo section for features that are under progress.

Description

fullmaj.rd-h.fr_wordpress_wp-content_uploads_2011_09_hot1.jpg SIDaster Synth Engine is an Arduino Software that plays Old fashioned “SID” MOS6581 sounds. It transforms an Arduino Board interfaced with the SIDaster shield into a multimode 8 bits synthesizer. The synth characteristics are decribed below:

Requirements

To operate the Synth, are required:

Synth code has been compiled under Arduino 022 IDE version, and requires the following libraries:

Download

Beta 3 Version – Full Midi capability (including Filter but this part has not been tested yet).

Download link : SIDaster Beta 3

Detailed Design Description

Synth is built around the Handler mechanism proposed by the Arduino Midi Library to handle midi messages.

General

Registers of the MOS are being written using the harware SPI by calling the sid.send() function. A conversion table allows to translate from Midi note input to MOS frequency register value.

MOS6581 internal registers are mirrored inside the software through the variables declared at the beginning of the program. This allows to keep track of the Synth state and to perform the least number of writes to the MOS registers as possible.

Mono Mode

Note Messages

Note on and Note Off messages are handled using the associated handlers. The specific case of Note On with 0 velocity to be treated as note off is considered in the code. The synth keeps memory of the previous note pressed, in order to allow legato playing stylesto be handled properly.

Each voice of the SID is updated with its own frequency value according to the note played, the coarse and the fine value.

Control Change

Midi CC messages are handled with a switch case and the corersponding variable of the Synth is updated accordingly. When necessary, the registers inside the SID are updated to the new value.

To Do list