Architect: Flow-based programming language
Tech Stack: C++, Python, CMake, GoogleTest, JUCE, re2c, Lemon, Lua
Link: www.loomer.co.uk/architect.html
Architect is an application used by many musicians, composers, and sound
designers to create generative, stochastic compositions. It is a
commerical application, about to leave beta, and is available for macOS,
Linux, and Windows.
Some of the features I have developed for this include:
- A visual flow based programming language, where programs are created by connecting together individual modules, such as random number generators, mathematical functions, MIDI input and output devices, etc.
- The runtime uses a lock-free, low-latency, multi-threaded engine. This is accomplished by using a number of lock-free data structures of my own design, as well as leveraging compile-time constants to compute data during compilation, a real-time two segregated fit memory allocator, incremental mark and sweep garbage collector, and interned data types.
- Modern user interface.
- Unlimited undo and redo using the Command design pattern to store a historic stack of changes.
- Presets stored in XML format.
- Built-in Lua API. Sandboxed to prevent access to the local computer. Lua module (using the real-time TLSF memory allocator) has real-time performance.
- Custom Python builder which builds the project on macOS, Linux, and Windows, and also creates the installer packages, handles code signing, notarization, and stapling.
- Extensive test coverage using GoogleTest and GoogleMock.
- Custom compiler using re2c and the Lemon parser (similar to lex and yacc.)
- Hosts third party plug-ins. When scanning plug-ins, it can do so using an external process, communicating with the main app using inter-process communication, to ensure that buggy plug-in do not crash the main application.