#import <Fm2cvi.h>
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. |
Fm2cvi is a cascade-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.
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.
+ (id) patchTemplateFor: | (MKNote *) | aNote |
Returns a template.
aNote | is a (id) |
Reimplemented from MKSynthPatch.
- (id) noteOnSelf: | (MKNote *) | aNote |
aNote is assumed to be a noteOn or noteDur.
aNote | is a (id) |
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.
aNote | is a (id) |
Reimplemented from MKSynthPatch.
- (double) noteOffSelf: | (MKNote *) | aNote |
aNote is assumed to be a noteOff.
aNote | is a (id) |
Reimplemented from MKSynthPatch.
- (id) noteEndSelf |