Arpeggiator

This instrument implements an arpeggiator effect, such as is often found on hardware synthesizers. The notes generated by the arpeggiator are played by a simple synthesizer and echoed by a multi-mode delay.

Arpeggiator Section

Synthesizer Section

Technical

Whenever a new note is played its note number is written into two different function tables: in the first table, note numbers are written sequentially in the order in which they were played. (NB. if a note is removed its note number is removed from this table and any notes following it in the table are shunted back one place so as to not leave any gaps.) This table is used by the 'Seq. Play' and 'Random Pick' arpeggiator modes. A second table is created (and updated any time a new note is added or removed) in which all notes currently being held are sorted into ascending order. This table is used by all other arpeggiator modes. A third table is used to store the on/off status of each note. A value of '1' in this table denotes 'note on' and '0' denotes 'note off'. For example if middle C (note number 60) is pressed, the 61st table item with index number 60 will be '1'. This is needed to check for active notes and prevent the same note appearing twice in a note row. This would otherwise be possible when 'hold' is active. This function could be deactivated if you wanted to define arpeggios with repeated notes.