Waveshaping Parameters

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

NameValue RangeDescription
amp[0.0, 1.0] or [-∞, 0.0] dBBasic amplitude (but see amp1). The dB (decibel) scaling is obtained through the MKdB() C function; in a scorefile, with the dB postfix operator.
amp0same as amp Amplitude when ampEnv = 0.0.
amp1same as amp Amplitude when ampEnv = 1.0; synonym for amp.
ampAtt[0.0, ∞]ampEnv attack duration in seconds.
ampEnvMKEnvelope 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
freq0same as freq Frequency when freqEnv = 0.0.
freq1same as freq Frequency when freqEnv = 1.0; synonym for freq.
freqAtt[0.0, ∞]freqEnv attack duration in seconds.
freqEnvMKEnvelope object Frequency envelope.
freqRel[0.0, ∞] freqEnv release duration in seconds.
keyNum[0, 127] or key numberSpecifies 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).
m1Ind0same as m1IndWaveshaping index of waveshaping modulator when m1IndEnv = 0.0.
m1Ind1same as m1IndWaveshaping index of waveshaping modulator when m1IndEnv = 1.0; synonym for m1Ind.
m1IndAtt[0.0, ∞]m1IndEnv attack duration in seconds.
m1IndEnvMKEnvelope objectIndex 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.
m1WaveformMKWaveTable objectWaveform 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.
waveformMKWaveTable object Oscillator waveform.