Ctk

Composer's Tool Kit - objects for real-time and non-real-time composition

CTK

The Composer's Tool Kit

Introduction

CTK - The Composer's Tool Kit - is a set of Object classes to aid specifically in the creation of fixed pieces through the use of a Score-like structure. To make general usage easier, the CTK Objects also support real-time control through the .play method. The objects included in the CTK are:

  • CtkScore
  • CtkSynthDef
  • CtkProtoNotes
  • CtkNote
  • CtkBuffer
  • CtkControl
  • CtkAudio
  • CtkEvent
  • CtkGroup

The CTK Objects can be used as a replacement for the object oriented classes in the standard SuperCollider distribution (Synth, Buffer, Group, and Bus). The main difference is that these classes can easily be used to populate a CtkScore for non-real-time (NRT) synthesis.

CTK classes were originally developed by Josh Parmenter. Other contributors include Michael McCrea, Daniel Peterson, and Marcin Pączkowski.

Disadvantages to the standard object classes:

  • Since the classes can operate in both modes, CtkNotes (the CTK equivalent of a Synth) needs to be explicitly told to 'play'. Synthesis does not begin automatically.
  • CtkNotes are prototyped according to an actual SynthDef, as a result some of the objects syntax is a little different. Arguments are passed to the CtkNote instance in a different way than Synth and may take some getting used to (though the syntax is more in line with the getter and setter methods of other SC objects... more below).
  • To make these Objects as flexible as possible with other Ctk objects, the classes check for quite a bit internally. This of course adds some overhead to the language side of SuperCollider, though performance problems generally have not been noticed by the users.

Advantages to the standard object classes:

  • Very easy to use in both real-time and non-real-time mode.
  • Arguments to instances of CtkNote are set through more traditional getter and setter methods. When a CtkNoteObject is created, methods are added to its instance that correspond with the Control parameters of a SynthDef (including array parameters).
  • In real-time mode, the change of an argument's value will be reflected in the running synth.
  • Better support for playing CtkScore in real-time. Instances of CtkBuffer will be allocated before the score is played, allowing for loading of large buffers before notes are played. CtkBuffers also de-allocate themselves after the CtkScore finishes playing.
