Skip to main content
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
PLANNED FEATURE

CONTRAPUNK CLOUD

A planned online session service for low-latency audio and shared counterpoint processing. It is not yet available.

◆ ◇ ◆ ◇ ◆PLANNED COMPONENTS
CLOUD ROADMAP

PLANNED COMPONENTS

01 · AUDIO

LOW-LATENCY AUDIO TRANSPORT

Planned real-time audio transport for musical sessions using the existing Rust DSP core.

02 · HARMONY

SHARED HARMONY ENGINE

Process note input from multiple participants through one counterpoint and voice-leading engine.

03 · SESSIONS

SESSION LINKS

Create a session, share its link, and configure key, harmony, and routing for all participants.

04 · RECORDING

ASYNCHRONOUS TRACKS

Record a part and let other participants add parts later using the same harmony configuration.

◆ ◇ ◆ ◇ ◆GET CONTRAPUNK
CLOUD AVAILABILITY

JOIN THE CLOUD WAITLIST

Cloud is planned and not yet in beta. Use Contrapunk locally today, then join the waitlist for testing and availability updates.

OPEN IN BROWSER →SOURCE · GITHUB