Inspect the engine
Read the Rust harmony engine, open issues, and review every merged change in public.
Browse the repository ↗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
Inspect the public work, ask a question, report a reproducible bug, or contribute a focused pull request.
Read the Rust harmony engine, open issues, and review every merged change in public.
Browse the repository ↗Ask setup questions, compare musical workflows, and share reproducible feedback with other users.
Join Discord ↗Report a bug or propose a focused pull request. The contribution guide explains the review path.
Read the guide ↗Browser at app.contrapunk.com. macOS DMG from GitHub Releases. Build from source with cargo tauri dev.