Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

973 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contrapunk

Contrapunk

Website · Web App · User Guide · Downloads · Contributing

Contrapunk is a real-time MIDI harmony and arrangement generator. Play a MIDI controller or monophonic guitar line, choose a harmonic approach, and route the generated voices to the built-in sound engine, hardware MIDI, or a DAW instrument.

The same Rust core powers the native app, browser app, and DAW plug-ins. Arrangement presets are technique-named, research-backed configurations; unfinished built-ins stay hidden from production menus.

Install and use

  • Desktop: download the latest published macOS or Windows installer from GitHub Releases.
  • Browser: open app.contrapunk.com. Web MIDI requires a compatible browser and permission.
  • DAW plug-ins: published releases may include VST3, CLAP, and macOS Audio Unit assets; check the release asset list.
  • Full setup guide: contrapunk.com/docs/start/install.

Desktop custom harmony-style presets persist as versioned .cpk files in the app-data directory. They do not yet include synth, plug-in, routing, Slide, or Companion state.

Logic Pro

Contrapunk provides two Audio Units under Contrapunk Audio:

  • MIDI FX → Contrapunk: harmonizes incoming track MIDI before the instrument.
  • Audio FX → Contrapunk Guitar: accepts mono or stereo guitar audio, detects pitch, and publishes generated MIDI through the CoreMIDI source Contrapunk Guitar MIDI Out. Route that source to a separate software-instrument track.

See the Logic routing guide. Logic does not send track audio into MIDI FX, so guitar conversion requires the Audio FX component.

Signal flow

MIDI controller ──────────────────────────────┐
                                              v
Monophonic guitar → pitch/onset detection → HarmonyEngine → Companion lanes
                                                        │
                                                        └→ generated MIDI
                                                            ├→ built-in sound/FX
                                                            ├→ hardware or virtual MIDI
                                                            └→ DAW instrument

The harmony core includes diatonic, contrary-motion, species-counterpoint, Barry Harris, functional-harmony, chorale, and explicit-interval strategies. Companion lanes add bounded canon, counterpoint, and pattern timing with exact NoteOn/NoteOff ownership.

The desktop app can host CLAP instruments and effects. Generic VST3 instrument hosting is not part of the current release; Contrapunk's own VST3/CLAP/AU builds are distribution formats, not embedded third-party hosts.

Product surfaces

Surface Entry point Notes
Native CLI src/main.rs Headless development and TCP client/server modes
Desktop src-tauri/ Tauri app for macOS, Windows, and Linux builds
Browser wasm/ + ui/ WebAssembly core with Web MIDI/Web Audio adapters
VST3 / CLAP plugin/ DAW MIDI/audio processing with the production webview UI
Audio Unit au-wrapper/ Logic MIDI FX plus mono/stereo Guitar Audio FX

Build from source

Prerequisites: Rust, Node.js 22, npm, and the Tauri platform prerequisites.

git clone https://github.com/contrapunk-audio/contrapunk.git
cd contrapunk
npm --prefix ui ci

# Native CLI
cargo build --release

# Desktop development
(cd src-tauri && cargo tauri dev)

# Browser development
npm --prefix ui run build:wasm
npm --prefix ui run dev

Build the DAW plug-ins:

npm --prefix ui run build
CONTRAPUNK_PLUGIN_UI_DIR="$PWD/ui/build" \
  cargo xtask bundle contrapunk_plugin --release --features embed-ui

# macOS universal VST3/CLAP and Audio Units
CONTRAPUNK_PLUGIN_UI_DIR="$PWD/ui/build" \
  cargo xtask bundle-universal contrapunk_plugin --release --features embed-ui
./au-wrapper/build.sh

Checks

cargo check --workspace --message-format=short
cargo test -p contrapunk-harmony --lib
cargo test -p contrapunk-audio --lib
npm --prefix ui run check

See CONTRIBUTING.md for architecture, focused test commands, and release-surface guidance.

Documentation

License

MIT. See LICENSE.

About

Music improvisation and performance companion

Resources

Contributing

Stars

81 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages