amsynth is a free and open-source analog modelling software synthesizer. It functions as a real-time audio application, generating sound based on MIDI input and user-controlled parameters. The architecture is a modular monolith: a core library (libcore.la) contains the entire synth engine (oscillators, filters, envelopes, reverb, distortion) and a JUCE-based GUI. This core is linked into multiple deployment targets: a standalone application (using JACK/ALSA/OSS) and several plugin formats (LV2, VST2, DSSI, Audio Unit). The codebase demonstrates strong software engineering for the audio domain. Key architectural patterns include a clean separation between the DSP engine and the UI/plugin shells, an Observer pattern for parameter changes, and a resource pool pattern for voice allocation. The Parameter module is particularly well-crafted, providing a declarative specification for all synth controls with built-in value smoothing and conversion. The VoiceAllocationUnit implements a clean voice-stealing algorithm. The project is actively maintained with CI/CD pipelines. However, it carries significant technical drift typical of long-lived audio software: it relies on a forked JUCE submodule, supports legacy formats (DSSI, VST2, OSS), and uses an autotools build system alongside Xcode and Visual Studio projects. Despite this, the core DSP components are stable, well-tested, and represent a high-quality reference for subtractive synthesis.