Musical events are represented by MKNote
instances.
MKNotes are grouped into
MKParts. Each MKPart
corresponds to a like manner of realization
during performance. E.g. all notes in a
MKPart are synthesized with the same
synthesis technique or on the same MIDI channel.
MKParts are grouped into
MKScores. A
MKScore may be written out as an
ASCII note list called a “Scorefile”.
ScoreFile is actually a simple language. There is also a
binary format of the scorefile (in release 2.0).
MKScores can also read/write
Standard MIDI files. Finally,
MKScores, as well as all
MusicKit objects, can be
“archived” using an NSArchiver, as
defined in the Application Kit.
MKEnvelope and MKWaveTable
data are stored in MKEnvelope and
MKWaveTable objects, respectively. There are
two subclasses of MKWaveTables,
MKPartials (frequency domain representation)
and MKSamples (time domain representation).
A MKNote can only belong to one
MKPart and a MKPart can
only belong to one MKScore. However,
MKEnvelopes and
MKWaveTables may be referenced by any number
of MKNotes.
MKTuningSystem is a class that represents
a mapping of the 128 MIDI keys to a set of frequencies. These
frequencies need not be increasing.