A polyphonic synthesizer plugin in CLAP format for macOS, featuring multiple waveforms and ADSR envelope control.
- 5 Waveforms: Sine, Square, Saw, Triangle, Pulse
- ADSR Envelope: Full Attack, Decay, Sustain, Release control
- 16-Voice Polyphony with intelligent voice management
- Real-time Parameter Automation
- MIDI Input Support
- Native macOS Bundle (.clap format)
- Attack (0.001s - 5s) - Note fade-in time
- Decay (0.001s - 5s) - Time to reach sustain level
- Sustain (0% - 100%) - Held note level
- Release (0.001s - 5s) - Note fade-out time
- Waveform - Choose from 5 different waveforms:
- Sine - Pure, smooth tone
- Square - Hollow, woody sound
- Saw - Bright, buzzy sound
- Triangle - Softer than square, warmer than sine
- Pulse - Narrow pulse wave (25% duty cycle)
- Volume (0% - 100%) - Overall output level
- macOS 10.15 or later
- CLAP-compatible DAW (Logic Pro, Reaper, Bitwig Studio, etc.)
- Xcode Command Line Tools
# Install Xcode Command Line Tools
xcode-select --install
# Clone the repository
git clone https://github.com/yourusername/simple-synth-clap.git
cd simple-synth-clap# Make build script executable
chmod +x build.sh
# Build the plugin
./build.sh# Make install script executable
chmod +x install.sh
# Install to system plugin directory
./install.shOr manually copy the built plugin:
cp -R build/SimpleSynthCLAP.clap ~/Library/Audio/Plug-Ins/CLAP/- Load the plugin in your CLAP-compatible DAW
- Play MIDI notes to trigger the synthesizer
- Adjust parameters in real-time:
- Change waveforms for different tonal characteristics
- Modify ADSR envelope for different note behaviors
- Adjust volume for mix balance
- Automate parameters for dynamic performances
- Format: CLAP (CLever Audio Plugin)
- Polyphony: 16 voices with round-robin voice stealing
- Sample Rate: All standard rates supported
- Bit Depth: 32-bit float internal processing
- Latency: Zero latency
- Voice Management: Intelligent allocation with anti-hanging protection
simple-synth-clap/
├── src/
│ ├── simple_synth.h # Main synthesizer class
│ ├── simple_synth.cpp # Synthesizer implementation
│ ├── voice.h # Voice class definition
│ ├── voice.cpp # Voice implementation with waveforms
│ └── plugin.cpp # CLAP plugin interface
├── build.sh # Build script
├── install.sh # Installation script
├── Makefile # Build configuration
├── Info.plist # macOS bundle info
└── README.md # This file
- SimpleSynth: Main plugin class handling CLAP interface
- Voice: Individual voice with oscillator and envelope
- Plugin Interface: CLAP entry point and factory
- CLAP Integration: Full CLAP specification compliance
- Voice Management: Polyphonic voice allocation and cleanup
- Waveform Generation: Multiple oscillator types
- Envelope Processing: ADSR envelope with proper state management
- MIDI Handling: Note on/off and parameter automation
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
- Built using the CLAP SDK
- Developed as part of the polarity-music-tools collection
- Thanks to the CLAP community for the excellent plugin format
- Issues: Report bugs and feature requests on GitHub Issues
- Discussions: Join conversations in GitHub Discussions
- Documentation: Check the wiki for detailed documentation
Made with ❤️ for the music production community