Tool for physics-based modeling and DSP

Version BC3
How it works

Pages updated by June 30, 2008

BC3LW for LispWorks added (Mac OSX, Windows, Linux)

BlockCompiler (BC) is an experimental programming environment particularly for time-domain modeling and simulation of physical systems, but it also has appropriate support for digital signal processing. BC was originally developed for physics-based modeling and sound synthesis of musical instruments, which is one of the most obvious application fields for it. Other areas of acoustics, audio, electric circuits, mechanical systems, etc., have found applications as well.

BC is intended for block-wise construction of models by connecting operational blocks through their signal and physical ports. Models built in BC can be simulated within BC itself (real-time or non-realtime) or exported to other simulation environments, particularly to Pd (PureData, not presently, sorry) and MATLAB/Octave.

The most unique feature of BC is its multi-paradigm approach to physics-based modeling, supporting for example Digital Waveguides (DWGs), Wave Digital Filters (WDFs), Finite Difference Time Domain models (FDTDs), as well as hybrid models combining physics-based modeling and DSP.

BC is implemented in the Common Lisp language. Therefore scripting and programming of models is done in Lisp syntax. Presently there is no visual programming editor for model building. Textual programming is used instead, which is more powerful for research and experimental purposes. Graphical user interface programming is available in the BC3LW version.

BC3, version 3 of BlockCompiler, is available and can be downloaded for different platforms: Mac OSX, Windows, and Linux. The main distribution (June 30, 2008) is for LispWorks Lisp, but a version (Feb. 15, 2008) for CLISP is also available.

Last modified: June 30, 2008 by MK