In this document “synthesis” refers to creating sound from scratch, while “processing” refers to modifying sound from elsewhere. However, the MusicKit provides a unified model of synthesis and processing. Thus, nearly all operations that apply to synthesis can also be used in sound processing.
There are four levels of MusicKit classes involved in synthesizing and processing music on the DSP:
At the top level is the
MKSynthInstrument
class; an inheritor from
MKInstrument
, it provides an interface between
the MusicKit performance mechanism and
DSP synthesis/processing. A
MKSynthInstrument
distributes
MKNote
s that it receives during a performance
to individual MKSynthPatch
objects that control
the actual synthesis/processing.
MKSynthPatch
, an abstract
class, embodies the principles of music synthesis. Each subclass of
MKSynthPatch
represents a particular
synthesis/processing strategy; each
MKSynthPatch
object synthesizes one
MKNote
at a time, using the strategy defined by
its class.
The MKUnitGenerator
class is
also abstract; each of its subclasses represents a signal processing
function that runs on the DSP. These are the basic building blocks of
music synthesis/processing that a MKSynthPatch
subclass configures to define its synthesis/processing strategy. At
the same level as MKUnitGenerator
is the
MKSynthData
class. Instances of
MKSynthData
represent portions of DSP memory
that hold synthesis/processing data such as wavetables and delay
memory. In addition, MKSynthData
objects are
used to transmit data between MKUnitGenerator
objects.
The MKOrchestra
represents the
DSP itself. It manages the allocation of DSP resources and controls
communication between the DSP and the host. Requests for use of the
DSP are always made through messages to the
MKOrchestra
; this includes requests made by a
MKSynthInstrument
for more
MKSynthPatch
es, and those of a
MKSynthPatch
for
MKUnitGenerator
s and
MKSynthData
objects.
The MKSynthInstrument
class is described in Chapter 6. The rest of this chapter is devoted to
the other classes listed above.