let harmony = Engine.new(Palestrina);
fn detect_pitch(buf) -> Note
const MAX_VOICES: usize = 4;
voice_leading.reject_parallels()
struct GuitarInput { onset }
engine.harmonize(note, scale)
fn detect_pitch(
  buf: &[f32]
) -> Option<Note>
let voices =
  counterpoint::
    generate(line, mode);
if interval == Fifth
  && motion == Parallel
  { reject() }
#[inline(always)]
fn onset(
  frame: &Frame
) -> bool
block_size: 128
sample_rate: 48_000
latency_ms: 7.2
// Palestrina
// counterpoint
// rules.rs

VERSION 1.3 · UPDATED JULY 22, 2026 · OPEN SOURCE

Contrapunk 1.3

Holdsworth HAL

Real-time MIDI harmony and arrangement generation for desktop, browser, VST3, CLAP, and Logic. Version 1.3 adds 13 arrangements, expanded counterpoint tools, DAW plug-ins, and improved guitar-to-MIDI tracking.

Arrangements
13
Plug-in formats
VST3 · CLAP · AU
macOS
Intel + Apple Silicon
License
MIT

Release summary

Contrapunk takes MIDI notes or dry monophonic guitar input and generates additional MIDI voices in real time. The generated notes can play the built-in synth, a hosted CLAP instrument, hardware MIDI, or a DAW instrument.

  • Choose harmony, canon, species counterpoint, or an arrangement preset.
  • Set voice count, register, timing, intervals, and voice-leading behavior.
  • Use the same core engine in standalone, browser, and plug-in builds.
  • Route generated MIDI to software instruments instead of replacing them.

Changes in version 1.3

Plug-in reliability

Windows and FL Studio fixes

Version 1.3 now includes reliable WebView2 startup, readable dropdowns, bounded instrument output, distinct Tightness styles, an adjustable monitor release, and direct FL Studio routing guidance.

DAW plug-ins

VST3, CLAP, and Logic Audio Units

Use Contrapunk as a MIDI processor before a DAW instrument. Logic also includes a separate Guitar Audio FX for audio-to-MIDI.

Counterpoint

Species, canon, and Companion lanes

Configure independent generated voices with their own timing, register, interval, attack, and release behavior.

Arrangements

13 built-in arrangement presets

Apply a complete harmony and Companion configuration, then edit or save it as a custom preset.

Guitar input

Faster sustained-note tracking

The guitar-to-MIDI path has faster analysis, live pitch telemetry, and improved sustained-note handling.

Interface

One production workspace

The same workspace is used by the desktop, browser, VST3, CLAP, and Audio Unit builds.

Documentation

Installation and routing guide

The guide covers every surface, MIDI routing, Logic guitar setup, arrangements, persistence, and troubleshooting.

Available formats

Browser app

WebAssembly and Web Audio. The computer keyboard works without MIDI hardware.

Open browser app ↗

Standalone app

Native macOS and Windows builds. Linux builds are available from source.

View downloads ↓

Version 1.3 downloads

macOS files are signed and notarized. Windows files are currently unsigned.

Known limitations

Windows packages are unsigned

The macOS packages are signed, notarized, and stapled. Windows code signing is not yet configured.

Pixel Trio is unavailable in Logic

Pixel Trio requires Pattern Lanes, which the Logic plug-in does not expose in version 1.3.

Guitar input is monophonic

Use a dry, monophonic, standard-tuned six-string signal. Route generated MIDI, not guitar audio, to the instrument track.

Direct instrument hosting is CLAP-only

Direct VST3 instrument hosting is not included. VST3 routing through a DAW is supported.

Documentation and source