CounterChoice: Counterpoint Composition in Dusa with a Firmus Foundation
summary
CounterChoice is a client-side React web app that takes a user-drawn cantus firmus and uses the finite-choice logic language Dusa to generate first‑species counterpoint, streaming 85 solutions from a Dusa web‑worker and presenting playable audio plus the emitted Dusa code. The system encodes and enforces 10 constraints (forbid/demand rules), supports locking individual CP notes, and shows many alternatives; it scales poorly as length grows (exponential search), had a tiny user study (3 participants) that found results promising, and lacks higher‑species or rhythmic modeling.
AI-written summary · about
chapters (13)
- 0:00CounterChoice project
- 1:04What is counterpoint and first species rules
- 3:57Prior work in Agda
- 4:37Dusa language
- 6:21Counterpoint as logic program
- 11:37Constraints in Dusa
- 17:02Front-end design
- 22:40Live demo
- 30:40Evaluating solutions
- 33:12Architecture insights
- 36:40Logic programming philosophy
- 39:28Future research
- 40:10Q&A
related talks
25mDemo: Composable Compositions in Tonart
37mComposing Music in the Cloud
43mProgramming Music with Overtone
09mComposing And Improvising Using Sound Content-Based Descriptive Filtering
39mFunctional Composition
19mComposing music with composed functions
16mDemo: Functional Sound Design
42mAfrican Polyphony & Polyrhythm
