Demo: Composable Compositions in Tonart
summary
Tonart is a Racket-embedded DSL and metalanguage that composes by placing extensible abstract-syntax notations into score coordinates and compiling them with realizers and rewriters. The demo builds a small piece: staff and play realizers, note-to-MIDI and chord-to-notes (simple “snowman” triads), then a contour-to-notes pipeline that samples uniform 1/4 rhythm over 15 beats (~60 notes) and sends MIDI to Grand org. Everything compiles and plays live, showing the system works end-to-end.
AI-written summary · about
chapters (14)
- 0:00Welcome to Tonart
- 1:08Tonart’s coordinate system
- 2:57Tonart to Racket via realization
- 4:47Rewriting notes for playback
- 6:16Abbreviations and syntax
- 7:21Composing melody with sequences
- 9:30Creating harmony with chords
- 13:12Generating melodies mathematically
- 15:19Converting functions to notes
- 17:23Combining melody and harmony
- 18:27Demo of precomposed piece
- 21:47Demo script as Tonart program
- 22:35Acknowledgments
- 23:17Q&A
related talks
19mComposing music with composed functions
27mHow to Score in the Art Racket
40mThe Art of Concert Programming
39mFunctional Composition
42mSounds of Structure - Music Modelling with ADT's
32mScala, Sound, and Structure - Composing Music through FP
45mSongwriting in Scala: Creating a DSL for writing Music with ADT's
28mEmber as Song
