The Complete Story About Phrase Status

Phrase status defines, within a MKSynthPatch, all the possible places we can be in a MusicKit phrase:

Table 5-5. Phrase States

MK_phraseOnNew phrase
MK_phrasePreemptNew phrase, but from preempted patch
MK_phraseUpdateNote update
MK_phraseOffNote off
MK_phraseOffUpdateNote update during release
MK_phraseEndNote end
MK_noPhraseStatusNot in a MKSynthPatch method.

Preemption occurs when there is not enough DSP resources to support the requested number of simultaneous notes. It is controlled by the MKSynthInstrument. The MKSynthPatch designer need only implement a method:

+ preemptFor: newNote 
      

A typical implementation aborts any running envelopes. Example:

+ preemptFor: newNote  
{	
	[ampEnvelopeAsymp preemptEnvelope];	
	return self;
}