There are two waveshaping MKSynthPatches, Shape and Shapev. They differ in that the vibrato parameters are supported only by Shapev.
These MKSynthPatches implement non-linear distortion synthesis, which means that they produce sound by using an oscillator to drive a lookup table. Normally, the oscillator is a sine wave and the complexity of the resulting waveform is a function of the lookup table. However, for added flexibility, you may set the oscillator waveform to anything you want. The parameters are as follows:
Table A-6. Waveshaping Parameters
Name | Value Range | Description |
---|---|---|
amp | [0.0, 1.0] or [-∞, 0.0] dB | Basic amplitude (but see amp1). The dB (decibel) scaling is obtained through the MKdB() C function; in a scorefile, with the dB postfix operator. |
amp0 | same as amp | Amplitude when ampEnv = 0.0. |
amp1 | same as amp | Amplitude when ampEnv = 1.0; synonym for amp. |
ampAtt | [0.0, ∞] | ampEnv attack duration in seconds. |
ampEnv | MKEnvelope object | Amplitude envelope. |
ampRel | [0.0, ∞] | ampEnv release duration in seconds. |
bearing | [-45.0, 45.0] | Stereophonic placement in degrees. 0.0 is center, -45.0 is hard left, and 45.0 is hard right. |
bright | [0.0, 1.0] | Modulation index scaler (defaults to 1.0). |
controlChange | [0,127] | If controlChange is 7, then controlVal is MIDI volume. Implemented as an attenuation of amplitude. Default is 127 (no attenuation.) If controlChange is 1, then controlVal is MIDI modWheel. Implemented as an attenuation of vibrato. Default is 127 (no attenuation.) |
controlVal | [0,127] | See controlChange. |
freq | [~15.0, ~11000.0] | Fundamental frequency (but see freq1). or pitch variable |
freq0 | same as freq | Frequency when freqEnv = 0.0. |
freq1 | same as freq | Frequency when freqEnv = 1.0; synonym for freq. |
freqAtt | [0.0, ∞] | freqEnv attack duration in seconds. |
freqEnv | MKEnvelope object | Frequency envelope. |
freqRel | [0.0, ∞] | freqEnv release duration in seconds. |
keyNum | [0, 127] or key number | Specifies pitch as an index into the default TuningSystem, an array of frequencies. Used only in the absence of freq. |
m1Ind | [0.0, ~10.0] | Waveshaping index of waveshaping modulator (but see m1Ind1). |
m1Ind0 | same as m1Ind | Waveshaping index of waveshaping modulator when m1IndEnv = 0.0. |
m1Ind1 | same as m1Ind | Waveshaping index of waveshaping modulator when m1IndEnv = 1.0; synonym for m1Ind. |
m1IndAtt | [0.0, ∞] | m1IndEnv attack duration in seconds. |
m1IndEnv | MKEnvelope object | Index Envelope for waveshaping modulator. Note: the result of the calculation of (m1Ind1-m1Ind0) * m1IndEnv + m1Ind1 must be less than or equal to 1. Otherwise, distortion will result. Also note that the m1IndEnv can affect amplitude somewhat. The effect is minimized by the use of the Le Brun "signification" algorithm. |
m1IndRel | [0.0, ∞] | m1IndEnv release duration in seconds. |
m1Waveform | MKWaveTable object | Waveform used to specify consitution of the distortion table. If the object is a MKSamples object, the MKSamples are used directly as the distortion table. If the object is a MKPartials object, the Chebychev polynomial calculation is performed to convert it into a distortion table. Note that using high-numbered harmonics increases the time it takes to compute the table. |
pitchbend | [0,0x3fff] | MIDI pitch bend. Default is no bend |
pitchbendSensitivity | [0,∞] | Number of semitones represented by full pitch bend deviation. Default is 3. |
portamento | [0.0, ∞] | Phrase rearticulation time in seconds. Resets the x value of the second point of all Envelopes. |
rvibAmp | [0.0, 1.0] | Random vibrato amplitude; unused by Fm1 and Fm1i. |
svibAmp | [0.0, 1.0] | Sinusoidal vibrato amplitude; see above. |
svibFreq | [0.0, ~15.0] | Sinusoidal vibrato frequency; see above. |
velocity | [0,127] | MIDI velocity is a scaling on amplitude. 64 produces no modification. Below produces an attenuation. Above produces an amplification. |
velocitySensitivity | [0.0, 1.0] | Scaling on velocity. If velocitySensitivity is 0, velocity has no effect. If it is 1.0, a velocity of 0 produces silence. Default is 0.5. |
waveform | MKWaveTable object | Oscillator waveform. |