JUCE is a mature, cross-platform C++ application framework specializing in audio software development. It provides a comprehensive set of modules covering core utilities, GUI, graphics, audio processing, MIDI, DSP, and plugin formats (VST3, AU, AAX, LV2, ARA). The architecture is a modular monolith: each module (e.g., juce_core, juce_audio_basics, juce_gui_basics) is a self-contained library that can be selectively included. Key entry points include JUCEApplication for desktop apps, AudioProcessor for audio plugins, and Component for GUI widgets. Data flows center on audio buffers (AudioSampleBuffer), MIDI messages, and event-driven GUI updates via message queues. External dependencies are minimal at the API level, but the framework bundles many third-party libraries (Opus, FLAC, Vorbis, WebP, HarfBuzz, Box2D, etc.) for codec and graphics support. The repository also includes the Projucer IDE for project generation and build tooling (CMake helpers, resource file management).
OwlPlug is a desktop application for managing audio plugins (VST2, VST3, AU, LV2) and analyzing DAW projects (Ableton Live, Reaper, Studio One). It provides a complete plugin management workflow: scan directories to discover plugin files, extract metadata via a native JUCE-based scanner, enable/disable plugins, manage symlinks, and export reports. The Explore feature allows browsing and installing plugins from remote registries (OwlPlug Registry, Open Audio Stack). DAW project parsing extracts plugin references to enable lookups and dependency tracking. Architecturally, OwlPlug is a multi-module Maven project. The core client (owlplug-client) is built with JavaFX and Spring Boot, using H2/JPA for persistence and Ehcache for image caching. The native host module (owlplug-host) uses JUCE to scan plugin binaries via JNI or an embedded command-line scanner. Separate modules provide reusable UI controls (owlplug-controls), ANTLR4-based DAW parsers (owlplug-parsers), and an AtlantaFX dark theme (owlplug-theme). The event-driven design with Spring `ApplicationEventPublisher` decouples UI updates from background tasks. Notable features include differential plugin scanning (only process new/changed files), a task framework with progress reporting and telemetry (Mixpanel), and a set of custom JavaFX controls (Dialog, DoughnutChart, MasonryPane, ChipView, etc.). The codebase demonstrates solid engineering practices: clear separation of concerns, concurrency patterns (Async.Sequence for stale result prevention), and a three-tier image cache. While some UI components are deprecated and the native scanner introduces platform-specific fragility, the overall architecture is well-organized and the reusable control module is a highlight.
amsynth is a free and open-source analog modeling software synthesizer. It implements classic subtractive synthesis with dual oscillators, a resonant low-pass filter, ADSR envelopes, LFO, distortion, and reverb. The system is designed for real-time audio and MIDI processing, supporting polyphony, portamento, pitch bend, and microtonal tuning via Scala files. It can run as a standalone application using JACK, ALSA, or OSS audio drivers, or as a plugin in LV2, VST2, DSSI, and AudioUnit formats. The architecture separates the core synthesis engine (Synthesizer, VoiceAllocationUnit, VoiceBoard) from the GUI (JUCE-based with a skinnable control panel) and plugin wrappers, all sharing a common parameter system with observer pattern and value smoothing. The repository includes a large collection of preset banks, a configuration system, and internationalization support. External dependencies include JUCE for the GUI, freeverb for reverb, MTS-ESP for microtonal support, and NSM for session management.
Just a Sample is a modern, open-source audio sampler plugin for VST3 and AU formats, built with the JUCE framework. It provides sample playback with time-stretching and pitch-shifting (via the Bungee library), a reorderable FX chain (reverb, chorus, distortion, EQ), waveform editing, recording, and microtonal tuning support via MTS-ESP. The architecture is a single plugin with a modular internal design: the core audio processing lives in CustomSamplerVoice, while UI components like SampleEditor, SampleNavigator, FxChain, and CustomLookAndFeel are separated into distinct modules. Effects are implemented as independent classes (Reverb, Chorus, Distortion, BandEQ) with a common interface. The project also includes Reaper-specific VST3 extensions for tighter DAW integration. The codebase demonstrates solid engineering practices with custom UI patterns, thread-safe sample loading, and a theme system supporting dark/light modes. While some parts show active development (TODOs, experimental features), the overall structure is clean and well-organized, making it a good reference for JUCE-based plugin development.
This repository is a collection of professional-grade audio effect and instrument plugins (VST3/AU/LV2/Standalone) originally by Bram @ Smartelectronix and Tobybear, ported from legacy VST2/Delphi code to the modern JUCE 8 framework. It contains 11 distinct plugins including an oscilloscope (Smexoscope), pitch shifter (Madshifta), compressor (H2O), waveshaper (Cyanide2), phaser (SupaPhaser), delay (Bouncy), granular trigger (SupaTrigga), bitcrusher (Bitmurderer), reverb simulator (AnechoicRoomSimulator), synth (OnePingOnly), and multi-effect (CrazyIvan). The architecture is a collection of independent JUCE AudioProcessor subclasses, each with its own DSP logic and custom UI components built from film-strip assets. The modern codebase follows a consistent pattern: APVTS parameter management, binary-embedded resources, and CMake-based build with CI/CD via GitHub Actions. The repository also preserves the original VST2/AU source code in a legacy/ directory for reference. The primary value lies in the reusable UI widgets (FilmStripKnob, SplashOverlay) and the well-isolated DSP algorithms (multitap delay, spline-based waveshaping, polyphase resampling), which demonstrate non-obvious engineering skill in real-time audio optimization. There is some code duplication across plugins and a few incomplete GUI ports, but the overall quality is solid and the modern code is cleanly structured.