An open API service indexing awesome lists of open source software.

https://github.com/innermost47/beatcrafter

Intelligent MIDI drum pattern generator VST3 designed for live performance with foot controllers. Generate authentic patterns across multiple styles with dynamic intensity control.
https://github.com/innermost47/beatcrafter

audio-plugin beatmaker cpp daw drum-machine drums foot-controler juce live live-performance midi-learn pattern-generator vst-plugin vst3 vst3-plugin

Last synced: 1 day ago
JSON representation

Intelligent MIDI drum pattern generator VST3 designed for live performance with foot controllers. Generate authentic patterns across multiple styles with dynamic intensity control.

Awesome Lists containing this project

README

          

# ๐Ÿฅ BeatCrafter

**Intelligent MIDI Drum Pattern Generator VST3 - Proof of Concept**

![Version](https://img.shields.io/badge/version-0.1.1-blue)
![License](https://img.shields.io/badge/license-MIT-green)
![Platform](https://img.shields.io/badge/platform-Win%20%7C%20Mac%20%7C%20Linux-lightgrey)

## ๐ŸŽฌ Live Demo

[![BeatCrafter โ€” First Improvisation Session](https://img.youtube.com/vi/pY5Tm4Mji6A/maxresdefault.jpg)](https://www.youtube.com/watch?v=pY5Tm4Mji6A)

_Ibanez Pro Line ยท Bitwig Studio ยท Behringer FCB1010 foot controller ยท EZdrummer ยท 92 BPM ยท D minor_

---

## ๐ŸŽฏ Concept Overview

**BeatCrafter is a proof of concept** for an intelligent MIDI drum pattern generator designed specifically for **live performance with foot controller**. The plugin generates only MIDI data - no audio - making it perfect for triggering your favorite drum VSTs like MT Power Drum Kit, Superior Drummer, or any General MIDI drum sampler.

The core philosophy: start simple and build complexity musically. Patterns begin with minimal elements (snare only on beat 3) and progressively evolve into full arrangements as intensity increases, respecting the authentic characteristics of each musical style.

![screenshot](./screenshot.png)

## โœจ Features

- ๐ŸŽ›๏ธ **8 Pattern Slots** - Switch patterns live with foot controller during performance
- ๐ŸŽš๏ธ **Dynamic Intensity Control** - Morph patterns from simple to complex (0-100%)
- ๐ŸŽธ **8 Music Styles** - Rock, Metal, Jazz, Funk, Electronic, HipHop, Latin, Punk
- ๐ŸŽน **Visual Pattern Editor** - 16-step grid with velocity visualization
- ๐ŸŽฏ **Style-Aware Generation** - Each style follows authentic rhythmic rules
- ๐ŸŽฎ **MIDI Learn** - Map intensity and slot changes to any MIDI controller
- ๐Ÿฆถ **Foot Controller Ready** - Designed for hands-free live performance
- ๐Ÿ“ก **MIDI Output Only** - Routes to any drum VST or hardware
- ๐ŸŽง **MIDI Export** - Ctrl+click to drag patterns directly into your DAW

## ๐Ÿšง Development Status

This is a **proof of concept** with ongoing work on:

- โš ๏ธ **Rhythmic Coherence** - Improving musical authenticity of generated patterns
- ๐ŸŽต **Style Refinement** - Better characteristic patterns for each genre
- ๐Ÿฅ **Cymbal Logic** - More realistic hi-hat/ride/splash combinations
- ๐ŸŽ›๏ธ **Performance Stability** - Live performance optimization

## ๐Ÿš€ Quick Start

### Build from Source

```bash
# Clone the repo
git clone https://github.com/innermost47/beatcrafter.git
cd beatcrafter
cmake -B build && cd build
cmake --build . --config Release
```

## ๐ŸŽฎ Workflow Example (Bitwig Studio)

1. **Load BeatCrafter** as a MIDI effect on a track
2. **Add MT Power Drum Kit** (or any drum VST) after BeatCrafter in the chain
3. **Choose a style** from the dropdown (Rock, Metal, Jazz, etc.)
4. **Generate patterns** or create custom ones
5. **Map foot controller** to intensity slider and slot buttons via MIDI Learn
6. **Perform live** - change intensity and switch patterns with your feet!

## ๐ŸŽ›๏ธ Intensity Progression

Each style follows its own musical evolution:

- **0-30%**: Minimal pattern (snare on beat 3 only)
- **30-50%**: Classic backbeat (snare on beats 2 & 4)
- **50-70%**: Added complexity (ghost notes, double kicks)
- **70-85%**: High energy (fills, off-beats, accents)
- **85-100%**: Maximum intensity (blast beats for metal, complex jazz comping)

## ๐Ÿฅ General MIDI Drum Map

| Instrument | MIDI Note | Note Name |
| ---------- | --------- | --------- |
| Kick | 36 | C1 |
| Snare | 38 | D1 |
| Hi-Hat | 42 | F#1 |
| Open HH | 46 | A#1 |
| Crash | 49 | C#2 |
| Ride | 51 | D#2 |
| Tom Hi | 50 | D2 |
| Tom Low | 45 | A1 |
| Ride Bell | 53 | F2 |
| HH Pedal | 44 | G#1 |
| Splash | 57 | A2 |
| China | 52 | E2 |

## ๐ŸŽน MIDI Learn

- Click **"LEARN"** next to intensity slider โ†’ move your foot controller
- Click **"L"** under any slot โ†’ press the corresponding foot switch
- All mappings saved with your project

## ๐Ÿ› ๏ธ Requirements

- CMake 3.22+
- C++17 compiler
- VST3 SDK (downloaded automatically via JUCE)
- A drum VST (MT Power Drum Kit recommended for testing)

## ๐ŸŽช Use Cases

- **Live Performance** - Hands-free drum track control
- **Home Studio** - Quick authentic drum parts
- **Songwriting** - Rapid pattern prototyping
- **Practice** - Dynamic backing tracks

## ๐Ÿค Contributing

This is an open proof of concept! Pull requests welcome, especially for:

- Rhythmic pattern improvements
- New style implementations
- Performance optimizations
- UI/UX enhancements

## ๐Ÿ“„ License

MIT License - see LICENSE file for details

## ๐Ÿ™ Credits

Built with [JUCE Framework](https://juce.com/)

**Note**: BeatCrafter generates MIDI only. Pair it with quality drum samples for best results!