Differences between FaustPy and Faust-Ctypes

The main difference between Faust-Ctypes and FaustPy is the moment of compilation of the Faust program. Faust-Ctypes uses ahead-of-time compilation whereas FaustPy uses just-in-time compilation. Most of the advantages and drawbacks of the two programs are symptomatic of these approachs, for instance :

  • Faust-Ctypes does not require to embed the faust compiler and a C compiler. It could for instance be used in the web IDE to directly get a library containing the digital signal processor, without having neither Faust nor C installed on the user’s machine.

  • Faust-Ctypes does not have access to the original code. One cannot imagine for instance templating a Faust program and editing it on-the-fly to get very specific DSP libraries.

There are also less-notable differences :

  • As FaustPy directly works on the generated C files, it is more resilient to design changes than Faust-Ctypes, where Faust-Ctypes must be kept up-to-date with the C header files generated by Faust.

  • Faust-Ctypes relies on Ctypes which is part of the Python standard library.