In the previous blog, “Modular Instruments“, I presented an instrument design model that takes advantage of Csound’s modular nature by breaking the common instrument structure apart into three elements: Synth Engine, Memory and Interface. (SEMI)
In todays blog, I create a new synth named MonoSynth based on the original SEMI Simple synth by replacing the zak memory with a memory core based on the chn opcodes, extending functionality of the engine, introducing modulation parameters, and by incorporating a method that links instances of instruments into an audio chain from within the score.
When designing a virtual instrument in csound, the easiest approach is to create a single self-contained instr. Within this instr, any number of opcodes can be arranged in a near-infinite number of combinations. Each instance of the instr manages its own local memory space/variables/signals. Users customize the interface of the instr by utilizing p-fields.
With this fundamental model of instrument design, it is already apparent that Csound excels in terms of modularity. However, there are many other approaches that expand this concept even further.