A powerful open-source generative MIDI processor with 10 algorithmic engines for creating Euclidean rhythms, polyrhythmic sequences, and complex algorithmic patterns. Available as AU, VST3, and standalone application for macOS.
-
Download the latest release:
- Go to Releases
- Download
GenerativeMIDI-v1.0.0-macOS.dmg
-
Mount the DMG:
- Double-click the downloaded DMG file
- The installer will open
-
Install plugins:
Option A - Terminal (recommended):
cd "/Volumes/Generative MIDI v1.0.0" cp -R "Generative MIDI.component" ~/Library/Audio/Plug-Ins/Components/ cp -R "Generative MIDI.vst3" ~/Library/Audio/Plug-Ins/VST3/
Option B - Manual:
- Open Finder and press
Cmd+Shift+G - Navigate to
~/Library/Audio/Plug-Ins/ - Drag
Generative MIDI.componentto theComponentsfolder - Drag
Generative MIDI.vst3to theVST3folder
- Open Finder and press
-
Run standalone app (optional):
- Double-click
Generative MIDI.appin the DMG - Or copy it to your Applications folder
- Double-click
-
Verify installation (AU only):
auval -v aumi Gmid Osrc
- macOS 10.15 (Catalina) or later
- 64-bit Intel or Apple Silicon (M1/M2/M3)
- Compatible DAW (Logic Pro, Ableton Live, Reaper, GarageBand, etc.)
- Euclidean Rhythm - Björklund's algorithm for perfectly distributed rhythmic patterns
- Polyrhythm - Multi-layer polyrhythmic sequencer with independent timing divisions
- Markov Chain - Melodic generation based on probability matrices
- L-System - Fractal pattern evolution using Lindenmayer systems
- Cellular Automata - Pattern generation using Wolfram rules
- Probabilistic - Stochastic note generation with density control
- Brownian Motion - Random walk with momentum and inertia
- Perlin Noise - Smooth, natural randomness
- Drunk Walk - Discrete random steps
- Lorenz Attractor - Deterministic chaos systems
- 16 Scale Types - Major, Minor, Modes, Pentatonic, Blues, Whole Tone, Chromatic
- MIDI Channel Routing - Route to any MIDI channel (1-16)
- Swing & Humanization - 6 swing groove templates, timing & velocity humanization
- Full MIDI Expression - Velocity, aftertouch, CC, pitch bend
- Gate & Ratcheting - Gate length control with legato mode, note retriggering
- Real-time Visualization - Live playback position and pattern display
- 31 Parameters - Full DAW automation support
- Gilded Steampunk Victorian Theme - Brass, gold, and copper aesthetic
- Color-Coded Generators - Visual feedback by engine type
- Context-Aware Controls - Relevant controls auto-enable/disable
- Resizable Window - 1200x500 to 2000x1000 pixels
- Touch-Optimized - Ready for iOS/iPadOS
- Load the plugin in your DAW as a MIDI effect
- Select a generator from the dropdown menu
- Adjust parameters:
- Tempo - Set BPM (20-400)
- Steps/Pulses - Configure pattern length and density
- Scale/Root - Choose musical scale and key
- Velocity/Pitch - Set output ranges
- Route to a synth - Connect MIDI output to any instrument
- Play! - Press play in your DAW
Euclidean Mode:
- Steps (1-64) - Total pattern length
- Pulses (0-64) - Number of active beats
- Rotation (0-64) - Pattern offset
Algorithmic Modes:
- Density (0.0-1.0) - Note generation probability
Stochastic Modes:
- Step Size (0.01-1.0) - Randomness magnitude
- Momentum (0.0-1.0) - Inertia/friction
- Time Scale (0.01-10.0) - Evolution speed
- Use Euclidean for tight, rhythmic patterns
- Use Markov Chain for melodic sequences that evolve
- Use Lorenz Attractor for unpredictable, chaotic melodies
- Combine multiple instances on different MIDI channels for layered complexity
- Automate parameters in your DAW for evolving patterns
- macOS 10.15 or later
- CMake 3.15+
- JUCE Framework 7.0+
- Xcode Command Line Tools:
xcode-select --install
# Clone the repository
git clone https://github.com/joshband/GenerativeMIDI.git
cd GenerativeMIDI
# Link JUCE (adjust path to your JUCE installation)
ln -s ~/JUCE JUCE
# Create build directory
mkdir build && cd build
# Configure
cmake .. -DCMAKE_BUILD_TYPE=Release
# Build (use -j8 for parallel build)
cmake --build . --config Release -j8
# Plugins are built to:
# - build/GenerativeMIDI_artefacts/Release/AU/Generative MIDI.component
# - build/GenerativeMIDI_artefacts/Release/VST3/Generative MIDI.vst3
# - build/GenerativeMIDI_artefacts/Release/Standalone/Generative MIDI.appSee docs/developer/BUILDING-iOS.md for detailed iOS build instructions.
./build_ios.sh
open build_ios/GenerativeMIDI.xcodeproj
# Configure code signing in Xcode and build to your deviceComplete documentation is available in the docs/ directory:
- Getting Started Guide - Quick start tutorial
- Features Guide - Complete feature reference
- Preset Guide - Creating and managing presets
- REAPER Quick Start - REAPER-specific setup
- Build Instructions - Detailed build guide
- Enhancement Roadmap - Planned features
- Changelog - Version history
- UI Specification - Interface design
- Color Palette - Visual design system
- Component Specs - UI components
Engines:
EuclideanEngine- Björklund algorithm implementationPolyrhythmEngine- Multi-layer rhythm sequencerAlgorithmicEngine- Markov, L-System, Cellular, ProbabilisticStochasticEngine- Brownian, Perlin, Drunk Walk, LorenzMIDIGenerator- MIDI message creation with full expression
DSP:
ClockManager- Tempo control and external MIDI syncEventScheduler- Sample-accurate event scheduling
UI:
CustomLookAndFeel- Victorian steampunk theme renderingPatternVisualizer- Real-time pattern displayPluginEditor- Main interface with parameter controls
- Sample Rates: 44.1, 48, 88.2, 96 kHz
- MIDI Channels: 1-16
- Buffer Size: Adaptive (32-2048 samples)
- Latency: < 5ms typical
- CPU Usage: < 5% on modern hardware
- Memory: ~10MB RAM
Contributions are welcome! Whether you're fixing bugs, adding features, or improving documentation.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests:
cd build && ctest - Format code:
clang-format -i Source/**/*.cpp Source/**/*.h - Commit:
git commit -m "Add amazing feature" - Push:
git push origin feature/amazing-feature - Open a Pull Request
# Install pre-commit hooks
pre-commit install
# Run tests
cd build
ctest
# Format code
clang-format -i Source/**/*.cpp Source/**/*.hSee CONTRIBUTING.md for detailed guidelines.
- Windows VST3 build
- Linux builds (VST3, LV2)
- Additional algorithmic generators (Fibonacci, Conway's Game of Life)
- MIDI input processing and transformation
- MPE (MIDI Polyphonic Expression) support
- Expanded preset library
- Standalone app with internal synth
This project is licensed under the MIT License - see the LICENSE file for details.
Free to use, modify, and distribute for personal and commercial projects.
- Euclidean Rhythms: Godfried Toussaint (2005)
- Björklund's Algorithm: E. Björklund (2003)
- L-Systems: Aristid Lindenmayer (1968)
- Cellular Automata: Stephen Wolfram (1983)
- JUCE Framework - Cross-platform audio framework
- CMake - Build system
- 📖 Documentation: docs/
- 🐛 Bug Reports: GitHub Issues
- 💡 Feature Requests: GitHub Discussions
- 📥 Latest Release: Download here
Made with ❤️ for the open-source music community
