User Tools

Site Tools


sidaster_synth

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
sidaster_synth [2011/09/27 12:11] – created wadminsidaster_synth [2018/08/26 09:36] (current) – external edit 127.0.0.1
Line 35: Line 35:
    
 ==== Download ==== ==== Download ====
-Beta Version – Full Midi capability (including Filter but this part has not been tested yet).+Beta Version – Full Midi capability (including Filter but this part has not been tested yet).
  
-Download link : {{http://fullmaj.rd-h.fr/wordpress/wp-content/uploads/2011/07/SIDasterIII.zip|SIDaster Beta 1}}+Download link : {{http://fullmaj.rd-h.fr/wordpress/wp-content/uploads/2011/07/SIDasterIII.zip|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. 
 +  * Coarse is a basic -16 to +15 Midi note translation
 +  * fine ranges from 0 t 127 and is directly added to the Osc frequency register value to slightly adjust the frequency and create beats.
 +
 +== 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 ====
sidaster_synth.1317125481.txt.gz · Last modified: 2018/08/26 09:36 (external edit)