BeatKeeper
Project
Source file
Extension
✗
Superclass:
✗
CtkAudio
Project
Source file
Extension
✗
Superclass:
CtkBus
CtkBuffer
Project
Source file
Extension
✗
Superclass:
CtkObj
CtkBus
Project
Source file
Extension
✗
Superclass:
CtkObj
CtkControl
Project
Source file
Extension
✗
Superclass:
CtkBus
CtkEvent
Project
Source file
Extension
✗
Superclass:
CtkObj
CtkGroup
Project
Source file
Extension
✗
Superclass:
CtkNode
CtkMsg
Project
Source file
Extension
✗
Superclass:
CtkObj
CtkNode
Project
Source file
Extension
✗
Superclass:
CtkObj
CtkNote
Project
Source file
Extension
✗
Superclass:
CtkNode
CtkNoteObject
Project
Source file
Extension
✗
Superclass:
✗
CtkObj
Project
Source file
Extension
✗
Superclass:
✗
CtkPEvents
Project
Source file
Extension
✗
Superclass:
CtkObj
CtkPEventsGUI
Project
Source file
Extension
✗
Superclass:
✗
CtkPGroup
Project
Source file
Extension
✗
Superclass:
CtkGroup
CtkPMod
Project
Source file
Extension
✗
Superclass:
CtkObj
CtkPModGUI
Project
Source file
Extension
✗
Superclass:
✗
CtkPModSheet
Project
Source file
Extension
✗
Superclass:
✗
CtkProtoNotes
Project
Source file
Extension
✗
Superclass:
✗
CtkScore
Project
Source file
Extension
✗
Superclass:
CtkObj
CtkSynthDef
Project
Source file
Extension
✗
Superclass:
CtkNoteObject
CtkTimer
Project
Source file
Extension
✗
Superclass:
✗
Env
Project
Source file
Extension
✓
Superclass:
✗
GuidoArt
Project
Source file
Extension
✗
Superclass:
✗
GuidoArticulation
Project
Source file
Extension
✗
Superclass:
GuidoMark
GuidoClef
Project
Source file
Extension
✗
Superclass:
GuidoEvent
GuidoDynamic
Project
Source file
Extension
✗
Superclass:
GuidoMark
GuidoEvent
Project
Source file
Extension
✗
Superclass:
GuidoObj
GuidoKeySig
Project
Source file
Extension
✗
Superclass:
GuidoEvent
GuidoMark
Project
Source file
Extension
✗
Superclass:
✗
GuidoNote
Project
Source file
Extension
✗
Superclass:
GuidoEvent
GuidoObj
Project
Source file
Extension
✗
Superclass:
✗
GuidoPart
Project
Source file
Extension
✗
Superclass:
GuidoObj
GuidoScore
Project
Source file
Extension
✗
Superclass:
GuidoObj
GuidoSpanner
Project
Source file
Extension
✗
Superclass:
GuidoEvent
GuidoTempo
Project
Source file
Extension
✗
Superclass:
GuidoMark
GuidoTimeSig
Project
Source file
Extension
✗
Superclass:
GuidoEvent
LPChord
Project
Source file
Extension
✗
Superclass:
LPEvent
LPClef
Project
Source file
Extension
✗
Superclass:
LPEvent
LPEvent
Project
Source file
Extension
✗
Superclass:
LPObj
LPKeySig
Project
Source file
Extension
✗
Superclass:
LPEvent
LPLayoutObjects
Project
Source file
Extension
✗
Superclass:
✗
LPNote
Project
Source file
Extension
✗
Superclass:
LPEvent
LPObj
Project
Source file
Extension
✗
Superclass:
✗
LPPart
Project
Source file
Extension
✗
Superclass:
LPObj
LPRest
Project
Source file
Extension
✗
Superclass:
LPEvent
LPScore
Project
Source file
Extension
✗
Superclass:
LPObj
LPTempo
Project
Source file
Extension
✗
Superclass:
LPEvent
LPTimeSig
Project
Source file
Extension
✗
Superclass:
LPEvent
LPVoice
Project
Source file
Extension
✗
Superclass:
LPObj
NtkClef
Project
Source file
Extension
✗
Superclass:
NtkPriorityOneEvent
NtkEvent
Project
Source file
Extension
✗
Superclass:
NtkObj
NtkKeySig
Project
Source file
Extension
✗
Superclass:
NtkPriorityOneEvent
NtkNote
Project
Source file
Extension
✗
Superclass:
NtkEvent
NtkObj
Project
Source file
Extension
✗
Superclass:
✗
NtkPart
Project
Source file
Extension
✗
Superclass:
NtkObj
NtkPriorityOneEvent
Project
Source file
Extension
✗
Superclass:
NtkEvent
NtkScore
Project
Source file
Extension
✗
Superclass:
NtkObj
NtkTimeSig
Project
Source file
Extension
✗
Superclass:
NtkPriorityOneEvent
Opus
Project
Source file
Extension
✓
Superclass:
✗
PC
Project
Source file
Extension
✗
Superclass:
PitchClass
PColl
Project
Source file
Extension
✗
Superclass:
PitchCollection
PI
Project
Source file
Extension
✗
Superclass:
PitchInterval
PitchClass
Project
Source file
Extension
✗
Superclass:
✗
PitchCollection
Project
Source file
Extension
✗
Superclass:
✗
PitchInterval
Project
Source file
Extension
✗
Superclass:
✗
SequenceableCollection
Project
Source file
Extension
✓
Superclass:
✗
SimpleNumber
Project
Source file
Extension
✓
Superclass:
✗
String
Project
Source file
Extension
✓
Superclass:
✗
Symbol
Project
Source file
Extension
✓
Superclass:
✗
XMLChord
Project
Source file
Extension
✗
Superclass:
✗
XMLClef
Project
Source file
Extension
✗
Superclass:
✗
XMLEvent
Project
Source file
Extension
✗
Superclass:
✗
XMLKey
Project
Source file
Extension
✗
Superclass:
✗
XMLMeasure
Project
Source file
Extension
✗
Superclass:
XMLMusicObj
XMLMelody
Project
Source file
Extension
✗
Superclass:
✗
XMLMeter
Project
Source file
Extension
✗
Superclass:
✗
XMLMusicObj
Project
Source file
Extension
✗
Superclass:
✗
XMLNote
Project
Source file
Extension
✗
Superclass:
XMLMusicObj
XMLPart
Project
Source file
Extension
✗
Superclass:
✗
XMLRest
Project
Source file
Extension
✗
Superclass:
XMLMusicObj
XMLScore
Project
Source file
Extension
✗
Superclass:
✗
XMLTempo
Project
Source file
Extension
✗
Superclass:
✗
XMLVoice
Project
Source file
Extension
✗
Superclass:
✗

Found no versions tagged via git

Installation

Repository

URL

https://github.com/supercollider-quarks/Ctk

Since

2007-11-29

Last update

2022-07-23

Current version

Quark info

name

Ctk

path

Ctk

author

Joshua Parmenter, Marcin Pączkowski

schelp

Overviews/Ctk

summary

Composer's Tool Kit - objects for real-time and non-real-time composition

dependencies

['XML']

Possible dependcies

XML

Possible dependants