CTK objects populate a Score-like structure that plays in both real-time and non-real-time synthesis
The Composer’s Tool Kit (CTK, used in Ch 18) is a set of object classes — CtkScore, CtkSynthDef, CtkNote, CtkBuffer, CtkControl, CtkGroup — that replace SuperCollider’s standard Synth/Buffer/Group/Bus for composing fixed pieces. Their advantage is that one CtkScore can be either played in real time (.play) or rendered offline as non-real-time (NRT) synthesis without rewriting the piece. Two consequences of this dual mode matter in practice: a CtkNote must be told explicitly to .play (synthesis does not start automatically the way a plain Synth does), and CtkBuffers are allocated before the score starts and freed when it finishes, so large buffers are ready before any note sounds. Arguments are set through getter/setter methods matching each SynthDef’s controls, which is the SC OOP idiom rather than the positional argument arrays used by Synth.
Examples
// CTK equivalent of a Synth: prototyped from a SynthDef, set via methods, told to play // CtkScore holds timed CtkNotes; the same score can render NRT or play in real time. // A CtkNote does NOT sound until you call .play on it.
Assessment
Explain why a CtkNote needs an explicit .play while a plain Synth begins immediately. Name one advantage CtkBuffer gives when a score uses several large sound files. Describe how the same CtkScore can produce both a live performance and an offline render.