Transferring a complex analog hardware into digital code is not exactly trivial, especially if the model is a completely discrete design like the karacter.
The first important task in a project like this is to fragment the electronic circuitry into separate functional blocks. These blocks are translated into software step by step after which they are united to become a functioning prototype.
This first result is measured very accurately and then compared to the hardware, which leads to an extensive and very detailed matching process. The work on the graphical user interface (photography, retouching, rendering) takes place at the same time.
The final stage is the calibration of the behavior of all the controllers in order to give the software the ‘feel’ of the real thing. Finally, the finished code is ported to different plugin interfaces (AAX/RTAS/VST/AU...) and packed into installation routines.