No special knowledge of language syntax beyond a working knowledge of C is needed to create a user-defined sound processing or synthesis routine. These user-defined functions are termed "instruments", even though they may be designed to do decidedly non-instrumental things. Because CMIX is built using the C programming language, all of the power and flexibility of C is available for use within an instrument. Of course, since C is a relatively well-established programming language, the design of CMIX instruments can become somewhat convoluted -- all of the power and flexibility of the C language can also be used (and seems often to be used!) to create quite obscure and difficult code. There are also many ways to accomplish the same result, often with no clear "best" method.