Fm2cnvi Class Reference
[Frequency Modulation Synthesis]

Like Fm2cvi, but with an additional noise modulator. More...

#import <Fm2cnvi.h>

Inheritance diagram for Fm2cnvi:

MKSynthPatch MKPatch

List of all members.

Public Member Functions

(id) - noteOnSelf:
 aNote is assumed to be a noteOn or noteDur.
(id) - noteUpdateSelf:
 aNote is assumed to be a noteUpdate and the receiver is assumed to be currently playing a MKNote.
(double) - noteOffSelf:
 aNote is assumed to be a noteOff.
(id) - noteEndSelf
 Resest instance variables to default values.

Static Public Member Functions

(id) + patchTemplateFor:
 Returns a template.


Detailed Description

Like Fm2cvi, but with an additional noise modulator.

Fm2cnvi is a cascade-modulator frequency modulation MKSynthPatch, with an interpolating-oscillator as a carrier and a noise source modulating the frequency of the two wavetable modulators. It provides for envelopes on amplitude, frequency, and a separate envelope on each modulator's FM index, as well as an envvelope on the noise source. It also supports vibrato. Although it does not inherit from Fm2cvi, it implements the same parameters, plus some of its own.

FM2cnvi.png

When using this MKSynthPatch in an interactive real-time context, such as playing from a MIDI keyboard, call MKUseRealTimeEnvelopes() before allocating the MKSynthPatch.

Parameter Interpretation

In addition to the parameters described in Fm2cvi.rtfd, the following parameters are supported:

breathSensitivity - Controls how much affect the breath controller has. Default is 0.5.

controlChange - MIDI breath controller (controller 2) attenuates the output of the noise modulator. The value is obtained from companion parameter, controlVal. The range is 0:127 and the default is 127, indicating no attenuation. The effect of this parameter depends on the parameter breathSensitivity.

controlVal - See controlChange

noiseAmp - Amplitude of noise modulator. If a noise amplitude envelope is provided, this is the amplitude of the noise when the envelope is 1. noiseAmp1 is a synonym for the parameter noiseAmp. Default is 0.007.

noiseAmpEnv - Noise amplitude envelope. Default is a constant value of 1.0.

noiseAmp0 - Noise amplitude when noise envelope is at 0.0. noiseAmp is the value when the noise envelope is at 1.0. Default is 0.0.

noiseAmpAtt - Time of attack portion of noise envelope in seconds. If this parameter is not present, the times in the envelope are used verbatim.

noiseAmpRel - Time of release portion of noise envelope in seconds. If this parameter is not present, the times in the envelope are used verbatim.


Member Function Documentation

+ (id) patchTemplateFor: (MKNote *)  aNote  

Returns a template.

Parameters:
aNote is a (id)
Returns:
A (id) A non-zero for svibAmpand rvibAmp determines whether vibrato resources are allocated.

Reimplemented from MKSynthPatch.

- (id) noteOnSelf: (MKNote *)  aNote  

aNote is assumed to be a noteOn or noteDur.

Parameters:
aNote is a (id)
Returns:
A (id) This method triggers (or retriggers) the MKNote's envelopes, if any. If this is a new phrase, all instance variables are set to default values, then the values are read from the MKNote.

Reimplemented from MKSynthPatch.

- (id) noteUpdateSelf: (MKNote *)  aNote  

aNote is assumed to be a noteUpdate and the receiver is assumed to be currently playing a MKNote.

Parameters:
aNote is a (id)
Returns:
A (id) Sets parameters as specified in aNote.

Reimplemented from MKSynthPatch.

- (double) noteOffSelf: (MKNote *)  aNote  

aNote is assumed to be a noteOff.

Parameters:
aNote is a (id)
Returns:
A (double) This method causes the MKNote's envelopes (if any) to begin its release portion and returns the time for the envelopes to finish. Also sets any parameters present in aNote.

Reimplemented from MKSynthPatch.

- (id) noteEndSelf  

Resest instance variables to default values.

Returns:
A (id)

Reimplemented from MKSynthPatch.


The documentation for this class was generated from the following file:

Generated on Sat Dec 5 17:01:14 2009 for MusicKit by  doxygen 1.5.6