Fm2pvi Class Reference
[Frequency Modulation Synthesis]

Like Fm1vi, but has 2 modulators in parallel, vibrato, and interpolating carrier. More...

#import <Fm2pvi.h>

Inheritance diagram for Fm2pvi:

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 Note.
(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 Fm1vi, but has 2 modulators in parallel, vibrato, and interpolating carrier.

Fm2pvi is a parallel-modulator frequency modulation MKSynthPatch, with an interpolating-oscillator as a carrier. It provides for envelopes on amplitude, frequency, and a separate envelope on each modulator's FM index. It also supports vibrato. Although it does not inherit from Fm1vi, it implements the same parameters, plus some of its own.

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 Fm11vi.rtfd, the following parameters are supported:

afterTouch -Note that afterTouch applies here only to the cascade modulator's index.

controlChange - MIDI pan (controller 10) has the same effect as bearing. If the panSensitivity is 1.0, a MIDI pan value of 0 is full left and 127 is full right. If the value of panSensitivity is less than 1.0, the pan range is narrowed toward the center. The value is set by the companion parameter, controlVal.

controlVal - See controlChange.

m2Ratio - Scaler on second modulator frequency. Defaults to 2 for Fm2cvi and Fm2cnvi. Defaults to 1. The resulting modulator frequency is the value of m2Ratio multiplied by the freq parameter.

m2Ind - Index of 2nd modulator. If there's an envelope on the index of the 2nd modulator, this is the index when the envelope is at 1. m2Ind1 is synonym for m2Ind.

m2IndEnv - Frequency modulation index envelope for the second modulator.

m2Ind0 - Modulation index for the second modulator when envelope is at 0. m2Ind is the index when envelope is at 1.

m2IndAtt - Time of attack portion of second modulator index envelope in seconds. If this parameter is not present, the times in the envelope are used verbatim.

m2IndRel - Time of release portion of second modulator index envelope in seconds. If this parameter is not present, the times in the envelope are used verbatim.

m2Waveform - Second modulator WaveTable. Defaults to sine.

m2Phase - Initial phase in degrees of modulator wavetable. Rarely needed. Defaults to 0.0.

panSensitivity - In the range 0.0:1.0. Default is 1.0.

velocity - In addition to the usual amplitude scaling, velocity scales the strength of the FM modulation. The default velocity (64) has no effect on FM index.


Member Function Documentation

+ (id) patchTemplateFor: (MKNote *)  aNote  

Returns a template.

Parameters:
aNote is an id.
Returns:
Returns an 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 an id.
Returns:
Returns an id. This method triggers (or retriggers) the Note'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 Note.

Reimplemented from MKSynthPatch.

- (id) noteUpdateSelf: (MKNote *)  aNote  

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

Parameters:
aNote is an id.
Returns:
Returns an id. Sets parameters as specified in aNote.

Reimplemented from MKSynthPatch.

- (double) noteOffSelf: (MKNote *)  aNote  

aNote is assumed to be a noteOff.

Parameters:
aNote is an id.
Returns:
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:
Returns an 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