Maple is a generative MIDI sequencer and visualizer designed to create organic, evolving musical patterns. It combines a Python-based fractal generation engine with a responsive, interactive web frontend. This app is inspired by my lovely wife who enjoys all things maple, woodsy, and organic.
Maple operates as a hybrid software instrument:
- Backend (Python): Runs the generative engine, handles MIDI I/O, and manages the application state. It uses a "Lobe" based system where parameters control the probability and timing of musical events.
- Frontend (React): Provides a beautiful, maple-leaf-inspired visualization that reacts in real-time to the generated music. It also serves as the control surface for the generative engine, allowing you to tweak parameters, select scales, and manage MIDI output.
- Generative MIDI Sequencing: Create complex, evolving melodies and rhythms based on fractal logic.
- Real-time Visualization: Watch the music unfold on an interactive visual interface.
- Live Control: Adjust tempo, scales, and lobe parameters on the fly.
- MIDI Output: Connect to your favorite DAWs, hardware synths, or software instruments.
- Preset Management: Save and load your generative states to revisit your favorite patterns.
- Python 3.8+
- Node.js 16+ & npm
After completing the initial setup steps below, you can launch the full application (backend + frontend) with a single command:
Linux/macOS:
./start.shWindows:
.\start.batNavigate to the backend directory and set up the Python environment:
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r ../requirements.txtStart the backend server:
python main.pyThe server will start on http://localhost:8000.
Open a new terminal, navigate to the frontend directory, and install dependencies:
cd frontend
npm installStart the development server:
npm run devOpen your browser to the URL shown (usually http://localhost:5173).
Open PowerShell or Command Prompt, navigate to the backend directory, and set up the Python environment:
cd backend
python -m venv venv
.\venv\Scripts\activate
pip install -r ..\requirements.txtStart the backend server:
python main.pyThe server will start on http://localhost:8000.
Open a new terminal window, navigate to the frontend directory:
cd frontend
npm installStart the development server:
npm run devOpen your browser to the URL shown (usually http://localhost:5173).
- Connect MIDI: Ensure you have a MIDI destination available (e.g., a virtual MIDI port or a hardware synth connected via USB). Maple will detect available ports on startup.
- Start Playback: Toggle the play button in the global controls.
- Experiment: Click on different "Lobes" (sections of the leaf) to adjust their generation parameters. Change the global scale and tempo to suit your mood.
Maple leaf vector image from https://www.vecteezy.com/